Skip to content

Commit 5c11cc8

Browse files
committed
cache
1 parent 55d06ce commit 5c11cc8

1 file changed

Lines changed: 8 additions & 10 deletions

File tree

contracts/utils/draft-InteroperableAddress.sol

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -155,11 +155,10 @@ library InteroperableAddress {
155155
chainReference = self.slice(0x05, 0x05 + chainReferenceLength);
156156

157157
uint256 addrLength = uint8(self[0x05 + chainReferenceLength]);
158-
if (
159-
(self.length < 0x06 + chainReferenceLength + addrLength) ||
160-
(failOnExtraBytes && self.length > 0x06 + chainReferenceLength + addrLength)
161-
) return (false, 0x0000, _emptyBytesMemory(), _emptyBytesMemory());
162-
addr = self.slice(0x06 + chainReferenceLength, 0x06 + chainReferenceLength + addrLength);
158+
uint256 expectedLength = 0x06 + chainReferenceLength + addrLength;
159+
if ((self.length < expectedLength) || (failOnExtraBytes && self.length > expectedLength))
160+
return (false, 0x0000, _emptyBytesMemory(), _emptyBytesMemory());
161+
addr = self.slice(0x06 + chainReferenceLength, expectedLength);
163162

164163
// At least one of chainReference or addr must be non-empty
165164
success = (chainReferenceLength > 0) || (addrLength > 0);
@@ -197,11 +196,10 @@ library InteroperableAddress {
197196
chainReference = self[0x05:0x05 + chainReferenceLength];
198197

199198
uint256 addrLength = uint8(self[0x05 + chainReferenceLength]);
200-
if (
201-
(self.length < 0x06 + chainReferenceLength + addrLength) ||
202-
(failOnExtraBytes && self.length > 0x06 + chainReferenceLength + addrLength)
203-
) return (false, 0x0000, Calldata.emptyBytes(), Calldata.emptyBytes());
204-
addr = self[0x06 + chainReferenceLength:0x06 + chainReferenceLength + addrLength];
199+
uint256 expectedLength = 0x06 + chainReferenceLength + addrLength;
200+
if ((self.length < expectedLength) || (failOnExtraBytes && self.length > expectedLength))
201+
return (false, 0x0000, Calldata.emptyBytes(), Calldata.emptyBytes());
202+
addr = self[0x06 + chainReferenceLength:expectedLength];
205203

206204
// At least one of chainReference or addr must be non-empty
207205
success = (chainReferenceLength > 0) || (addrLength > 0);

0 commit comments

Comments
 (0)