package config // AssetConfig 资产服务配置 type AssetConfig struct { // MintConfig 铸造相关配置 MintConfig MintConfig // BlockchainConfig 区块链相关配置(目前模拟) BlockchainConfig BlockchainConfig } // MintConfig 铸造相关配置 type MintConfig struct { // MintFee 铸造费用(水晶数量) MintFee int64 // MaxRetryCount 最大重试次数 MaxRetryCount int32 // MintSimulationDelaySeconds 模拟上链延迟(秒) // 用于模拟异步上链过程 MintSimulationDelaySeconds int } // BlockchainConfig 区块链相关配置(目前模拟) type BlockchainConfig struct { // Enabled 是否启用区块链功能 // 目前为false,只做模拟 Enabled bool // NetworkID 网络ID(预留) NetworkID string // ContractAddress 合约地址(预留) ContractAddress string } // GlobalAssetConfig 全局资产配置实例 var GlobalAssetConfig = &AssetConfig{ MintConfig: MintConfig{ MintFee: 100, // 100水晶 MaxRetryCount: 3, // 最多重试3次 MintSimulationDelaySeconds: 3, // 模拟3秒上链延迟 }, BlockchainConfig: BlockchainConfig{ Enabled: false, // 暂不启用区块链 NetworkID: "", // 预留 ContractAddress: "", // 预留 }, } // ========== 铸造相关辅助方法 ========== // GetMintFee 获取铸造费用 func (c *AssetConfig) GetMintFee() int64 { return c.MintConfig.MintFee } // GetMaxRetryCount 获取最大重试次数 func (c *AssetConfig) GetMaxRetryCount() int32 { return c.MintConfig.MaxRetryCount } // GetMintSimulationDelaySeconds 获取模拟上链延迟(秒) func (c *AssetConfig) GetMintSimulationDelaySeconds() int { return c.MintConfig.MintSimulationDelaySeconds } // ========== 区块链相关辅助方法 ========== // IsBlockchainEnabled 检查是否启用区块链功能 func (c *AssetConfig) IsBlockchainEnabled() bool { return c.BlockchainConfig.Enabled } // ========== 配置更新方法(预留) ========== // UpdateMintFee 更新铸造费用 // 注意:后续可以从规则表或配置中心读取配置并调用此方法更新 func (c *AssetConfig) UpdateMintFee(fee int64) { c.MintConfig.MintFee = fee } // UpdateMaxRetryCount 更新最大重试次数 func (c *AssetConfig) UpdateMaxRetryCount(count int32) { c.MintConfig.MaxRetryCount = count } // UpdateBlockchainConfig 更新区块链配置 func (c *AssetConfig) UpdateBlockchainConfig(enabled bool, networkID, contractAddress string) { c.BlockchainConfig.Enabled = enabled c.BlockchainConfig.NetworkID = networkID c.BlockchainConfig.ContractAddress = contractAddress }