@@ -27,7 +27,7 @@ contract CoinbaseSmartWalletValidatorTest is Test {
2727 bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc ;
2828
2929 bytes32 _IMPLEMENTATION_SET_TYPEHASH = keccak256 (
30- "EIP7702ProxyImplementationSet(uint256 chainId,address proxy,uint256 nonce,address currentImplementation,address newImplementation,bytes callData,address validator) "
30+ "EIP7702ProxyImplementationSet(uint256 chainId,address proxy,uint256 nonce,address currentImplementation,address newImplementation,bytes callData,address validator,uint256 expiry ) "
3131 );
3232
3333 function setUp () public {
@@ -58,7 +58,9 @@ contract CoinbaseSmartWalletValidatorTest is Test {
5858 _signSetImplementationData (_EOA_PRIVATE_KEY, initArgs, address (_implementation), address (_validator));
5959
6060 // Should not revert
61- EIP7702Proxy (_eoa).setImplementation (address (_implementation), initArgs, address (_validator), signature, true );
61+ EIP7702Proxy (_eoa).setImplementation (
62+ address (_implementation), initArgs, address (_validator), type (uint256 ).max, signature, true
63+ );
6264 }
6365
6466 function test_succeeds_whenWalletHasMultipleOwners () public {
@@ -73,7 +75,9 @@ contract CoinbaseSmartWalletValidatorTest is Test {
7375 _signSetImplementationData (_EOA_PRIVATE_KEY, initArgs, address (_implementation), address (_validator));
7476
7577 // Should not revert
76- EIP7702Proxy (_eoa).setImplementation (address (_implementation), initArgs, address (_validator), signature, true );
78+ EIP7702Proxy (_eoa).setImplementation (
79+ address (_implementation), initArgs, address (_validator), type (uint256 ).max, signature, true
80+ );
7781 }
7882
7983 function test_reverts_whenWalletHasNoOwners () public {
@@ -84,15 +88,19 @@ contract CoinbaseSmartWalletValidatorTest is Test {
8488 _signSetImplementationData (_EOA_PRIVATE_KEY, initArgs, address (_implementation), address (_validator));
8589
8690 vm.expectRevert (CoinbaseSmartWalletValidator.Unintialized.selector );
87- EIP7702Proxy (_eoa).setImplementation (address (_implementation), initArgs, address (_validator), signature, true );
91+ EIP7702Proxy (_eoa).setImplementation (
92+ address (_implementation), initArgs, address (_validator), type (uint256 ).max, signature, true
93+ );
8894 }
8995
9096 function test_succeeds_whenWalletHadOwnersButLastOwnerRemoved () public {
9197 // First initialize the wallet with an owner
9298 bytes memory initArgs = _createInitArgs (_newOwner);
9399 bytes memory signature =
94100 _signSetImplementationData (_EOA_PRIVATE_KEY, initArgs, address (_implementation), address (_validator));
95- EIP7702Proxy (_eoa).setImplementation (address (_implementation), initArgs, address (_validator), signature, true );
101+ EIP7702Proxy (_eoa).setImplementation (
102+ address (_implementation), initArgs, address (_validator), type (uint256 ).max, signature, true
103+ );
96104
97105 // Now remove the owner through the wallet interface
98106 vm.prank (_newOwner);
@@ -123,7 +131,9 @@ contract CoinbaseSmartWalletValidatorTest is Test {
123131 vm.expectRevert (
124132 abi.encodeWithSelector (IAccountStateValidator.InvalidImplementation.selector , address (_implementation))
125133 );
126- EIP7702Proxy (_eoa).setImplementation (address (_implementation), initArgs, address (validator), signature, true );
134+ EIP7702Proxy (_eoa).setImplementation (
135+ address (_implementation), initArgs, address (validator), type (uint256 ).max, signature, true
136+ );
127137 }
128138
129139 // Helper functions from coinbaseImplementation.t.sol
@@ -158,7 +168,8 @@ contract CoinbaseSmartWalletValidatorTest is Test {
158168 _getERC1967Implementation (address (_eoa)),
159169 address (implementation),
160170 keccak256 (initArgs),
161- address (validator)
171+ address (validator),
172+ type (uint256 ).max // default to max expiry
162173 )
163174 );
164175 (uint8 v , bytes32 r , bytes32 s ) = vm.sign (signerPk, initHash);
0 commit comments