cache the length of array rather than iterate every time for vaaKeys
This commit is contained in:
parent
a9172379c5
commit
d61380a9b0
|
@ -163,8 +163,9 @@ library WormholeRelayerSerde {
|
|||
returns (bytes memory encoded)
|
||||
{
|
||||
assert(vaaKeys.length < type(uint8).max);
|
||||
encoded = abi.encodePacked(uint8(vaaKeys.length));
|
||||
for (uint256 i = 0; i < vaaKeys.length;) {
|
||||
uint8 length = uint8(vaaKeys.length);
|
||||
encoded = abi.encodePacked(length);
|
||||
for (uint256 i = 0; i < length;) {
|
||||
encoded = abi.encodePacked(encoded, encodeVaaKey(vaaKeys[i]));
|
||||
unchecked {
|
||||
++i;
|
||||
|
@ -179,7 +180,7 @@ library WormholeRelayerSerde {
|
|||
uint8 vaaKeysLength;
|
||||
(vaaKeysLength, offset) = encoded.asUint8Unchecked(startOffset);
|
||||
vaaKeys = new VaaKey[](vaaKeysLength);
|
||||
for (uint256 i = 0; i < vaaKeys.length;) {
|
||||
for (uint256 i = 0; i < vaaKeysLength;) {
|
||||
(vaaKeys[i], offset) = decodeVaaKey(encoded, offset);
|
||||
unchecked {
|
||||
++i;
|
||||
|
|
Loading…
Reference in New Issue