我使用了ether网站上默认的众筹代码,但我很难弄清楚如何将每个令牌的价格设置为十进制(例如,每个令牌的价格为0.0005醚)。
另一个问题是在创建合同之后,我尝试从MyEtherWallet发送以太,出现了这个错误。

发布于 2017-08-22 06:39:00
我是通过同样的途径工作,我建议使用https://github.com/OpenZeppelin/zeppelin-solidity/blob/master/contracts/crowdsale/Crowdsale.sol。很多人只是用这个来适应它。你需要通过我看到的钱包部署。在使其可用之前,一定要对其进行良好的测试。还可以使用etherscan.io并输入当前预售的地址,对于许多人来说,可以通过etherscan.io访问合同。
发布于 2018-03-11 15:42:27
我建议你用魏来计算这个,这样可以解决你的问题。进入https://etherconverter.online/,在“以太”字段中输入1,并将价格设置为魏中的价格。我已经做了一个小的例子,使用只有当测试良好,如果你解决了安全问题!
contract Crowdsale {
uint tokenPrice = 500000000000000 wei;
uint public tokensToGet = 0;
function buyToken() payable returns (uint){
tokensToGet = msg.value / tokenPrice;
return tokensToGet;
}
}而不是“魏”,你也可以使用"szabo“等,就像在页面上看到的那样。请确保只使用小写(“魏”、“魏”、"Wei“不起作用)。如果您现在要发送1以太,它将使用每个令牌(0.0005)的价格来转换它,而tokensToGet将是2000 (= 2.000令牌)。我必须使"tokensToGet“公开,因为我使用了Remix,然后可以直接输出这个变量。在Remix上测试它,并使用Javascript :)。希望我帮了你!
发布于 2018-04-10 21:49:42
根据我的经验,当您的令牌价格/利率变量设置不正确时,您发布的错误通常会显示出来,并且您试图进行一次购买,这将导致指定的payable函数抛出(在您的情况下是buyToken())。
您是在合同中对令牌价格/费率进行硬编码,还是通过Crowdsale构造函数(通过Tru显或Remix)传递值?如果你在做后一件事(你应该这么做),记得把你的魏值作为字符串传递("1000000000000000000“而不是1000000000000000000)。
https://ethereum.stackexchange.com/questions/24885
复制相似问题