-
Notifications
You must be signed in to change notification settings - Fork 12
Open
Description
Based on current implementation:
receive () external payable {
require(_members.length > 0, "1");
for(uint i=0; i<_members.length; i++) {
Member memory member = _members[i];
_transfer(member.account, msg.value * member.value / member.total);
}
}_member is read from storage on each iteration, which is gas costly. A solution to optimize:
receive () external payable {
Member[] memory members = _members;
uint256 len = members.length;
require(len > 0, "1");
for(uint i=0; i<len; i++) {
Member memory member = members[i];
_transfer(member.account, msg.value * member.value / member.total);
}
}TODO: tests on diff of gas cost
Metadata
Metadata
Assignees
Labels
No labels