Skip to content

Commit 5ee15be

Browse files
authored
Fix forge coverage stack-too-deep issue (#505)
fix encoding to resolve stack too deep
1 parent dc25a7c commit 5ee15be

File tree

9 files changed

+191
-626
lines changed

9 files changed

+191
-626
lines changed

contracts/extension/SignatureMintERC1155.sol

Lines changed: 18 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -57,20 +57,24 @@ abstract contract SignatureMintERC1155 is EIP712, ISignatureMintERC1155 {
5757
/// @dev Resolves 'stack too deep' error in `recoverAddress`.
5858
function _encodeRequest(MintRequest calldata _req) internal pure returns (bytes memory) {
5959
return
60-
abi.encode(
61-
TYPEHASH,
62-
_req.to,
63-
_req.royaltyRecipient,
64-
_req.royaltyBps,
65-
_req.primarySaleRecipient,
66-
_req.tokenId,
67-
keccak256(bytes(_req.uri)),
68-
_req.quantity,
69-
_req.pricePerToken,
70-
_req.currency,
71-
_req.validityStartTimestamp,
72-
_req.validityEndTimestamp,
73-
_req.uid
60+
bytes.concat(
61+
abi.encode(
62+
TYPEHASH,
63+
_req.to,
64+
_req.royaltyRecipient,
65+
_req.royaltyBps,
66+
_req.primarySaleRecipient,
67+
_req.tokenId,
68+
keccak256(bytes(_req.uri))
69+
),
70+
abi.encode(
71+
_req.quantity,
72+
_req.pricePerToken,
73+
_req.currency,
74+
_req.validityStartTimestamp,
75+
_req.validityEndTimestamp,
76+
_req.uid
77+
)
7478
);
7579
}
7680
}

contracts/extension/SignatureMintERC1155Upgradeable.sol

Lines changed: 18 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -63,20 +63,24 @@ abstract contract SignatureMintERC1155Upgradeable is Initializable, EIP712Upgrad
6363
/// @dev Resolves 'stack too deep' error in `recoverAddress`.
6464
function _encodeRequest(MintRequest calldata _req) internal pure returns (bytes memory) {
6565
return
66-
abi.encode(
67-
TYPEHASH,
68-
_req.to,
69-
_req.royaltyRecipient,
70-
_req.royaltyBps,
71-
_req.primarySaleRecipient,
72-
_req.tokenId,
73-
keccak256(bytes(_req.uri)),
74-
_req.quantity,
75-
_req.pricePerToken,
76-
_req.currency,
77-
_req.validityStartTimestamp,
78-
_req.validityEndTimestamp,
79-
_req.uid
66+
bytes.concat(
67+
abi.encode(
68+
TYPEHASH,
69+
_req.to,
70+
_req.royaltyRecipient,
71+
_req.royaltyBps,
72+
_req.primarySaleRecipient,
73+
_req.tokenId,
74+
keccak256(bytes(_req.uri))
75+
),
76+
abi.encode(
77+
_req.quantity,
78+
_req.pricePerToken,
79+
_req.currency,
80+
_req.validityStartTimestamp,
81+
_req.validityEndTimestamp,
82+
_req.uid
83+
)
8084
);
8185
}
8286
}

contracts/prebuilts/token/TokenERC1155.sol

Lines changed: 18 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -405,20 +405,24 @@ contract TokenERC1155 is
405405
/// @dev Resolves 'stack too deep' error in `recoverAddress`.
406406
function _encodeRequest(MintRequest calldata _req) internal pure returns (bytes memory) {
407407
return
408-
abi.encode(
409-
TYPEHASH,
410-
_req.to,
411-
_req.royaltyRecipient,
412-
_req.royaltyBps,
413-
_req.primarySaleRecipient,
414-
_req.tokenId,
415-
keccak256(bytes(_req.uri)),
416-
_req.quantity,
417-
_req.pricePerToken,
418-
_req.currency,
419-
_req.validityStartTimestamp,
420-
_req.validityEndTimestamp,
421-
_req.uid
408+
bytes.concat(
409+
abi.encode(
410+
TYPEHASH,
411+
_req.to,
412+
_req.royaltyRecipient,
413+
_req.royaltyBps,
414+
_req.primarySaleRecipient,
415+
_req.tokenId,
416+
keccak256(bytes(_req.uri))
417+
),
418+
abi.encode(
419+
_req.quantity,
420+
_req.pricePerToken,
421+
_req.currency,
422+
_req.validityStartTimestamp,
423+
_req.validityEndTimestamp,
424+
_req.uid
425+
)
422426
);
423427
}
424428

0 commit comments

Comments
 (0)