blockchain - 如何在 BSC 网络上手动销毁代币
问题描述
我在 Binance Smart Chain 上部署了一个代币合约,想手动烧掉一些代币,从而从某种控制台执行以下函数调用。
myContract.burn(10000);
我有 ABI 和字节码
我如何以及在哪里可以执行此操作?
解决方案
如果burn()
函数具有public
或external
可见性修饰符,您可以通过提交包含函数签名和字段中的参数值的事务来执行它data
。
data
其中一种方法是手动或半手动构建字段值
const data = web3.eth.abi.encodeFunctionCall({
name: 'burn',
type: 'function',
inputs: [{
type: 'uint256',
name: '_amount'
}]
}, [10000]);
返回
0x42966c680000000000000000000000000000000000000000000000000000000000002710
42966c68
是函数签名2710
是10000
(dec)的十六进制值
并将其传递给任何支持自定义数据字段的钱包(例如 MyEtherWallet)。
另一种方法是实例化你的合约web3.eth.Contract
并从那里执行函数。这会为您生成data
字段,如果您正确配置了 web3 实例,它还会使用您的私钥签署交易并将其广播到网络。
const contract = new web3.eth.Contract(jsonInterface, contractAddress);
contract.methods.burn(10000).send({from: yourAddress});
推荐阅读
- kotlin - FlatMapping ListK 和选项
- css - 翻译子元素时如何应用完全覆盖的水平溢出?
- java - 使用无 Root 的 Android 应用程序监控 DHCP 信息
- jquery - 有没有办法在手动触发时通过点击事件获取页面 X 和页面 Y
- json - TypeError:对象不是 JSON 可序列化的
- routing - 我们如何确保在基于密钥的路由中交付?
- android - kotlin协程如何顺序执行?
- python - 如何获取云存储对象的 blob 大小?
- bixby - 在 Bixby 中,有没有办法以特定顺序在图像选择器中显示图像或按图像名称对其进行排序?
- ios - 如何在滚动条上隐藏搜索栏?(没有 UITableViewController)