我有一个智能合同运行在平衡计分卡测试网。合同主要有10个令牌,它们是从随机地址购买的。一旦购买了所有的代币,合同将选择一个地址并将收到的余额发送到该地址(不包括煤气费)。为了确保有足够的汽油,我只发送了80%的余额收到。每次转帐收取的金额至少为0.01BNB,最低限额为0.1BNB,应包括任何费用。
address payable winner;
event endContract(address indexed winner);
uint256 private ticketCount;
function endContract() private {
require(ticketCount == MAX_TICKETS, "All tickets must be sold to select a winner");
uint256 winnerTicketId = random() % MAX_TICKETS + 1;
winner = ticketOwners[winnerTicketId]; //The value of the winner is selected correct
//transfer only 80% of the pot
uint256 transferAmount = (totalPot*80)/100;
winner.transfer(transferAmount);
emit endContract(winner);
} 获胜者的值被正确选择。合同余额(totalPot)的值也会正确显示。
是否有任何特定的功能,除了传输发出一个转移到一个选定的地址?
我已经经历了一天了,我想不出来。合同地址- 0xb39E6A3499DFA04a3eD5ed39ac9F57CF44E321fA
谢谢。
发布于 2023-03-23 21:47:45
如果您使用的是.send vs.transfer最佳实践用法?,请查看这里的讨论。如果您想使用ERC20令牌,则需要与本机令牌不同地进行这种传输。
https://ethereum.stackexchange.com/questions/147865
复制相似问题