如何在其他合约中使用自己的代币?
How to use your own tokens in other contracts?
所以我创建了一个令牌tokenA
contract tokenA is ERC20 {
address public deployer; //to save adress of the deployer
constructor() ERC20('tokenA', 'TA') { //called by the deployer (once)
_mint(msg.sender, 1000000000000 * 10 ** 10); //mint/create tokens - we have created 100000000000*10^18 tokens
deployer = msg.sender; //set the deployer
}
//total supply is fixed no more can be created ever
function burn (uint amount) external { //remove tokens by sending then to a zero address
_burn(msg.sender, amount);
}
}
我已经将它们部署到 Rinkeby (4) 注入的 web3 环境中。
现在我必须使用这些代币作为购买 NFT 的价格(我也必须制作)
那么如何在我的代码中使用它们?
我可以像
一样使用以太币
uint 价格 = 0.005 以太;
并将传输的值与此进行比较,但是如果我写
uint 价格 = 0.005 tokenA;
即使我已经部署了 tokenA 并且它驻留在我的元掩码 acc
中,它也会出错
uint price = 0.005 ether;
这是正确的。
但是在你购买 NFT 的函数中,你需要:
- 删除
payable
关键字。
- 添加ERC-20令牌的
transferFrom
功能,以便将price
(0.005e18)个令牌转移到您指定的收件人地址。
请记住,为了成功调用 transferFrom
函数,用户首先需要调用 approve
函数。
为了获得更深入的解释,我建议阅读 OpenZeppelin ERC-20 docs/github repo
所以我创建了一个令牌tokenA
contract tokenA is ERC20 {
address public deployer; //to save adress of the deployer
constructor() ERC20('tokenA', 'TA') { //called by the deployer (once)
_mint(msg.sender, 1000000000000 * 10 ** 10); //mint/create tokens - we have created 100000000000*10^18 tokens
deployer = msg.sender; //set the deployer
}
//total supply is fixed no more can be created ever
function burn (uint amount) external { //remove tokens by sending then to a zero address
_burn(msg.sender, amount);
}
}
我已经将它们部署到 Rinkeby (4) 注入的 web3 环境中。 现在我必须使用这些代币作为购买 NFT 的价格(我也必须制作)
那么如何在我的代码中使用它们?
我可以像
一样使用以太币uint 价格 = 0.005 以太;
并将传输的值与此进行比较,但是如果我写
uint 价格 = 0.005 tokenA;
即使我已经部署了 tokenA 并且它驻留在我的元掩码 acc
中,它也会出错uint price = 0.005 ether;
这是正确的。
但是在你购买 NFT 的函数中,你需要:
- 删除
payable
关键字。 - 添加ERC-20令牌的
transferFrom
功能,以便将price
(0.005e18)个令牌转移到您指定的收件人地址。
请记住,为了成功调用 transferFrom
函数,用户首先需要调用 approve
函数。
为了获得更深入的解释,我建议阅读 OpenZeppelin ERC-20 docs/github repo