首页 > 解决方案 > 智能合约提款对一次可以发送多少笔付款有限制

问题描述

我想在调用时添加一个函数,它将进行一些简单的计算,然后支付到 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 个用户而不会出错。什么是这个功能有限制还是与气体有关

谢谢

标签: ethereumsoliditysmartcontractsbinance-smart-chain

解决方案


推荐阅读