当为ICO上传ERC20令牌时,如何编写ICO令牌销售程序?是在同一份合同中完成的吗?从现有的销售情况来判断,您将以太发送到合同地址,但这触发了什么功能呢?
发布于 2017-10-30 11:19:56
通常,通过众包筹集资金是通过与实施ERC20标准的合同不同的方式实现的--这个分离关注点是一个很好的软件开发实践。
开放齐柏林飞艇是一个优秀的项目,它为智能契约建立了最佳实践,创建了安全的代码,并因其代码在大量高调项目中的使用而享有声誉--我建议您看看一些实施集体销售合同的方法实例。
从现有的销售情况来看,您将以太发送到一个联系人地址,但这会触发什么功能呢?
最终,这取决于关于令牌的行为和众包合同的工作方式的设计决策。
一种做法是,通过调用ERC20标准中定义的传输函数或ERC20函数(例如TokenMarketNet的分配TokenMarketNet )来实现
/**
* Transfer tokens from approve() pool to the buyer.
*
* Use approve() given to this crowdsale to distribute the tokens.
*/
function assignTokens(address receiver, uint tokenAmount) private {
if(!token.transferFrom(beneficiary, receiver, tokenAmount)) throw;
}
}但是,您可以看到OpenZeppelin的众售合同调用了一个定义在令牌契约上的薄荷函数,该函数没有定义为ERC20规范的一部分:
// low level token purchase function
function buyTokens(address beneficiary) public payable {
require(beneficiary != address(0));
require(validPurchase());
uint256 weiAmount = msg.value;
....
token.mint(beneficiary, tokens);
TokenPurchase(msg.sender, beneficiary, weiAmount, tokens);
forwardFunds();
}发布于 2017-11-17 15:57:00
萨伊德·哈希米
松露使用文件2_deploy_contracts.js文件来定义契约中的变量。如果你在linux上安装松露,它附带了一个你可以学习的硬币/大众销售合同的例子。查找2_deploy_contracts.js文件并查看结构。
松露将多个合同合并到一个部署中。这就是为什么你没有看到所有的信息,你正在寻找。
https://ethereum.stackexchange.com/questions/29468
复制相似问题