如何在 BSC 网络上手动销毁代币
How to manually burn tokens on BSC network
我在币安智能链上部署了一个代币合约,想手动销毁一些代币,从而从某种控制台执行以下函数调用。
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]);
哪个returns
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});
我在币安智能链上部署了一个代币合约,想手动销毁一些代币,从而从某种控制台执行以下函数调用。
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]);
哪个returns
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});