You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何允许任意地址调用我在Aptos上发行代币的mint铸造函数?

允许任意地址调用Aptos自定义代币Mint函数的配置方法

当前你的mint函数调用了Aptos框架的managed_coin::mint,而该函数默认要求调用者持有代币的minter权限(仅发行账户默认拥有)。要让任意地址都能调用铸造,需要绕过这个权限校验,具体有两种实现方式:

方式一:直接操作代币余额与供应量(完全开放)

放弃使用managed_coin::mint,直接调用底层的coin模块函数更新供应和余额,绕开minter权限检查。代码示例:

public entry fun mint(dst_addr: address, amount: u64) {
    // 增加代币总供应量
    aptos_framework::coin::increase_supply<Coin>(amount);
    // 给目标地址存入对应数量的代币
    aptos_framework::coin::deposit<Coin>(dst_addr, amount);
}

⚠️ 注意:这种方式会让任何地址都能无限铸造代币,彻底破坏代币的经济模型,仅适合测试环境使用。

方式二:修改权限校验逻辑(自定义开放规则)

如果你需要保留managed_coin的部分特性,但开放铸造权限,可以注释掉managed_coin::mint的权限断言,或者替换为自定义的无限制校验:

public entry fun mint(account: &signer, dst_addr: address, amount: u64) {
    // 注释掉原有的minter权限检查
    // aptos_framework::managed_coin::assert_minter<Coin>(account);
    // 直接调用底层铸造逻辑
    aptos_framework::coin::increase_supply<Coin>(amount);
    aptos_framework::coin::deposit<Coin>(dst_addr, amount);
}

重要提醒

完全开放任意地址铸造代币会带来极高的安全风险,可能导致代币通胀失控、价值归零。若非测试需求,建议设计合理的铸造规则(如白名单、限量铸造等),而非无限制开放。

内容的提问来源于stack exchange,提问作者I am just dude

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 17:02:23