From 02f4db3c0a5827d00cc0cc7dc9681c6c47ed2eba Mon Sep 17 00:00:00 2001 From: SGiaccobasso Date: Tue, 10 Sep 2024 00:22:29 -0300 Subject: [PATCH 01/20] feat: create gmp tracker event interface --- contracts/interfaces/IAxelarGMPTracker.sol | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 contracts/interfaces/IAxelarGMPTracker.sol diff --git a/contracts/interfaces/IAxelarGMPTracker.sol b/contracts/interfaces/IAxelarGMPTracker.sol new file mode 100644 index 00000000..40eee466 --- /dev/null +++ b/contracts/interfaces/IAxelarGMPTracker.sol @@ -0,0 +1,15 @@ +// SPDX-License-Identifier: MIT + +pragma solidity ^0.8.0; + +interface IAxelarGMPTracker { + event GMPTracker( + string sourceChain, + string destinationChain, + string sourceAddress, + string destinationAddress, + string tokenAddress, + uint256 amount + uint256 decimals + ); +} From 91ce7f55ffa8b1efb39951c57cfcb0a8e5ac3cab Mon Sep 17 00:00:00 2001 From: SGiaccobasso Date: Tue, 10 Sep 2024 15:25:02 -0300 Subject: [PATCH 02/20] chore: rename of file, add comments --- contracts/interfaces/IAxelarGMPTracker.sol | 15 ----------- contracts/interfaces/IAxelarGMPVolume.sol | 31 ++++++++++++++++++++++ 2 files changed, 31 insertions(+), 15 deletions(-) delete mode 100644 contracts/interfaces/IAxelarGMPTracker.sol create mode 100644 contracts/interfaces/IAxelarGMPVolume.sol diff --git a/contracts/interfaces/IAxelarGMPTracker.sol b/contracts/interfaces/IAxelarGMPTracker.sol deleted file mode 100644 index 40eee466..00000000 --- a/contracts/interfaces/IAxelarGMPTracker.sol +++ /dev/null @@ -1,15 +0,0 @@ -// SPDX-License-Identifier: MIT - -pragma solidity ^0.8.0; - -interface IAxelarGMPTracker { - event GMPTracker( - string sourceChain, - string destinationChain, - string sourceAddress, - string destinationAddress, - string tokenAddress, - uint256 amount - uint256 decimals - ); -} diff --git a/contracts/interfaces/IAxelarGMPVolume.sol b/contracts/interfaces/IAxelarGMPVolume.sol new file mode 100644 index 00000000..e76d31c6 --- /dev/null +++ b/contracts/interfaces/IAxelarGMPVolume.sol @@ -0,0 +1,31 @@ +// SPDX-License-Identifier: MIT + +pragma solidity ^0.8.0; + +/** + * @title IAxelarGMPVolume + * @dev Interface for tracking volume of General Message Passing (GMP) calls in the Axelar network. + * This interface defines an event that should be emitted when a GMP transfer occurs, + * allowing for standardized volume tracking across different implementations. + */ +interface IAxelarGMPVolume { + /** + * @dev Emitted when a GMP transfer occurs, providing details for volume tracking. + * @param sourceChain The name or identifier of the source chain where the transfer originated. + * @param destinationChain The name or identifier of the destination chain where the transfer is received. + * @param sourceAddress The address on the source chain that initiated the transfer. + * @param destinationAddress The address on the destination chain that receives the transfer. + * @param tokenAddress The address of the token contract being transferred. + * @param amount The amount of tokens transferred. + * @param decimals The number of decimals for the transferred token. + */ + event GMPVolume( + string sourceChain, + string destinationChain, + string sourceAddress, + string destinationAddress, + string tokenAddress, + uint256 amount, + uint256 decimals + ); +} From 346eeec090369d4a844813c19e0f00b88ed3cdc1 Mon Sep 17 00:00:00 2001 From: Canh Trinh Date: Thu, 12 Sep 2024 17:56:53 -0400 Subject: [PATCH 03/20] chore: minor changes to event name and its properties --- contracts/interfaces/IAxelarGMPTransfer.sol | 33 +++++++++++++++++++++ contracts/interfaces/IAxelarGMPVolume.sol | 31 ------------------- 2 files changed, 33 insertions(+), 31 deletions(-) create mode 100644 contracts/interfaces/IAxelarGMPTransfer.sol delete mode 100644 contracts/interfaces/IAxelarGMPVolume.sol diff --git a/contracts/interfaces/IAxelarGMPTransfer.sol b/contracts/interfaces/IAxelarGMPTransfer.sol new file mode 100644 index 00000000..00488e00 --- /dev/null +++ b/contracts/interfaces/IAxelarGMPTransfer.sol @@ -0,0 +1,33 @@ +// SPDX-License-Identifier: MIT + +pragma solidity ^0.8.0; + +/** + * @title IAxelarGMPTransfer + * @dev Interface for tracking asset value transfers using General Message Passing (GMP) calls in the Axelar Network. + * This interface defines an event that should be emitted when a GMP transfer occurs, + * allowing for standardized volume tracking across different implementations. + */ +interface IAxelarGMPTransfer { + /** + * @dev Emitted when a GMP transfer occurs, providing details for volume tracking. + * @param sender The address of the caller that initiated the transfer on the source chain. + * @param sourceChain The Axelar chain identifier of the source chain. + * @param destinationChain The Axelar chain identifier of the destination chain. + * @param destinationAddress The address of the contract on the destination chain that receives the transfer. + * @param recipientAddress The address of the final recipient of the transferred assets on the destination chain. + * @param tokenAddress The address of the token contract on the source chain. + * @param amount The amount (in atomic units) of tokens transferred. + * @param decimals The number of decimal places for the token. + */ + event AxelarGMPTransfer( + address indexed sender, + string sourceChain, + string destinationChain, + string destinationAddress, + string recipientAddress, + string tokenAddress, + uint256 amount, + uint256 decimals + ); +} diff --git a/contracts/interfaces/IAxelarGMPVolume.sol b/contracts/interfaces/IAxelarGMPVolume.sol deleted file mode 100644 index e76d31c6..00000000 --- a/contracts/interfaces/IAxelarGMPVolume.sol +++ /dev/null @@ -1,31 +0,0 @@ -// SPDX-License-Identifier: MIT - -pragma solidity ^0.8.0; - -/** - * @title IAxelarGMPVolume - * @dev Interface for tracking volume of General Message Passing (GMP) calls in the Axelar network. - * This interface defines an event that should be emitted when a GMP transfer occurs, - * allowing for standardized volume tracking across different implementations. - */ -interface IAxelarGMPVolume { - /** - * @dev Emitted when a GMP transfer occurs, providing details for volume tracking. - * @param sourceChain The name or identifier of the source chain where the transfer originated. - * @param destinationChain The name or identifier of the destination chain where the transfer is received. - * @param sourceAddress The address on the source chain that initiated the transfer. - * @param destinationAddress The address on the destination chain that receives the transfer. - * @param tokenAddress The address of the token contract being transferred. - * @param amount The amount of tokens transferred. - * @param decimals The number of decimals for the transferred token. - */ - event GMPVolume( - string sourceChain, - string destinationChain, - string sourceAddress, - string destinationAddress, - string tokenAddress, - uint256 amount, - uint256 decimals - ); -} From 886af350eb29bd23d9a93ecc69df2b2243950077 Mon Sep 17 00:00:00 2001 From: Canh Trinh Date: Tue, 17 Sep 2024 21:59:31 -0400 Subject: [PATCH 04/20] Update contracts/interfaces/IAxelarGMPTransfer.sol Co-authored-by: Milap Sheth --- contracts/interfaces/IAxelarGMPTransfer.sol | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contracts/interfaces/IAxelarGMPTransfer.sol b/contracts/interfaces/IAxelarGMPTransfer.sol index 00488e00..c2232225 100644 --- a/contracts/interfaces/IAxelarGMPTransfer.sol +++ b/contracts/interfaces/IAxelarGMPTransfer.sol @@ -25,7 +25,7 @@ interface IAxelarGMPTransfer { string sourceChain, string destinationChain, string destinationAddress, - string recipientAddress, + bytes recipient, string tokenAddress, uint256 amount, uint256 decimals From 6163a3eaa69f39566c1353cabadfda73d33ae8b3 Mon Sep 17 00:00:00 2001 From: Canh Trinh Date: Tue, 17 Sep 2024 22:01:22 -0400 Subject: [PATCH 05/20] Update contracts/interfaces/IAxelarGMPTransfer.sol Co-authored-by: Milap Sheth --- contracts/interfaces/IAxelarGMPTransfer.sol | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contracts/interfaces/IAxelarGMPTransfer.sol b/contracts/interfaces/IAxelarGMPTransfer.sol index c2232225..3ebda928 100644 --- a/contracts/interfaces/IAxelarGMPTransfer.sol +++ b/contracts/interfaces/IAxelarGMPTransfer.sol @@ -24,7 +24,7 @@ interface IAxelarGMPTransfer { address indexed sender, string sourceChain, string destinationChain, - string destinationAddress, + string destinationContractAddress, bytes recipient, string tokenAddress, uint256 amount, From 05f6cce40722defa49f9fb1b00de6553c1f4e8bc Mon Sep 17 00:00:00 2001 From: Canh Trinh Date: Tue, 17 Sep 2024 22:02:34 -0400 Subject: [PATCH 06/20] Update contracts/interfaces/IAxelarGMPTransfer.sol Co-authored-by: Milap Sheth --- contracts/interfaces/IAxelarGMPTransfer.sol | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contracts/interfaces/IAxelarGMPTransfer.sol b/contracts/interfaces/IAxelarGMPTransfer.sol index 3ebda928..7e197548 100644 --- a/contracts/interfaces/IAxelarGMPTransfer.sol +++ b/contracts/interfaces/IAxelarGMPTransfer.sol @@ -26,7 +26,7 @@ interface IAxelarGMPTransfer { string destinationChain, string destinationContractAddress, bytes recipient, - string tokenAddress, + address token, uint256 amount, uint256 decimals ); From 586d3fdb0008c820b27cf830ce5ef006711285da Mon Sep 17 00:00:00 2001 From: SGiaccobasso Date: Fri, 20 Sep 2024 14:32:33 -0300 Subject: [PATCH 07/20] chore: add transfer received event --- contracts/interfaces/IAxelarGMPTransfer.sol | 46 ++++++++++++++------- 1 file changed, 32 insertions(+), 14 deletions(-) diff --git a/contracts/interfaces/IAxelarGMPTransfer.sol b/contracts/interfaces/IAxelarGMPTransfer.sol index 7e197548..0d0b3281 100644 --- a/contracts/interfaces/IAxelarGMPTransfer.sol +++ b/contracts/interfaces/IAxelarGMPTransfer.sol @@ -3,31 +3,49 @@ pragma solidity ^0.8.0; /** - * @title IAxelarGMPTransfer + * @title IInterchainTransferSent * @dev Interface for tracking asset value transfers using General Message Passing (GMP) calls in the Axelar Network. - * This interface defines an event that should be emitted when a GMP transfer occurs, + * This interface defines an event that should be emitted when a GMP transfer is sent, * allowing for standardized volume tracking across different implementations. */ -interface IAxelarGMPTransfer { +interface IInterchainTransferSent { /** - * @dev Emitted when a GMP transfer occurs, providing details for volume tracking. - * @param sender The address of the caller that initiated the transfer on the source chain. - * @param sourceChain The Axelar chain identifier of the source chain. + * @dev Emitted when a GMP transfer is sent, providing details for volume tracking. * @param destinationChain The Axelar chain identifier of the destination chain. - * @param destinationAddress The address of the contract on the destination chain that receives the transfer. - * @param recipientAddress The address of the final recipient of the transferred assets on the destination chain. - * @param tokenAddress The address of the token contract on the source chain. + * @param destinationContractAddress The address of the contract on the destination chain that receives the transfer. + * @param recipient The address of the final recipient of the transferred assets on the destination chain. + * @param token The address of the token contract on the source chain. * @param amount The amount (in atomic units) of tokens transferred. - * @param decimals The number of decimal places for the token. */ - event AxelarGMPTransfer( - address indexed sender, - string sourceChain, + event InterchainTransferSent( string destinationChain, string destinationContractAddress, bytes recipient, address token, uint256 amount, - uint256 decimals + ); +} + +/** + * @title IInterchainTransferReceived + * @dev Interface for tracking asset value transfers using General Message Passing (GMP) calls in the Axelar Network. + * This interface defines an event that should be emitted when a GMP transfer is received, + * allowing for standardized volume tracking across different implementations. + */ +interface IInterchainTransferReceived { + /** + * @dev Emitted when an interchain transfer is received, providing details for volume tracking. + * @param sender The address of the caller that initiated the transfer on the source chain. + * @param sourceChain The Axelar chain identifier of the source chain. + * @param recipient The address of the final recipient of the transferred assets on the destination chain. + * @param token The address of the token contract on the destination chain. + * @param amount The amount (in atomic units) of tokens received. + */ + event InterchainTransferReceived( + string sender, + string sourceChain, + bytes recipient, + address token, + uint256 amount, ); } From 45387403f5d3cb1d1fc40eddae49c952eb00f4c2 Mon Sep 17 00:00:00 2001 From: Canh Trinh Date: Tue, 24 Sep 2024 11:22:10 -0400 Subject: [PATCH 08/20] chore: minor updates to transfer interface --- contracts/interfaces/IAxelarGMPTransfer.sol | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/contracts/interfaces/IAxelarGMPTransfer.sol b/contracts/interfaces/IAxelarGMPTransfer.sol index 0d0b3281..d278a805 100644 --- a/contracts/interfaces/IAxelarGMPTransfer.sol +++ b/contracts/interfaces/IAxelarGMPTransfer.sol @@ -22,7 +22,7 @@ interface IInterchainTransferSent { string destinationContractAddress, bytes recipient, address token, - uint256 amount, + uint256 amount ); } @@ -35,17 +35,19 @@ interface IInterchainTransferSent { interface IInterchainTransferReceived { /** * @dev Emitted when an interchain transfer is received, providing details for volume tracking. - * @param sender The address of the caller that initiated the transfer on the source chain. * @param sourceChain The Axelar chain identifier of the source chain. + * @param sourceAddress The address of the contract that initiated the transfer on the source chain. + * @param sender The address of the sender in case it is different from the source contract address * @param recipient The address of the final recipient of the transferred assets on the destination chain. * @param token The address of the token contract on the destination chain. * @param amount The amount (in atomic units) of tokens received. */ event InterchainTransferReceived( - string sender, string sourceChain, + string sourceAddress, + bytes sender, bytes recipient, address token, - uint256 amount, + uint256 amount ); } From 43fa007fa65e3c10309fb6681a531104051f1a3f Mon Sep 17 00:00:00 2001 From: SGiaccobasso Date: Wed, 25 Sep 2024 17:19:31 -0300 Subject: [PATCH 09/20] chore: add new event toGMPExecutableWithToken test --- contracts/interfaces/IAxelarGMPTransfer.sol | 10 ++----- .../executable/GMPExecutableWithTokenTest.sol | 27 ++++++++++++------- test/executable/GMPExecutableWithToken.js | 12 ++++++--- 3 files changed, 27 insertions(+), 22 deletions(-) diff --git a/contracts/interfaces/IAxelarGMPTransfer.sol b/contracts/interfaces/IAxelarGMPTransfer.sol index 0d0b3281..2f6644fd 100644 --- a/contracts/interfaces/IAxelarGMPTransfer.sol +++ b/contracts/interfaces/IAxelarGMPTransfer.sol @@ -22,7 +22,7 @@ interface IInterchainTransferSent { string destinationContractAddress, bytes recipient, address token, - uint256 amount, + uint256 amount ); } @@ -41,11 +41,5 @@ interface IInterchainTransferReceived { * @param token The address of the token contract on the destination chain. * @param amount The amount (in atomic units) of tokens received. */ - event InterchainTransferReceived( - string sender, - string sourceChain, - bytes recipient, - address token, - uint256 amount, - ); + event InterchainTransferReceived(string sender, string sourceChain, bytes recipient, address token, uint256 amount); } diff --git a/contracts/test/executable/GMPExecutableWithTokenTest.sol b/contracts/test/executable/GMPExecutableWithTokenTest.sol index 722140e5..eaf8ae09 100644 --- a/contracts/test/executable/GMPExecutableWithTokenTest.sol +++ b/contracts/test/executable/GMPExecutableWithTokenTest.sol @@ -3,17 +3,18 @@ pragma solidity ^0.8.0; import { AxelarGMPExecutableWithToken } from '../../executable/AxelarGMPExecutableWithToken.sol'; +import { IInterchainTransferReceived } from '../../interfaces/IAxelarGMPTransfer.sol'; -contract GMPExecutableWithTokenTest is AxelarGMPExecutableWithToken { +contract GMPExecutableWithTokenTest is AxelarGMPExecutableWithToken, IInterchainTransferReceived { event Received(uint256 num); event ReceivedWithToken(uint256 num, address tokenAddress, uint256 amount); constructor(address gatewayAddress) AxelarGMPExecutableWithToken(gatewayAddress) {} function _execute( - bytes32, /*commandId*/ - string calldata, /*sourceChain*/ - string calldata, /*sourceAddress*/ + bytes32 /*commandId*/, + string calldata /*sourceChain*/, + string calldata /*sourceAddress*/, bytes calldata payload ) internal override { uint256 num = abi.decode(payload, (uint256)); @@ -21,14 +22,20 @@ contract GMPExecutableWithTokenTest is AxelarGMPExecutableWithToken { } function _executeWithToken( - bytes32, /*commandId*/ - string calldata, /*sourceChain*/ - string calldata, /*sourceAddress*/ - bytes calldata payload, + bytes32 /*commandId*/, + string calldata sourceChain, + string calldata sourceAddress, + bytes calldata, string calldata tokenSymbol, uint256 amount ) internal override { - uint256 num = abi.decode(payload, (uint256)); - emit ReceivedWithToken(num, gatewayWithToken().tokenAddresses(tokenSymbol), amount); + // Emit InterchainTransferReceived event + emit InterchainTransferReceived( + sourceAddress, + sourceChain, + abi.encodePacked(address(this)), + gatewayWithToken().tokenAddresses(tokenSymbol), + amount + ); } } diff --git a/test/executable/GMPExecutableWithToken.js b/test/executable/GMPExecutableWithToken.js index 03023922..1e89e696 100644 --- a/test/executable/GMPExecutableWithToken.js +++ b/test/executable/GMPExecutableWithToken.js @@ -130,10 +130,14 @@ describe('GMPExecutableWithToken', () => { ); await expect(execute) - .to.emit(GMPExecutableWithToken, 'ReceivedWithToken') - .withArgs(num, tokenA.address, swapAmount) - .to.emit(tokenA, 'Transfer') - .withArgs(destinationChainGateway.address, GMPExecutableWithToken.address, swapAmount); + .to.emit(GMPExecutableWithToken, 'InterchainTransferReceived') + .withArgs( + userWallet.address.toString(), + sourceChain, + GMPExecutableWithToken.address.toLowerCase(), + await destinationChainGateway.tokenAddresses(symbolA), + swapAmount, + ); }); }); From 9c08753c92be72fd0ca505afb3089984cf76373b Mon Sep 17 00:00:00 2001 From: npty <78221556+npty@users.noreply.github.com> Date: Wed, 2 Oct 2024 19:08:28 +0700 Subject: [PATCH 10/20] chore: add indexed to token Co-authored-by: Milap Sheth --- contracts/interfaces/IAxelarGMPTransfer.sol | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contracts/interfaces/IAxelarGMPTransfer.sol b/contracts/interfaces/IAxelarGMPTransfer.sol index d278a805..4ccdcc8f 100644 --- a/contracts/interfaces/IAxelarGMPTransfer.sol +++ b/contracts/interfaces/IAxelarGMPTransfer.sol @@ -21,7 +21,7 @@ interface IInterchainTransferSent { string destinationChain, string destinationContractAddress, bytes recipient, - address token, + address indexed token, uint256 amount ); } From ddc1367f11c016fa4c49698e775daf31612fb7f9 Mon Sep 17 00:00:00 2001 From: npty <78221556+npty@users.noreply.github.com> Date: Wed, 2 Oct 2024 19:09:05 +0700 Subject: [PATCH 11/20] chore: indexed recipient Co-authored-by: Milap Sheth --- contracts/interfaces/IAxelarGMPTransfer.sol | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contracts/interfaces/IAxelarGMPTransfer.sol b/contracts/interfaces/IAxelarGMPTransfer.sol index 4ccdcc8f..26733359 100644 --- a/contracts/interfaces/IAxelarGMPTransfer.sol +++ b/contracts/interfaces/IAxelarGMPTransfer.sol @@ -46,7 +46,7 @@ interface IInterchainTransferReceived { string sourceChain, string sourceAddress, bytes sender, - bytes recipient, + address indexed recipient, address token, uint256 amount ); From b25db3adfcf64e6868675e3cf61f1215edf95afa Mon Sep 17 00:00:00 2001 From: npty <78221556+npty@users.noreply.github.com> Date: Wed, 2 Oct 2024 19:09:21 +0700 Subject: [PATCH 12/20] chore: indexed token Co-authored-by: Milap Sheth --- contracts/interfaces/IAxelarGMPTransfer.sol | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contracts/interfaces/IAxelarGMPTransfer.sol b/contracts/interfaces/IAxelarGMPTransfer.sol index 26733359..bac08221 100644 --- a/contracts/interfaces/IAxelarGMPTransfer.sol +++ b/contracts/interfaces/IAxelarGMPTransfer.sol @@ -47,7 +47,7 @@ interface IInterchainTransferReceived { string sourceAddress, bytes sender, address indexed recipient, - address token, + address indexed token, uint256 amount ); } From 6ad4eb2d693d4c99b931afe7739a76fc2f552f7a Mon Sep 17 00:00:00 2001 From: npty <78221556+npty@users.noreply.github.com> Date: Wed, 2 Oct 2024 19:09:44 +0700 Subject: [PATCH 13/20] chore: indexed sender Co-authored-by: Milap Sheth --- contracts/interfaces/IAxelarGMPTransfer.sol | 1 + 1 file changed, 1 insertion(+) diff --git a/contracts/interfaces/IAxelarGMPTransfer.sol b/contracts/interfaces/IAxelarGMPTransfer.sol index bac08221..9ce1880a 100644 --- a/contracts/interfaces/IAxelarGMPTransfer.sol +++ b/contracts/interfaces/IAxelarGMPTransfer.sol @@ -20,6 +20,7 @@ interface IInterchainTransferSent { event InterchainTransferSent( string destinationChain, string destinationContractAddress, + address indexed sender, bytes recipient, address indexed token, uint256 amount From fa1433742d637ea45063c22b87632c91c9ad326a Mon Sep 17 00:00:00 2001 From: npty <78221556+npty@users.noreply.github.com> Date: Wed, 2 Oct 2024 19:11:05 +0700 Subject: [PATCH 14/20] chore: remove payload Co-authored-by: Milap Sheth --- contracts/test/executable/GMPExecutableWithTokenTest.sol | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contracts/test/executable/GMPExecutableWithTokenTest.sol b/contracts/test/executable/GMPExecutableWithTokenTest.sol index 1e904c7f..63a7b44a 100644 --- a/contracts/test/executable/GMPExecutableWithTokenTest.sol +++ b/contracts/test/executable/GMPExecutableWithTokenTest.sol @@ -33,7 +33,7 @@ contract GMPExecutableWithTokenTest is AxelarGMPExecutableWithToken, IInterchain emit InterchainTransferReceived( sourceChain, sourceAddress, - payload, + bytes(sourceAddress), abi.encodePacked(address(this)), gatewayWithToken().tokenAddresses(tokenSymbol), amount From a63d73eba67d4609282a0ca70be6140f9f294df2 Mon Sep 17 00:00:00 2001 From: npty Date: Wed, 2 Oct 2024 19:14:05 +0700 Subject: [PATCH 15/20] chore: rename to IInterchainTransfer --- .../{IAxelarGMPTransfer.sol => IInterchainTransfer.sol} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename contracts/interfaces/{IAxelarGMPTransfer.sol => IInterchainTransfer.sol} (100%) diff --git a/contracts/interfaces/IAxelarGMPTransfer.sol b/contracts/interfaces/IInterchainTransfer.sol similarity index 100% rename from contracts/interfaces/IAxelarGMPTransfer.sol rename to contracts/interfaces/IInterchainTransfer.sol From 4865831215464ffdb043b916bc17ff5451e39450 Mon Sep 17 00:00:00 2001 From: npty Date: Wed, 2 Oct 2024 19:19:33 +0700 Subject: [PATCH 16/20] chore: fix test --- contracts/test/executable/GMPExecutableWithTokenTest.sol | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/contracts/test/executable/GMPExecutableWithTokenTest.sol b/contracts/test/executable/GMPExecutableWithTokenTest.sol index 63a7b44a..e2a5ed69 100644 --- a/contracts/test/executable/GMPExecutableWithTokenTest.sol +++ b/contracts/test/executable/GMPExecutableWithTokenTest.sol @@ -3,7 +3,7 @@ pragma solidity ^0.8.0; import { AxelarGMPExecutableWithToken } from '../../executable/AxelarGMPExecutableWithToken.sol'; -import { IInterchainTransferReceived } from '../../interfaces/IAxelarGMPTransfer.sol'; +import { IInterchainTransferReceived } from '../../interfaces/IInterchainTransfer.sol'; contract GMPExecutableWithTokenTest is AxelarGMPExecutableWithToken, IInterchainTransferReceived { event Received(uint256 num); @@ -22,10 +22,10 @@ contract GMPExecutableWithTokenTest is AxelarGMPExecutableWithToken, IInterchain } function _executeWithToken( - bytes32 /*commandId*/, + bytes32 /* commandId */, string calldata sourceChain, string calldata sourceAddress, - bytes calldata payload, + bytes calldata /* payload */, string calldata tokenSymbol, uint256 amount ) internal override { @@ -34,7 +34,7 @@ contract GMPExecutableWithTokenTest is AxelarGMPExecutableWithToken, IInterchain sourceChain, sourceAddress, bytes(sourceAddress), - abi.encodePacked(address(this)), + address(this), gatewayWithToken().tokenAddresses(tokenSymbol), amount ); From 35df51834ecfa03e9fd4a956f2e937925805b365 Mon Sep 17 00:00:00 2001 From: npty Date: Wed, 2 Oct 2024 19:21:07 +0700 Subject: [PATCH 17/20] chore: make comment consistent --- contracts/test/executable/GMPExecutableWithTokenTest.sol | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/contracts/test/executable/GMPExecutableWithTokenTest.sol b/contracts/test/executable/GMPExecutableWithTokenTest.sol index e2a5ed69..059323e0 100644 --- a/contracts/test/executable/GMPExecutableWithTokenTest.sol +++ b/contracts/test/executable/GMPExecutableWithTokenTest.sol @@ -22,10 +22,10 @@ contract GMPExecutableWithTokenTest is AxelarGMPExecutableWithToken, IInterchain } function _executeWithToken( - bytes32 /* commandId */, + bytes32 /*commandId*/, string calldata sourceChain, string calldata sourceAddress, - bytes calldata /* payload */, + bytes calldata /*payload*/, string calldata tokenSymbol, uint256 amount ) internal override { From 68ac977f0da11eaae0678140f11c17698adf2f7f Mon Sep 17 00:00:00 2001 From: npty Date: Wed, 2 Oct 2024 22:34:12 +0700 Subject: [PATCH 18/20] chore: refactor test a bit --- test/executable/GMPExecutableWithToken.js | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/test/executable/GMPExecutableWithToken.js b/test/executable/GMPExecutableWithToken.js index f260994f..fa5b6ce6 100644 --- a/test/executable/GMPExecutableWithToken.js +++ b/test/executable/GMPExecutableWithToken.js @@ -2,7 +2,7 @@ const chai = require('chai'); const { - utils: { defaultAbiCoder, keccak256, id }, + utils: { defaultAbiCoder, toUtf8Bytes, keccak256, id }, } = require('ethers'); const { expect } = chai; const { ethers } = require('hardhat'); @@ -30,7 +30,6 @@ describe('GMPExecutableWithToken', () => { before(async () => { [ownerWallet, userWallet] = await ethers.getSigners(); - gatewayFactory = await ethers.getContractFactory('MockGateway', ownerWallet); tokenFactory = await ethers.getContractFactory('ERC20MintableBurnable', ownerWallet); GMPExecutableWithTokenFactory = await ethers.getContractFactory('GMPExecutableWithTokenTest', ownerWallet); @@ -86,6 +85,7 @@ describe('GMPExecutableWithToken', () => { const approveCommandId = getRandomID(); const sourceTxHash = keccak256('0x123abc123abc'); const sourceEventIndex = 17; + const userWalletAddress = userWallet.address.toString(); const approveWithMintData = defaultAbiCoder.encode( ['string', 'string', 'address', 'bytes32', 'string', 'uint256', 'bytes32', 'uint256'], @@ -111,7 +111,7 @@ describe('GMPExecutableWithToken', () => { .withArgs( approveCommandId, sourceChain, - userWallet.address.toString(), + userWalletAddress, GMPExecutableWithToken.address, payloadHash, symbolA, @@ -123,7 +123,7 @@ describe('GMPExecutableWithToken', () => { const execute = await GMPExecutableWithToken.executeWithToken( approveCommandId, sourceChain, - userWallet.address.toString(), + userWalletAddress, payload, symbolA, swapAmount, @@ -133,9 +133,9 @@ describe('GMPExecutableWithToken', () => { .to.emit(GMPExecutableWithToken, 'InterchainTransferReceived') .withArgs( sourceChain, - userWallet.address.toString(), - payload, - GMPExecutableWithToken.address.toLowerCase(), + userWalletAddress, + toUtf8Bytes(userWalletAddress), + GMPExecutableWithToken.address, await destinationChainGateway.tokenAddresses(symbolA), swapAmount, ); From 199fc7b9d58e708a817c64b478c83ed3cedbc007 Mon Sep 17 00:00:00 2001 From: Milap Sheth Date: Tue, 15 Oct 2024 18:13:34 -0400 Subject: [PATCH 19/20] lint --- .../test/executable/AxelarExecutableWithTokenTest.sol | 10 +++++----- test/executable/AxelarExecutableWithToken.js | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/contracts/test/executable/AxelarExecutableWithTokenTest.sol b/contracts/test/executable/AxelarExecutableWithTokenTest.sol index 97c67177..a3963246 100644 --- a/contracts/test/executable/AxelarExecutableWithTokenTest.sol +++ b/contracts/test/executable/AxelarExecutableWithTokenTest.sol @@ -12,9 +12,9 @@ contract AxelarExecutableWithTokenTest is AxelarExecutableWithToken, IInterchain constructor(address gatewayAddress) AxelarExecutableWithToken(gatewayAddress) {} function _execute( - bytes32 /*commandId*/, - string calldata /*sourceChain*/, - string calldata /*sourceAddress*/, + bytes32, /*commandId*/ + string calldata, /*sourceChain*/ + string calldata, /*sourceAddress*/ bytes calldata payload ) internal override { uint256 num = abi.decode(payload, (uint256)); @@ -22,10 +22,10 @@ contract AxelarExecutableWithTokenTest is AxelarExecutableWithToken, IInterchain } function _executeWithToken( - bytes32 /*commandId*/, + bytes32, /*commandId*/ string calldata sourceChain, string calldata sourceAddress, - bytes calldata /*payload*/, + bytes calldata, /*payload*/ string calldata tokenSymbol, uint256 amount ) internal override { diff --git a/test/executable/AxelarExecutableWithToken.js b/test/executable/AxelarExecutableWithToken.js index 7695d733..a0fc449d 100644 --- a/test/executable/AxelarExecutableWithToken.js +++ b/test/executable/AxelarExecutableWithToken.js @@ -138,7 +138,7 @@ describe('AxelarExecutableWithToken', () => { sourceChain, userWalletAddress, toUtf8Bytes(userWalletAddress), - GMPExecutableWithToken.address, + AxelarExecutableWithToken.address, await destinationChainGateway.tokenAddresses(symbolA), swapAmount, ); From 8d842d5f1922c4d75f62b87b21ff8d932837133c Mon Sep 17 00:00:00 2001 From: Milap Sheth Date: Tue, 15 Oct 2024 18:16:35 -0400 Subject: [PATCH 20/20] bump version --- package-lock.json | 670 ++++++++++++++++++---------------------------- package.json | 2 +- 2 files changed, 260 insertions(+), 412 deletions(-) diff --git a/package-lock.json b/package-lock.json index 7130ec9b..5b113ff5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@axelar-network/axelar-gmp-sdk-solidity", - "version": "5.11.0", + "version": "6.0.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@axelar-network/axelar-gmp-sdk-solidity", - "version": "5.11.0", + "version": "6.0.0", "license": "MIT", "devDependencies": { "@axelar-network/axelar-chains-config": "^1.2.0", @@ -1178,131 +1178,82 @@ } }, "node_modules/@nomicfoundation/edr": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/@nomicfoundation/edr/-/edr-0.3.5.tgz", - "integrity": "sha512-dPSM9DuI1sr71gqWUMgLo8MjHQWO4+WNDm3iWaT6P4vUFJReZX5qwA5X+3UwIPBry8GvNY084u7yWUvB3/8rqA==", + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/@nomicfoundation/edr/-/edr-0.6.3.tgz", + "integrity": "sha512-hThe5ORR75WFYTXKL0K2AyLDxkTMrG+VQ1yL9BhQYsuh3OIH+3yNDxMz2LjfvrpOrMmJ4kk5NKdFewpqDojjXQ==", "dev": true, + "dependencies": { + "@nomicfoundation/edr-darwin-arm64": "0.6.3", + "@nomicfoundation/edr-darwin-x64": "0.6.3", + "@nomicfoundation/edr-linux-arm64-gnu": "0.6.3", + "@nomicfoundation/edr-linux-arm64-musl": "0.6.3", + "@nomicfoundation/edr-linux-x64-gnu": "0.6.3", + "@nomicfoundation/edr-linux-x64-musl": "0.6.3", + "@nomicfoundation/edr-win32-x64-msvc": "0.6.3" + }, "engines": { "node": ">= 18" - }, - "optionalDependencies": { - "@nomicfoundation/edr-darwin-arm64": "0.3.5", - "@nomicfoundation/edr-darwin-x64": "0.3.5", - "@nomicfoundation/edr-linux-arm64-gnu": "0.3.5", - "@nomicfoundation/edr-linux-arm64-musl": "0.3.5", - "@nomicfoundation/edr-linux-x64-gnu": "0.3.5", - "@nomicfoundation/edr-linux-x64-musl": "0.3.5", - "@nomicfoundation/edr-win32-x64-msvc": "0.3.5" } }, "node_modules/@nomicfoundation/edr-darwin-arm64": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-darwin-arm64/-/edr-darwin-arm64-0.3.5.tgz", - "integrity": "sha512-gIXUIiPMUy6roLHpNlxf15DumU7/YhffUf7XIB+WUjMecaySfTGyZsTGnCMJZqrDyiYqWPyPKwCV/2u/jqFAUg==", - "cpu": [ - "arm64" - ], + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-darwin-arm64/-/edr-darwin-arm64-0.6.3.tgz", + "integrity": "sha512-hqtI7tYDqKG5PDmZ//Z65EH5cgH8VL/SAAu50rpHP7WAVfJWkOCcYbecywwF6nhHdonJbRTDGAeG1/+VOy6zew==", "dev": true, - "optional": true, - "os": [ - "darwin" - ], "engines": { "node": ">= 18" } }, "node_modules/@nomicfoundation/edr-darwin-x64": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-darwin-x64/-/edr-darwin-x64-0.3.5.tgz", - "integrity": "sha512-0MrpOCXUK8gmplpYZ2Cy0holHEylvWoNeecFcrP2WJ5DLQzrB23U5JU2MvUzOJ7aL76Za1VXNBWi/UeTWdHM+w==", - "cpu": [ - "x64" - ], + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-darwin-x64/-/edr-darwin-x64-0.6.3.tgz", + "integrity": "sha512-4fGi79/lyOlRUORhCYsYb3sWqRHuHT7qqzyZfZuNOn8llaxmT1k36xNmvpyg37R8SzjnhT/DzoukSJrs23Ip9Q==", "dev": true, - "optional": true, - "os": [ - "darwin" - ], "engines": { "node": ">= 18" } }, "node_modules/@nomicfoundation/edr-linux-arm64-gnu": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-linux-arm64-gnu/-/edr-linux-arm64-gnu-0.3.5.tgz", - "integrity": "sha512-aw9f7AZMiY1dZFNePJGKho2k+nEgFgzUAyyukiKfSqUIMXoFXMf1U3Ujv848czrSq9c5XGcdDa2xnEf3daU3xg==", - "cpu": [ - "arm64" - ], + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-linux-arm64-gnu/-/edr-linux-arm64-gnu-0.6.3.tgz", + "integrity": "sha512-yFFTvGFMhfAvQ1Z2itUh1jpoUA+mVROyVELcaxjIq8fyg602lQmbS+NXkhQ+oaeDgJ+06mSENrHBg4fcfRf9cw==", "dev": true, - "optional": true, - "os": [ - "linux" - ], "engines": { "node": ">= 18" } }, "node_modules/@nomicfoundation/edr-linux-arm64-musl": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-linux-arm64-musl/-/edr-linux-arm64-musl-0.3.5.tgz", - "integrity": "sha512-cVFRQjyABBlsbDj+XTczYBfrCHprZ6YNzN8gGGSqAh+UGIJkAIRomK6ar27GyJLNx3HkgbuDoi/9kA0zOo/95w==", - "cpu": [ - "arm64" - ], + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-linux-arm64-musl/-/edr-linux-arm64-musl-0.6.3.tgz", + "integrity": "sha512-pOKmd0Fa3a6BHg5qbjbl/jMRELVi9oazbfiuU7Bvgn/dpTK+ID3jwT0SXiuC2zxjmPByWgXL6G9XRf5BPAM2rQ==", "dev": true, - "optional": true, - "os": [ - "linux" - ], "engines": { "node": ">= 18" } }, "node_modules/@nomicfoundation/edr-linux-x64-gnu": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-linux-x64-gnu/-/edr-linux-x64-gnu-0.3.5.tgz", - "integrity": "sha512-CjOg85DfR1Vt0fQWn5U0qi26DATK9tVzo3YOZEyI0JBsnqvk43fUTPv3uUAWBrPIRg5O5kOc9xG13hSpCBBxBg==", - "cpu": [ - "x64" - ], + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-linux-x64-gnu/-/edr-linux-x64-gnu-0.6.3.tgz", + "integrity": "sha512-3AUferhkLIXtLV63w5GjpHttzdxZ36i656XMy+pkBZbbiqnzIVeKWg6DJv1A94fQY16gB4gqj9CLq4CWvbNN6w==", "dev": true, - "optional": true, - "os": [ - "linux" - ], "engines": { "node": ">= 18" } }, "node_modules/@nomicfoundation/edr-linux-x64-musl": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-linux-x64-musl/-/edr-linux-x64-musl-0.3.5.tgz", - "integrity": "sha512-hvX8bBGpBydAVevzK8jsu2FlqVZK1RrCyTX6wGHnltgMuBaoGLHYtNHiFpteOaJw2byYMiORc2bvj+98LhJ0Ew==", - "cpu": [ - "x64" - ], + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-linux-x64-musl/-/edr-linux-x64-musl-0.6.3.tgz", + "integrity": "sha512-fr6bD872WIBXe9YnTDi0CzYepMcYRgSnkVqn0yK4wRnIvKrloWhxXNVY45GVIl51aNZguBnvoA4WEt6HIazs3A==", "dev": true, - "optional": true, - "os": [ - "linux" - ], "engines": { "node": ">= 18" } }, "node_modules/@nomicfoundation/edr-win32-x64-msvc": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-win32-x64-msvc/-/edr-win32-x64-msvc-0.3.5.tgz", - "integrity": "sha512-IJXjW13DY5UPsx/eG5DGfXtJ7Ydwrvw/BTZ2Y93lRLHzszVpSmeVmlxjZP5IW2afTSgMLaAAsqNw4NhppRGN8A==", - "cpu": [ - "x64" - ], + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-win32-x64-msvc/-/edr-win32-x64-msvc-0.6.3.tgz", + "integrity": "sha512-sn34MvN1ajw2Oq1+Drpxej78Z0HfIzI4p4WlolupAV9dOZKzp2JAIQeLVfZpjIFbF3zuyxLPP4dUBrQoFPEqhA==", "dev": true, - "optional": true, - "os": [ - "win32" - ], "engines": { "node": ">= 18" } @@ -1439,9 +1390,9 @@ } }, "node_modules/@nomicfoundation/hardhat-network-helpers": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/@nomicfoundation/hardhat-network-helpers/-/hardhat-network-helpers-1.0.8.tgz", - "integrity": "sha512-MNqQbzUJZnCMIYvlniC3U+kcavz/PhhQSsY90tbEtUyMj/IQqsLwIRZa4ctjABh3Bz0KCh9OXUZ7Yk/d9hr45Q==", + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/@nomicfoundation/hardhat-network-helpers/-/hardhat-network-helpers-1.0.12.tgz", + "integrity": "sha512-xTNQNI/9xkHvjmCJnJOTyqDSl8uq1rKb2WOVmixQxFtRd7Oa3ecO8zM0cyC2YmOK+jHB9WPZ+F/ijkHg1CoORA==", "dev": true, "peer": true, "dependencies": { @@ -1671,9 +1622,10 @@ } }, "node_modules/@nomiclabs/hardhat-etherscan": { - "version": "3.1.7", - "resolved": "https://registry.npmjs.org/@nomiclabs/hardhat-etherscan/-/hardhat-etherscan-3.1.7.tgz", - "integrity": "sha512-tZ3TvSgpvsQ6B6OGmo1/Au6u8BrAkvs1mIC/eURA3xgIfznUZBhmpne8hv7BXUzw9xNL3fXdpOYgOQlVMTcoHQ==", + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/@nomiclabs/hardhat-etherscan/-/hardhat-etherscan-3.1.8.tgz", + "integrity": "sha512-v5F6IzQhrsjHh6kQz4uNrym49brK9K5bYCq2zQZ729RYRaifI9hHbtmK+KkIVevfhut7huQFEQ77JLRMAzWYjQ==", + "deprecated": "The @nomiclabs/hardhat-etherscan package is deprecated, please use @nomicfoundation/hardhat-verify instead", "dev": true, "peer": true, "dependencies": { @@ -2274,16 +2226,6 @@ "node": ">=0.4.0" } }, - "node_modules/address": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/address/-/address-1.2.2.tgz", - "integrity": "sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==", - "dev": true, - "peer": true, - "engines": { - "node": ">= 10.0.0" - } - }, "node_modules/adm-zip": { "version": "0.4.16", "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.16.tgz", @@ -2640,13 +2582,13 @@ } }, "node_modules/axios": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.2.tgz", - "integrity": "sha512-7i24Ri4pmDRfJTR7LDBhsOTtcm+9kjX5WiY1X3wIisx6G9So3pfMkEiU7emUBe46oceVImccTEM3k6C5dbVW8A==", + "version": "1.7.7", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.7.tgz", + "integrity": "sha512-S4kL7XrjgBmvdGut0sN3yJxqYzrDOnivkBiN0OFs6hLiUam3UPvswUo0kqGyhqUZGEOytHyumEdXsAkgCOUf3Q==", "dev": true, "peer": true, "dependencies": { - "follow-redirects": "^1.15.0", + "follow-redirects": "^1.15.6", "form-data": "^4.0.0", "proxy-from-env": "^1.1.0" } @@ -3324,10 +3266,13 @@ } }, "node_modules/commander": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/commander/-/commander-3.0.2.tgz", - "integrity": "sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow==", - "dev": true + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", + "dev": true, + "engines": { + "node": ">= 12" + } }, "node_modules/concat-map": { "version": "0.0.1", @@ -3648,21 +3593,6 @@ "node": ">= 0.8" } }, - "node_modules/detect-port": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/detect-port/-/detect-port-1.5.1.tgz", - "integrity": "sha512-aBzdj76lueB6uUst5iAs7+0H/oOjqI5D16XUWxlWMIMROhcM0rfsNVk93zTngq1dDNpoXRr++Sus7ETAExppAQ==", - "dev": true, - "peer": true, - "dependencies": { - "address": "^1.0.1", - "debug": "4" - }, - "bin": { - "detect": "bin/detect-port.js", - "detect-port": "bin/detect-port.js" - } - }, "node_modules/diff": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", @@ -5409,14 +5339,14 @@ } }, "node_modules/hardhat": { - "version": "2.22.3", - "resolved": "https://registry.npmjs.org/hardhat/-/hardhat-2.22.3.tgz", - "integrity": "sha512-k8JV2ECWNchD6ahkg2BR5wKVxY0OiKot7fuxiIpRK0frRqyOljcR2vKwgWSLw6YIeDcNNA4xybj7Og7NSxr2hA==", + "version": "2.22.13", + "resolved": "https://registry.npmjs.org/hardhat/-/hardhat-2.22.13.tgz", + "integrity": "sha512-psVJX4FSXDpSXwsU8OcKTJN04pQEj9cFBMX5OPko+OFwbIoiOpvRmafa954/UaA1934npTj8sV3gaTSdx9bPbA==", "dev": true, "dependencies": { "@ethersproject/abi": "^5.1.2", "@metamask/eth-sig-util": "^4.0.0", - "@nomicfoundation/edr": "^0.3.5", + "@nomicfoundation/edr": "^0.6.3", "@nomicfoundation/ethereumjs-common": "4.0.4", "@nomicfoundation/ethereumjs-tx": "5.0.4", "@nomicfoundation/ethereumjs-util": "9.0.4", @@ -5429,7 +5359,7 @@ "ansi-escapes": "^4.3.0", "boxen": "^5.1.2", "chalk": "^2.4.2", - "chokidar": "^3.4.0", + "chokidar": "^4.0.0", "ci-info": "^2.0.0", "debug": "^4.1.1", "enquirer": "^2.3.0", @@ -5442,6 +5372,7 @@ "glob": "7.2.0", "immutable": "^4.0.0-rc.12", "io-ts": "1.10.4", + "json-stream-stringify": "^3.1.4", "keccak": "^3.0.2", "lodash": "^4.17.11", "mnemonist": "^0.38.0", @@ -5450,7 +5381,7 @@ "raw-body": "^2.4.1", "resolve": "1.17.0", "semver": "^6.3.0", - "solc": "0.7.3", + "solc": "0.8.26", "source-map-support": "^0.5.13", "stacktrace-parser": "^0.1.10", "tsort": "0.0.1", @@ -5533,9 +5464,9 @@ } }, "node_modules/hardhat-gas-reporter": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/hardhat-gas-reporter/-/hardhat-gas-reporter-1.0.9.tgz", - "integrity": "sha512-INN26G3EW43adGKBNzYWOlI3+rlLnasXTwW79YNnUhXPDa+yHESgt639dJEs37gCjhkbNKcRRJnomXEuMFBXJg==", + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/hardhat-gas-reporter/-/hardhat-gas-reporter-1.0.10.tgz", + "integrity": "sha512-02N4+So/fZrzJ88ci54GqwVA3Zrf0C9duuTyGt0CFRIh/CdNwbnTgkXkRfojOMLBQ+6t+lBIkgbsOtqMvNwikA==", "dev": true, "peer": true, "dependencies": { @@ -5594,6 +5525,21 @@ "node": ">=0.8.0" } }, + "node_modules/hardhat/node_modules/chokidar": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.1.tgz", + "integrity": "sha512-n8enUVCED/KVRQlab1hr3MVpcVMvxtZjmEa956u+4YijlmQED223XMSYj2tLuKvr4jcCTzNNMpQDUer72MMmzA==", + "dev": true, + "dependencies": { + "readdirp": "^4.0.1" + }, + "engines": { + "node": ">= 14.16.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, "node_modules/hardhat/node_modules/color-convert": { "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", @@ -5623,22 +5569,17 @@ "node": ">=6 <7 || >=8" } }, - "node_modules/hardhat/node_modules/fs-extra/node_modules/jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", - "dev": true, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/hardhat/node_modules/jsonfile": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", - "integrity": "sha512-PKllAqbgLgxHaj8TElYymKCAgrASebJrWpTnEkOaTowt23VKXXN0sUeriJ+eh7y6ufb/CC5ap11pz71/cM0hUw==", + "node_modules/hardhat/node_modules/readdirp": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.0.2.tgz", + "integrity": "sha512-yDMz9g+VaZkqBYS/ozoBJwaBhTbZo3UNYQHNRw1D3UFQB8oHB4uS/tAODO+ZLjGWmUbKnIlOWO+aaIiAxrUWHA==", "dev": true, - "optionalDependencies": { - "graceful-fs": "^4.1.6" + "engines": { + "node": ">= 14.16.0" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" } }, "node_modules/hardhat/node_modules/resolve": { @@ -5653,63 +5594,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/hardhat/node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/hardhat/node_modules/solc": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/solc/-/solc-0.7.3.tgz", - "integrity": "sha512-GAsWNAjGzIDg7VxzP6mPjdurby3IkGCjQcM8GFYZT6RyaoUZKmMU6Y7YwG+tFGhv7dwZ8rmR4iwFDrrD99JwqA==", - "dev": true, - "dependencies": { - "command-exists": "^1.2.8", - "commander": "3.0.2", - "follow-redirects": "^1.12.1", - "fs-extra": "^0.30.0", - "js-sha3": "0.8.0", - "memorystream": "^0.3.1", - "require-from-string": "^2.0.0", - "semver": "^5.5.0", - "tmp": "0.0.33" - }, - "bin": { - "solcjs": "solcjs" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/hardhat/node_modules/solc/node_modules/fs-extra": { - "version": "0.30.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.30.0.tgz", - "integrity": "sha512-UvSPKyhMn6LEd/WpUaV9C9t3zATuqoqfWc3QdPhPLb58prN9tqYPlPWi8Krxi44loBoUzlobqZ3+8tGpxxSzwA==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "jsonfile": "^2.1.0", - "klaw": "^1.0.0", - "path-is-absolute": "^1.0.0", - "rimraf": "^2.2.8" - } - }, - "node_modules/hardhat/node_modules/solc/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, "node_modules/hardhat/node_modules/supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", @@ -6416,6 +6300,15 @@ "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", "dev": true }, + "node_modules/json-stream-stringify": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/json-stream-stringify/-/json-stream-stringify-3.1.6.tgz", + "integrity": "sha512-x7fpwxOkbhFCaJDJ8vb1fBY3DdSa4AlITaz+HHILQJzdPMnHEFjxPwVUi1ALIbcIxDE0PNe/0i7frnY8QnBQog==", + "dev": true, + "engines": { + "node": ">=7.10.1" + } + }, "node_modules/json5": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", @@ -6433,7 +6326,6 @@ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", "dev": true, - "peer": true, "optionalDependencies": { "graceful-fs": "^4.1.6" } @@ -6482,15 +6374,6 @@ "node": ">=0.10.0" } }, - "node_modules/klaw": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz", - "integrity": "sha512-TED5xi9gGQjGpNnvRWknrwAB1eL5GciPfVFOt3Vk1OJCVDQbzuSfrF3hkUQKlsgKrG1F+0t5W0m+Fje1jIt8rw==", - "dev": true, - "optionalDependencies": { - "graceful-fs": "^4.1.9" - } - }, "node_modules/latest-version": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-7.0.0.tgz", @@ -6664,13 +6547,13 @@ } }, "node_modules/micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", "dev": true, "peer": true, "dependencies": { - "braces": "^3.0.2", + "braces": "^3.0.3", "picomatch": "^2.3.1" }, "engines": { @@ -8241,6 +8124,36 @@ "node": ">=8" } }, + "node_modules/solc": { + "version": "0.8.26", + "resolved": "https://registry.npmjs.org/solc/-/solc-0.8.26.tgz", + "integrity": "sha512-yiPQNVf5rBFHwN6SIf3TUUvVAFKcQqmSUFeq+fb6pNRCo0ZCgpYOZDi3BVoezCPIAcKrVYd/qXlBLUP9wVrZ9g==", + "dev": true, + "dependencies": { + "command-exists": "^1.2.8", + "commander": "^8.1.0", + "follow-redirects": "^1.12.1", + "js-sha3": "0.8.0", + "memorystream": "^0.3.1", + "semver": "^5.5.0", + "tmp": "0.0.33" + }, + "bin": { + "solcjs": "solc.js" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/solc/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, "node_modules/solhint": { "version": "4.5.2", "resolved": "https://registry.npmjs.org/solhint/-/solhint-4.5.2.tgz", @@ -8350,25 +8263,24 @@ "dev": true }, "node_modules/solidity-coverage": { - "version": "0.8.5", - "resolved": "https://registry.npmjs.org/solidity-coverage/-/solidity-coverage-0.8.5.tgz", - "integrity": "sha512-6C6N6OV2O8FQA0FWA95FdzVH+L16HU94iFgg5wAFZ29UpLFkgNI/DRR2HotG1bC0F4gAc/OMs2BJI44Q/DYlKQ==", + "version": "0.8.13", + "resolved": "https://registry.npmjs.org/solidity-coverage/-/solidity-coverage-0.8.13.tgz", + "integrity": "sha512-RiBoI+kF94V3Rv0+iwOj3HQVSqNzA9qm/qDP1ZDXK5IX0Cvho1qiz8hAXTsAo6KOIUeP73jfscq0KlLqVxzGWA==", "dev": true, "peer": true, "dependencies": { "@ethersproject/abi": "^5.0.9", - "@solidity-parser/parser": "^0.16.0", + "@solidity-parser/parser": "^0.18.0", "chalk": "^2.4.2", "death": "^1.1.0", - "detect-port": "^1.3.0", "difflib": "^0.2.4", "fs-extra": "^8.1.0", "ghost-testrpc": "^0.0.2", "global-modules": "^2.0.0", "globby": "^10.0.1", "jsonschema": "^1.2.4", - "lodash": "^4.17.15", - "mocha": "10.2.0", + "lodash": "^4.17.21", + "mocha": "^10.2.0", "node-emoji": "^1.10.0", "pify": "^4.0.1", "recursive-readdir": "^2.2.2", @@ -8385,14 +8297,11 @@ } }, "node_modules/solidity-coverage/node_modules/@solidity-parser/parser": { - "version": "0.16.1", - "resolved": "https://registry.npmjs.org/@solidity-parser/parser/-/parser-0.16.1.tgz", - "integrity": "sha512-PdhRFNhbTtu3x8Axm0uYpqOy/lODYQK+MlYSgqIsq2L8SFYEHJPHNUiOTAJbDGzNjjr1/n9AcIayxafR/fWmYw==", + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/@solidity-parser/parser/-/parser-0.18.0.tgz", + "integrity": "sha512-yfORGUIPgLck41qyN7nbwJRAx17/jAIXCTanHOJZhB6PJ1iAk/84b/xlsVKFSyNyLXIj0dhppoE0+CRws7wlzA==", "dev": true, - "peer": true, - "dependencies": { - "antlr4ts": "^0.5.0-alpha.4" - } + "peer": true }, "node_modules/solidity-coverage/node_modules/ansi-styles": { "version": "3.2.1", @@ -10410,68 +10319,61 @@ } }, "@nomicfoundation/edr": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/@nomicfoundation/edr/-/edr-0.3.5.tgz", - "integrity": "sha512-dPSM9DuI1sr71gqWUMgLo8MjHQWO4+WNDm3iWaT6P4vUFJReZX5qwA5X+3UwIPBry8GvNY084u7yWUvB3/8rqA==", + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/@nomicfoundation/edr/-/edr-0.6.3.tgz", + "integrity": "sha512-hThe5ORR75WFYTXKL0K2AyLDxkTMrG+VQ1yL9BhQYsuh3OIH+3yNDxMz2LjfvrpOrMmJ4kk5NKdFewpqDojjXQ==", "dev": true, "requires": { - "@nomicfoundation/edr-darwin-arm64": "0.3.5", - "@nomicfoundation/edr-darwin-x64": "0.3.5", - "@nomicfoundation/edr-linux-arm64-gnu": "0.3.5", - "@nomicfoundation/edr-linux-arm64-musl": "0.3.5", - "@nomicfoundation/edr-linux-x64-gnu": "0.3.5", - "@nomicfoundation/edr-linux-x64-musl": "0.3.5", - "@nomicfoundation/edr-win32-x64-msvc": "0.3.5" + "@nomicfoundation/edr-darwin-arm64": "0.6.3", + "@nomicfoundation/edr-darwin-x64": "0.6.3", + "@nomicfoundation/edr-linux-arm64-gnu": "0.6.3", + "@nomicfoundation/edr-linux-arm64-musl": "0.6.3", + "@nomicfoundation/edr-linux-x64-gnu": "0.6.3", + "@nomicfoundation/edr-linux-x64-musl": "0.6.3", + "@nomicfoundation/edr-win32-x64-msvc": "0.6.3" } }, "@nomicfoundation/edr-darwin-arm64": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-darwin-arm64/-/edr-darwin-arm64-0.3.5.tgz", - "integrity": "sha512-gIXUIiPMUy6roLHpNlxf15DumU7/YhffUf7XIB+WUjMecaySfTGyZsTGnCMJZqrDyiYqWPyPKwCV/2u/jqFAUg==", - "dev": true, - "optional": true + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-darwin-arm64/-/edr-darwin-arm64-0.6.3.tgz", + "integrity": "sha512-hqtI7tYDqKG5PDmZ//Z65EH5cgH8VL/SAAu50rpHP7WAVfJWkOCcYbecywwF6nhHdonJbRTDGAeG1/+VOy6zew==", + "dev": true }, "@nomicfoundation/edr-darwin-x64": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-darwin-x64/-/edr-darwin-x64-0.3.5.tgz", - "integrity": "sha512-0MrpOCXUK8gmplpYZ2Cy0holHEylvWoNeecFcrP2WJ5DLQzrB23U5JU2MvUzOJ7aL76Za1VXNBWi/UeTWdHM+w==", - "dev": true, - "optional": true + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-darwin-x64/-/edr-darwin-x64-0.6.3.tgz", + "integrity": "sha512-4fGi79/lyOlRUORhCYsYb3sWqRHuHT7qqzyZfZuNOn8llaxmT1k36xNmvpyg37R8SzjnhT/DzoukSJrs23Ip9Q==", + "dev": true }, "@nomicfoundation/edr-linux-arm64-gnu": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-linux-arm64-gnu/-/edr-linux-arm64-gnu-0.3.5.tgz", - "integrity": "sha512-aw9f7AZMiY1dZFNePJGKho2k+nEgFgzUAyyukiKfSqUIMXoFXMf1U3Ujv848czrSq9c5XGcdDa2xnEf3daU3xg==", - "dev": true, - "optional": true + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-linux-arm64-gnu/-/edr-linux-arm64-gnu-0.6.3.tgz", + "integrity": "sha512-yFFTvGFMhfAvQ1Z2itUh1jpoUA+mVROyVELcaxjIq8fyg602lQmbS+NXkhQ+oaeDgJ+06mSENrHBg4fcfRf9cw==", + "dev": true }, "@nomicfoundation/edr-linux-arm64-musl": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-linux-arm64-musl/-/edr-linux-arm64-musl-0.3.5.tgz", - "integrity": "sha512-cVFRQjyABBlsbDj+XTczYBfrCHprZ6YNzN8gGGSqAh+UGIJkAIRomK6ar27GyJLNx3HkgbuDoi/9kA0zOo/95w==", - "dev": true, - "optional": true + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-linux-arm64-musl/-/edr-linux-arm64-musl-0.6.3.tgz", + "integrity": "sha512-pOKmd0Fa3a6BHg5qbjbl/jMRELVi9oazbfiuU7Bvgn/dpTK+ID3jwT0SXiuC2zxjmPByWgXL6G9XRf5BPAM2rQ==", + "dev": true }, "@nomicfoundation/edr-linux-x64-gnu": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-linux-x64-gnu/-/edr-linux-x64-gnu-0.3.5.tgz", - "integrity": "sha512-CjOg85DfR1Vt0fQWn5U0qi26DATK9tVzo3YOZEyI0JBsnqvk43fUTPv3uUAWBrPIRg5O5kOc9xG13hSpCBBxBg==", - "dev": true, - "optional": true + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-linux-x64-gnu/-/edr-linux-x64-gnu-0.6.3.tgz", + "integrity": "sha512-3AUferhkLIXtLV63w5GjpHttzdxZ36i656XMy+pkBZbbiqnzIVeKWg6DJv1A94fQY16gB4gqj9CLq4CWvbNN6w==", + "dev": true }, "@nomicfoundation/edr-linux-x64-musl": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-linux-x64-musl/-/edr-linux-x64-musl-0.3.5.tgz", - "integrity": "sha512-hvX8bBGpBydAVevzK8jsu2FlqVZK1RrCyTX6wGHnltgMuBaoGLHYtNHiFpteOaJw2byYMiORc2bvj+98LhJ0Ew==", - "dev": true, - "optional": true + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-linux-x64-musl/-/edr-linux-x64-musl-0.6.3.tgz", + "integrity": "sha512-fr6bD872WIBXe9YnTDi0CzYepMcYRgSnkVqn0yK4wRnIvKrloWhxXNVY45GVIl51aNZguBnvoA4WEt6HIazs3A==", + "dev": true }, "@nomicfoundation/edr-win32-x64-msvc": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-win32-x64-msvc/-/edr-win32-x64-msvc-0.3.5.tgz", - "integrity": "sha512-IJXjW13DY5UPsx/eG5DGfXtJ7Ydwrvw/BTZ2Y93lRLHzszVpSmeVmlxjZP5IW2afTSgMLaAAsqNw4NhppRGN8A==", - "dev": true, - "optional": true + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/@nomicfoundation/edr-win32-x64-msvc/-/edr-win32-x64-msvc-0.6.3.tgz", + "integrity": "sha512-sn34MvN1ajw2Oq1+Drpxej78Z0HfIzI4p4WlolupAV9dOZKzp2JAIQeLVfZpjIFbF3zuyxLPP4dUBrQoFPEqhA==", + "dev": true }, "@nomicfoundation/ethereumjs-common": { "version": "4.0.4", @@ -10575,9 +10477,9 @@ } }, "@nomicfoundation/hardhat-network-helpers": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/@nomicfoundation/hardhat-network-helpers/-/hardhat-network-helpers-1.0.8.tgz", - "integrity": "sha512-MNqQbzUJZnCMIYvlniC3U+kcavz/PhhQSsY90tbEtUyMj/IQqsLwIRZa4ctjABh3Bz0KCh9OXUZ7Yk/d9hr45Q==", + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/@nomicfoundation/hardhat-network-helpers/-/hardhat-network-helpers-1.0.12.tgz", + "integrity": "sha512-xTNQNI/9xkHvjmCJnJOTyqDSl8uq1rKb2WOVmixQxFtRd7Oa3ecO8zM0cyC2YmOK+jHB9WPZ+F/ijkHg1CoORA==", "dev": true, "peer": true, "requires": { @@ -10688,9 +10590,9 @@ "requires": {} }, "@nomiclabs/hardhat-etherscan": { - "version": "3.1.7", - "resolved": "https://registry.npmjs.org/@nomiclabs/hardhat-etherscan/-/hardhat-etherscan-3.1.7.tgz", - "integrity": "sha512-tZ3TvSgpvsQ6B6OGmo1/Au6u8BrAkvs1mIC/eURA3xgIfznUZBhmpne8hv7BXUzw9xNL3fXdpOYgOQlVMTcoHQ==", + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/@nomiclabs/hardhat-etherscan/-/hardhat-etherscan-3.1.8.tgz", + "integrity": "sha512-v5F6IzQhrsjHh6kQz4uNrym49brK9K5bYCq2zQZ729RYRaifI9hHbtmK+KkIVevfhut7huQFEQ77JLRMAzWYjQ==", "dev": true, "peer": true, "requires": { @@ -11183,13 +11085,6 @@ "dev": true, "peer": true }, - "address": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/address/-/address-1.2.2.tgz", - "integrity": "sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA==", - "dev": true, - "peer": true - }, "adm-zip": { "version": "0.4.16", "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.16.tgz", @@ -11459,13 +11354,13 @@ "dev": true }, "axios": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.2.tgz", - "integrity": "sha512-7i24Ri4pmDRfJTR7LDBhsOTtcm+9kjX5WiY1X3wIisx6G9So3pfMkEiU7emUBe46oceVImccTEM3k6C5dbVW8A==", + "version": "1.7.7", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.7.tgz", + "integrity": "sha512-S4kL7XrjgBmvdGut0sN3yJxqYzrDOnivkBiN0OFs6hLiUam3UPvswUo0kqGyhqUZGEOytHyumEdXsAkgCOUf3Q==", "dev": true, "peer": true, "requires": { - "follow-redirects": "^1.15.0", + "follow-redirects": "^1.15.6", "form-data": "^4.0.0", "proxy-from-env": "^1.1.0" }, @@ -12018,9 +11913,9 @@ } }, "commander": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/commander/-/commander-3.0.2.tgz", - "integrity": "sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow==", + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", "dev": true }, "concat-map": { @@ -12272,17 +12167,6 @@ "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", "dev": true }, - "detect-port": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/detect-port/-/detect-port-1.5.1.tgz", - "integrity": "sha512-aBzdj76lueB6uUst5iAs7+0H/oOjqI5D16XUWxlWMIMROhcM0rfsNVk93zTngq1dDNpoXRr++Sus7ETAExppAQ==", - "dev": true, - "peer": true, - "requires": { - "address": "^1.0.1", - "debug": "4" - } - }, "diff": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", @@ -13638,14 +13522,14 @@ } }, "hardhat": { - "version": "2.22.3", - "resolved": "https://registry.npmjs.org/hardhat/-/hardhat-2.22.3.tgz", - "integrity": "sha512-k8JV2ECWNchD6ahkg2BR5wKVxY0OiKot7fuxiIpRK0frRqyOljcR2vKwgWSLw6YIeDcNNA4xybj7Og7NSxr2hA==", + "version": "2.22.13", + "resolved": "https://registry.npmjs.org/hardhat/-/hardhat-2.22.13.tgz", + "integrity": "sha512-psVJX4FSXDpSXwsU8OcKTJN04pQEj9cFBMX5OPko+OFwbIoiOpvRmafa954/UaA1934npTj8sV3gaTSdx9bPbA==", "dev": true, "requires": { "@ethersproject/abi": "^5.1.2", "@metamask/eth-sig-util": "^4.0.0", - "@nomicfoundation/edr": "^0.3.5", + "@nomicfoundation/edr": "^0.6.3", "@nomicfoundation/ethereumjs-common": "4.0.4", "@nomicfoundation/ethereumjs-tx": "5.0.4", "@nomicfoundation/ethereumjs-util": "9.0.4", @@ -13658,7 +13542,7 @@ "ansi-escapes": "^4.3.0", "boxen": "^5.1.2", "chalk": "^2.4.2", - "chokidar": "^3.4.0", + "chokidar": "^4.0.0", "ci-info": "^2.0.0", "debug": "^4.1.1", "enquirer": "^2.3.0", @@ -13671,6 +13555,7 @@ "glob": "7.2.0", "immutable": "^4.0.0-rc.12", "io-ts": "1.10.4", + "json-stream-stringify": "^3.1.4", "keccak": "^3.0.2", "lodash": "^4.17.11", "mnemonist": "^0.38.0", @@ -13679,7 +13564,7 @@ "raw-body": "^2.4.1", "resolve": "1.17.0", "semver": "^6.3.0", - "solc": "0.7.3", + "solc": "0.8.26", "source-map-support": "^0.5.13", "stacktrace-parser": "^0.1.10", "tsort": "0.0.1", @@ -13716,6 +13601,15 @@ } } }, + "chokidar": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.1.tgz", + "integrity": "sha512-n8enUVCED/KVRQlab1hr3MVpcVMvxtZjmEa956u+4YijlmQED223XMSYj2tLuKvr4jcCTzNNMpQDUer72MMmzA==", + "dev": true, + "requires": { + "readdirp": "^4.0.1" + } + }, "color-convert": { "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", @@ -13740,27 +13634,13 @@ "graceful-fs": "^4.1.2", "jsonfile": "^4.0.0", "universalify": "^0.1.0" - }, - "dependencies": { - "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.6" - } - } } }, - "jsonfile": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", - "integrity": "sha512-PKllAqbgLgxHaj8TElYymKCAgrASebJrWpTnEkOaTowt23VKXXN0sUeriJ+eh7y6ufb/CC5ap11pz71/cM0hUw==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.6" - } + "readdirp": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.0.2.tgz", + "integrity": "sha512-yDMz9g+VaZkqBYS/ozoBJwaBhTbZo3UNYQHNRw1D3UFQB8oHB4uS/tAODO+ZLjGWmUbKnIlOWO+aaIiAxrUWHA==", + "dev": true }, "resolve": { "version": "1.17.0", @@ -13771,53 +13651,6 @@ "path-parse": "^1.0.6" } }, - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "solc": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/solc/-/solc-0.7.3.tgz", - "integrity": "sha512-GAsWNAjGzIDg7VxzP6mPjdurby3IkGCjQcM8GFYZT6RyaoUZKmMU6Y7YwG+tFGhv7dwZ8rmR4iwFDrrD99JwqA==", - "dev": true, - "requires": { - "command-exists": "^1.2.8", - "commander": "3.0.2", - "follow-redirects": "^1.12.1", - "fs-extra": "^0.30.0", - "js-sha3": "0.8.0", - "memorystream": "^0.3.1", - "require-from-string": "^2.0.0", - "semver": "^5.5.0", - "tmp": "0.0.33" - }, - "dependencies": { - "fs-extra": { - "version": "0.30.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.30.0.tgz", - "integrity": "sha512-UvSPKyhMn6LEd/WpUaV9C9t3zATuqoqfWc3QdPhPLb58prN9tqYPlPWi8Krxi44loBoUzlobqZ3+8tGpxxSzwA==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^2.1.0", - "klaw": "^1.0.0", - "path-is-absolute": "^1.0.0", - "rimraf": "^2.2.8" - } - }, - "semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "dev": true - } - } - }, "supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", @@ -13884,9 +13717,9 @@ } }, "hardhat-gas-reporter": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/hardhat-gas-reporter/-/hardhat-gas-reporter-1.0.9.tgz", - "integrity": "sha512-INN26G3EW43adGKBNzYWOlI3+rlLnasXTwW79YNnUhXPDa+yHESgt639dJEs37gCjhkbNKcRRJnomXEuMFBXJg==", + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/hardhat-gas-reporter/-/hardhat-gas-reporter-1.0.10.tgz", + "integrity": "sha512-02N4+So/fZrzJ88ci54GqwVA3Zrf0C9duuTyGt0CFRIh/CdNwbnTgkXkRfojOMLBQ+6t+lBIkgbsOtqMvNwikA==", "dev": true, "peer": true, "requires": { @@ -14416,6 +14249,12 @@ "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", "dev": true }, + "json-stream-stringify": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/json-stream-stringify/-/json-stream-stringify-3.1.6.tgz", + "integrity": "sha512-x7fpwxOkbhFCaJDJ8vb1fBY3DdSa4AlITaz+HHILQJzdPMnHEFjxPwVUi1ALIbcIxDE0PNe/0i7frnY8QnBQog==", + "dev": true + }, "json5": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", @@ -14430,7 +14269,6 @@ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", "dev": true, - "peer": true, "requires": { "graceful-fs": "^4.1.6" } @@ -14469,15 +14307,6 @@ "dev": true, "peer": true }, - "klaw": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz", - "integrity": "sha512-TED5xi9gGQjGpNnvRWknrwAB1eL5GciPfVFOt3Vk1OJCVDQbzuSfrF3hkUQKlsgKrG1F+0t5W0m+Fje1jIt8rw==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.9" - } - }, "latest-version": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-7.0.0.tgz", @@ -14618,13 +14447,13 @@ "peer": true }, "micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", "dev": true, "peer": true, "requires": { - "braces": "^3.0.2", + "braces": "^3.0.3", "picomatch": "^2.3.1" } }, @@ -15775,6 +15604,29 @@ } } }, + "solc": { + "version": "0.8.26", + "resolved": "https://registry.npmjs.org/solc/-/solc-0.8.26.tgz", + "integrity": "sha512-yiPQNVf5rBFHwN6SIf3TUUvVAFKcQqmSUFeq+fb6pNRCo0ZCgpYOZDi3BVoezCPIAcKrVYd/qXlBLUP9wVrZ9g==", + "dev": true, + "requires": { + "command-exists": "^1.2.8", + "commander": "^8.1.0", + "follow-redirects": "^1.12.1", + "js-sha3": "0.8.0", + "memorystream": "^0.3.1", + "semver": "^5.5.0", + "tmp": "0.0.33" + }, + "dependencies": { + "semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true + } + } + }, "solhint": { "version": "4.5.2", "resolved": "https://registry.npmjs.org/solhint/-/solhint-4.5.2.tgz", @@ -15863,25 +15715,24 @@ "dev": true }, "solidity-coverage": { - "version": "0.8.5", - "resolved": "https://registry.npmjs.org/solidity-coverage/-/solidity-coverage-0.8.5.tgz", - "integrity": "sha512-6C6N6OV2O8FQA0FWA95FdzVH+L16HU94iFgg5wAFZ29UpLFkgNI/DRR2HotG1bC0F4gAc/OMs2BJI44Q/DYlKQ==", + "version": "0.8.13", + "resolved": "https://registry.npmjs.org/solidity-coverage/-/solidity-coverage-0.8.13.tgz", + "integrity": "sha512-RiBoI+kF94V3Rv0+iwOj3HQVSqNzA9qm/qDP1ZDXK5IX0Cvho1qiz8hAXTsAo6KOIUeP73jfscq0KlLqVxzGWA==", "dev": true, "peer": true, "requires": { "@ethersproject/abi": "^5.0.9", - "@solidity-parser/parser": "^0.16.0", + "@solidity-parser/parser": "^0.18.0", "chalk": "^2.4.2", "death": "^1.1.0", - "detect-port": "^1.3.0", "difflib": "^0.2.4", "fs-extra": "^8.1.0", "ghost-testrpc": "^0.0.2", "global-modules": "^2.0.0", "globby": "^10.0.1", "jsonschema": "^1.2.4", - "lodash": "^4.17.15", - "mocha": "10.2.0", + "lodash": "^4.17.21", + "mocha": "^10.2.0", "node-emoji": "^1.10.0", "pify": "^4.0.1", "recursive-readdir": "^2.2.2", @@ -15892,14 +15743,11 @@ }, "dependencies": { "@solidity-parser/parser": { - "version": "0.16.1", - "resolved": "https://registry.npmjs.org/@solidity-parser/parser/-/parser-0.16.1.tgz", - "integrity": "sha512-PdhRFNhbTtu3x8Axm0uYpqOy/lODYQK+MlYSgqIsq2L8SFYEHJPHNUiOTAJbDGzNjjr1/n9AcIayxafR/fWmYw==", + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/@solidity-parser/parser/-/parser-0.18.0.tgz", + "integrity": "sha512-yfORGUIPgLck41qyN7nbwJRAx17/jAIXCTanHOJZhB6PJ1iAk/84b/xlsVKFSyNyLXIj0dhppoE0+CRws7wlzA==", "dev": true, - "peer": true, - "requires": { - "antlr4ts": "^0.5.0-alpha.4" - } + "peer": true }, "ansi-styles": { "version": "3.2.1", diff --git a/package.json b/package.json index d41e5678..6233e291 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@axelar-network/axelar-gmp-sdk-solidity", - "version": "5.11.0", + "version": "6.0.0", "description": "Solidity GMP SDK and utilities provided by Axelar for cross-chain development", "main": "index.js", "scripts": {