在此之前有一些上下文:
假设我正在实施一个 dApp,我想减少用户调用相关智能合约的次数。为了做到这一点,所有用户的操作都是在客户端堆叠起来的。最终,用户将不得不将他们的行为提交给智能合约,以更新他们在链上的数据。
智能合约将所有用户操作的队列作为参数,并对其进行迭代,主要进行一些检查和更新。有点像这样:
function verifyUsersActions(Queue actions) public
{
while(actions.length != 0)
{
Action currentAction = actions.pop();
/* tests on currentAction, update datas, etc */
}
}
Run Code Online (Sandbox Code Playgroud)
我的问题是:“actions”对象的大小如何影响gas成本?在 "actions.length = 2" 和 "actions.length = 3" 之间,gas 的增量是多少?
我仍然对“内存”和“存储”变量感到困惑,不知道函数调用参数属于哪个类别。