如何将我的自定义令牌发送到另一个帐户?
How do I send my custom token to another account?
所以这是我制作的自定义令牌
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);
}
}
用户 1 是合约的所有者,拥有大量代币,用户 2 的钱包中有 3 个代币。
我必须编写一个函数,单击该函数会将 1 个令牌传输给所有者 User1。
function transferOneToken () public payable {
address token = //address of token contract;
ERC20 paymentToken = ERC20(token);
require(paymentToken.transferFrom(msg.sender, owner, 1), "transfer Failed"); //owner is set in constructor
}
这是我想出来的,用户2有3个代币,只需要转移1个,但仍然弹出gas estimation failed错误说allowance不足
我该如何解决?
令牌持有者(用户 2)需要 approve()
支出者(实现 transferOneToken()
函数的合约)在调用 transferFrom()
函数之前花费他们的令牌。
代币合约的approve()
函数有两个参数:
- 消费者地址
- 允许他们花费的最大金额
如果没有批准机制,任何合约都可以提取用户的代币,这对于无法阅读合约代码的用户来说是一种不安全的情况。t/don
所以这是我制作的自定义令牌
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);
}
}
用户 1 是合约的所有者,拥有大量代币,用户 2 的钱包中有 3 个代币。 我必须编写一个函数,单击该函数会将 1 个令牌传输给所有者 User1。
function transferOneToken () public payable {
address token = //address of token contract;
ERC20 paymentToken = ERC20(token);
require(paymentToken.transferFrom(msg.sender, owner, 1), "transfer Failed"); //owner is set in constructor
}
这是我想出来的,用户2有3个代币,只需要转移1个,但仍然弹出gas estimation failed错误说allowance不足
我该如何解决?
令牌持有者(用户 2)需要 approve()
支出者(实现 transferOneToken()
函数的合约)在调用 transferFrom()
函数之前花费他们的令牌。
代币合约的approve()
函数有两个参数:
- 消费者地址
- 允许他们花费的最大金额
如果没有批准机制,任何合约都可以提取用户的代币,这对于无法阅读合约代码的用户来说是一种不安全的情况。t/don