ethereum - 智能合约提款对一次可以发送多少笔付款有限制
问题描述
我想在调用时添加一个函数,它将进行一些简单的计算,然后支付到 22 个地址。允许转移的数量是否有限制,发送的数量是否重要,如果气体用完或发生错误,它是否会回滚功能中发生的所有事情,即使转移成功也是如此。我正在使用 Binance 智能链
function withdraw() external {
require(lock, "Withdraw in session");
lock = false;
lightCalculation()l
for (uint256 i = 0; i < 22; i++) {
(bool success, ) = payable(address(users[i])).call{value: AMOUNT * i}("");
require(success, "Transfer failed.");
}
lock = true;
}
更新:
我在 truffle 上对其进行了测试,它返回错误:处理事务时出现 VM 异常:还原。数据错误有这个和堆栈跟踪关于task_queues和名称的东西:'RuntimeError'
'0xd500ed6e0b92254f8909c754c8856050022b34715adba1ebf47067af90080284': {
error: 'revert',
program_counter: 6768,
return: '0x4e487b710000000000000000000000000000000000000000000000000000000000000032'
},
当我降低用户数量时说 5 它有效,或者如果我降低发送的数量,那么我最多可以发送给 10 个用户而不会出错。什么是这个功能有限制还是与气体有关
谢谢
解决方案
推荐阅读
- java - 如何使用事件发布者获取黄瓜中场景的行号
- laravel - 在 livewire 按钮单击上显示额外的行
- reactjs - React-redux 在 header 组件更新后无限发送 dispatch 请求
- python - 为什么用一行代码执行代码更改要花时间?
- javascript - Vue:如何从本地存储访问用户信息
- assembly - 在 SSE2 上进行无符号 64 位比较的最有效方法是什么?
- tensorflow - Tensorflow:维度太多
- react-native - React Native CRUD 与 RESTful API 和 Redux 状态管理
- php - 我如何限制一个人在用户名字段中输入特定的用户名?
- python-3.x - 在 pandas 表中找不到日期,但在 iloc 中看到