我是刚接触到坚实,并试图理解这个开放的飞艇众售合同。
目前,我一直停留在_deliverTokens
函数上,无法理解这个函数是如何工作的。据我所知,这里的token
实际上指的是ERC20令牌,但是当它调用token. transfer()
时,它的令牌转移呢?这是否意味着集体销售合同的地址拥有代币?
发布于 2018-05-24 09:10:36
是的,在这个实现中,Crowdsale
契约的地址拥有令牌,从而使transfer
函数工作起来。
如果您想在某个单独的地址(令牌持有人地址)上持有令牌,则应该将一些令牌金额批准为Crowdsale
契约,并使用transferFrom
方法将令牌从持有者地址转移到投资者的地址。
发布于 2018-05-24 09:15:57
您可以在下面的链接中找到传递函数的详细信息。
/**
* @dev transfer token for a specified address
* @param _to The address to transfer to.
* @param _value The amount to be transferred.
*/
function transfer(address _to, uint256 _value) public returns (bool) {
require(_to != address(0));
require(_value <= balances[msg.sender]);
balances[msg.sender] = balances[msg.sender].sub(_value);
balances[_to] = balances[_to].add(_value);
emit Transfer(msg.sender, _to, _value);
return true;
}
因此,调用此函数(msg.sender)的用户的令牌将被传输。
https://ethereum.stackexchange.com/questions/49345
复制相似问题