From e206346cb59d72548c1375b7770c509e05fb628f Mon Sep 17 00:00:00 2001 From: Dean Date: Thu, 7 Dec 2023 18:09:43 -0500 Subject: [PATCH] refactor: interchain token service scripts (#124) * refactor: ITS scripts * fix: lint error * fix: verify contract for proxies * feat: bump ITS version * fix: test * fix: default deploy method for ITS * fix: default deploy method for ITS create * feat: remove unused imports * improve scripts * prettier --------- Co-authored-by: Dean Amiel Co-authored-by: Milap Sheth --- .github/workflows/test.yaml | 4 +- evm/deploy-its.js | 109 +++++++++++++--------------------- evm/interchainTokenFactory.js | 100 ++++--------------------------- evm/its.js | 33 ++++++---- evm/verify-contract.js | 23 ++++--- package-lock.json | 23 ++++--- package.json | 2 +- 7 files changed, 97 insertions(+), 197 deletions(-) diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index 70c15a70e..2a7757eb0 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -115,10 +115,10 @@ jobs: run: node evm/deploy-its.js -s "ITS v1.0.0" -f "ITS v1.0.0 Factory" -m create2 -u -y - name: InterchainTokenFactory deploy interchain token on current chain - run: node evm/interchainTokenFactory.js --action deployInterchainToken --name "test" --symbol "TST" --decimals 18 --distributor 0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266 --salt "salt" -y + run: node evm/interchainTokenFactory.js --action deployInterchainToken --name "test" --symbol "TST" --decimals 18 --minter 0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266 --salt "salt" -y - name: InterchainTokenService deploy interchain token on current chain - run: node evm/its.js --action deployInterchainToken --name "test" --symbol "TST" --decimals 18 --distributor 0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266 --destinationChain '' --gasValue 0 --salt "salt" -y + run: node evm/its.js --action deployInterchainToken --name "test" --symbol "TST" --decimals 18 --minter 0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266 --destinationChain '' --gasValue 0 --salt "salt" -y - name: Add gasOptions to local.json run: | diff --git a/evm/deploy-its.js b/evm/deploy-its.js index c4f75efca..eeb427b9e 100644 --- a/evm/deploy-its.js +++ b/evm/deploy-its.js @@ -18,9 +18,9 @@ const { sleep, getBytecodeHash, getGasOptions, + isContract, } = require('./utils'); const { addExtendedOptions } = require('./cli-utils'); -const InterchainTokenService = getContractJSON('InterchainTokenService'); const { Command, Option } = require('commander'); /** @@ -33,12 +33,21 @@ const { Command, Option } = require('commander'); * @param {*} verifyOptions */ -async function deployImplementation(config, wallet, chain, options) { - const { env, salt, factorySalt, deployMethod, skipExisting, verify, yes } = options; +async function deployAll(config, wallet, chain, options) { + const { env, artifactPath, salt, factorySalt, deployMethod, skipExisting, verify, yes } = options; const verifyOptions = verify ? { env, chain: chain.name, only: verify === 'only' } : null; + const provider = getDefaultProvider(chain.rpc); + const InterchainTokenService = getContractJSON('InterchainTokenService', artifactPath); + const contractName = 'InterchainTokenService'; const contracts = chain.contracts; + + // Reset config data if it's a fresh deployment + if (!skipExisting) { + contracts[contractName] = {}; + } + const contractConfig = contracts[contractName] || {}; contractConfig.salt = salt; @@ -79,7 +88,7 @@ async function deployImplementation(config, wallet, chain, options) { return await deployContract( deployMethod, wallet, - getContractJSON('TokenManagerDeployer'), + getContractJSON('TokenManagerDeployer', artifactPath), [], deployOptions, gasOptions, @@ -94,8 +103,8 @@ async function deployImplementation(config, wallet, chain, options) { return await deployContract( deployMethod, wallet, - getContractJSON('InterchainToken'), - [], + getContractJSON('InterchainToken', artifactPath), + [interchainTokenServiceAddress], deployOptions, gasOptions, verifyOptions, @@ -109,7 +118,7 @@ async function deployImplementation(config, wallet, chain, options) { return await deployContract( deployMethod, wallet, - getContractJSON('InterchainTokenDeployer'), + getContractJSON('InterchainTokenDeployer', artifactPath), [contractConfig.interchainToken], deployOptions, gasOptions, @@ -118,13 +127,13 @@ async function deployImplementation(config, wallet, chain, options) { ); }, }, - tokenManagerMintBurn: { - name: 'Token Manager Mint Burn', + tokenManager: { + name: 'Token Manager', async deploy() { return await deployContract( deployMethod, wallet, - getContractJSON('TokenManagerMintBurn'), + getContractJSON('TokenManager', artifactPath), [interchainTokenServiceAddress], deployOptions, gasOptions, @@ -133,44 +142,14 @@ async function deployImplementation(config, wallet, chain, options) { ); }, }, - tokenManagerMintBurnFrom: { - name: 'Token Manager Mint Burn From', + tokenHandler: { + name: 'Token Handler', async deploy() { return await deployContract( deployMethod, wallet, - getContractJSON('TokenManagerMintBurnFrom'), - [interchainTokenServiceAddress], - deployOptions, - gasOptions, - verifyOptions, - chain, - ); - }, - }, - tokenManagerLockUnlock: { - name: 'Token Manager Lock Unlock', - async deploy() { - return await deployContract( - deployMethod, - wallet, - getContractJSON('TokenManagerLockUnlock'), - [interchainTokenServiceAddress], - deployOptions, - gasOptions, - verifyOptions, - chain, - ); - }, - }, - tokenManagerLockUnlockFee: { - name: 'Token Manager Lock Unlock Fee', - async deploy() { - return await deployContract( - deployMethod, - wallet, - getContractJSON('TokenManagerLockUnlockFee'), - [interchainTokenServiceAddress], + getContractJSON('TokenHandler', artifactPath), + [], deployOptions, gasOptions, verifyOptions, @@ -184,7 +163,7 @@ async function deployImplementation(config, wallet, chain, options) { return await deployContract( deployMethod, wallet, - getContractJSON('InterchainTokenService', options.artifactPath), + InterchainTokenService, [ contractConfig.tokenManagerDeployer, contractConfig.interchainTokenDeployer, @@ -192,12 +171,8 @@ async function deployImplementation(config, wallet, chain, options) { contracts.AxelarGasService.address, interchainTokenFactory, chain.id, - [ - contractConfig.tokenManagerMintBurn, - contractConfig.tokenManagerMintBurnFrom, - contractConfig.tokenManagerLockUnlock, - contractConfig.tokenManagerLockUnlockFee, - ], + contractConfig.tokenManager, + contractConfig.tokenHandler, ], deployOptions, gasOptions, @@ -219,7 +194,7 @@ async function deployImplementation(config, wallet, chain, options) { return await deployContract( 'create3', wallet, - getContractJSON('InterchainTokenServiceProxy'), + getContractJSON('InterchainProxy', artifactPath), [contractConfig.implementation, wallet.address, deploymentParams], { salt, deployerContract: contracts.Create3Deployer.address }, gasOptions, @@ -234,7 +209,7 @@ async function deployImplementation(config, wallet, chain, options) { return await deployContract( deployMethod, wallet, - getContractJSON('InterchainTokenFactory'), + getContractJSON('InterchainTokenFactory', artifactPath), [interchainTokenServiceAddress], deployOptions, gasOptions, @@ -249,8 +224,8 @@ async function deployImplementation(config, wallet, chain, options) { return await deployContract( 'create3', wallet, - getContractJSON('InterchainTokenFactoryProxy'), - [contractConfig.interchainTokenFactoryImplementation, wallet.address], + getContractJSON('InterchainProxy', artifactPath), + [contractConfig.interchainTokenFactoryImplementation, wallet.address, '0x'], { salt: factorySalt, deployerContract: contracts.Create3Deployer.address }, gasOptions, verifyOptions, @@ -264,23 +239,21 @@ async function deployImplementation(config, wallet, chain, options) { if (skipExisting && contractConfig[key]) continue; const deployment = deployments[key]; - printInfo(`Deploying ${deployment.name}.`); + printInfo(`Deploying ${deployment.name}`); const contract = await deployment.deploy(); - - if (contract.address === undefined) { - contractConfig[key] = contract; - printInfo(`Deployed ${deployment.name} at ${JSON.stringify(contract)}`); - } else { - contractConfig[key] = contract.address; - printInfo(`Deployed ${deployment.name} at ${contract.address}`); - } + contractConfig[key] = contract.address; + printInfo(`Deployed ${deployment.name} at ${contract.address}`); saveConfig(config, options.env); if (chain.chainId !== 31337) { await sleep(2000); } + + if (!(await isContract(contract.address, provider))) { + throw new Error(`Contract ${deployment.name} at ${contract.address} was not deployed on ${chain.name}`); + } } } @@ -309,11 +282,11 @@ async function deploy(config, chain, options) { throw new Error(`Invalid operator address: ${operatorAddress}`); } - await deployImplementation(config, wallet, chain, options); + await deployAll(config, wallet, chain, options); } async function upgrade(config, chain, options) { - const { salt, privateKey } = options; + const { artifactPath, salt, privateKey } = options; const rpc = chain.rpc; const provider = getDefaultProvider(rpc); @@ -331,10 +304,12 @@ async function upgrade(config, chain, options) { contracts[contractName] = contractConfig; - await deployImplementation(config, wallet, chain, options); + await deployAll(config, wallet, chain, options); printInfo(`Upgrading Interchain Token Service.`); + const InterchainTokenService = getContractJSON('InterchainTokenService', artifactPath); + const gasOptions = await getGasOptions(chain, options, contractName); const contract = new Contract(contractConfig.address, InterchainTokenService.abi, wallet); diff --git a/evm/interchainTokenFactory.js b/evm/interchainTokenFactory.js index a0a297367..8eefbb368 100644 --- a/evm/interchainTokenFactory.js +++ b/evm/interchainTokenFactory.js @@ -1,11 +1,7 @@ 'use strict'; const { ethers } = require('hardhat'); -const { - getDefaultProvider, - utils: { hexZeroPad }, - Contract, -} = ethers; +const { getDefaultProvider, Contract } = ethers; const { Command, Option } = require('commander'); const { printInfo, prompt, mainProcessor, validateParameters, getContractJSON, getGasOptions } = require('./utils'); const { getWallet } = require('./sign-utils'); @@ -13,9 +9,8 @@ const { addExtendedOptions } = require('./cli-utils'); const { getDeploymentSalt, handleTx } = require('./its'); const IInterchainTokenFactory = getContractJSON('IInterchainTokenFactory'); const IInterchainTokenService = getContractJSON('IInterchainTokenService'); -const IERC20 = getContractJSON('IERC20'); -async function processCommand(config, chain, options) { +async function processCommand(_, chain, options) { const { privateKey, address, action, yes } = options; const contracts = chain.contracts; @@ -117,14 +112,14 @@ async function processCommand(config, chain, options) { } case 'deployInterchainToken': { - const { name, symbol, decimals, mintAmount, distributor } = options; + const { name, symbol, decimals, initialSupply, minter } = options; const deploymentSalt = getDeploymentSalt(options); validateParameters({ isNonEmptyString: { name, symbol }, - isValidAddress: { distributor }, - isValidNumber: { decimals, mintAmount }, + isValidAddress: { minter }, + isValidNumber: { decimals, initialSupply }, }); const tx = await interchainTokenFactory.deployInterchainToken( @@ -132,8 +127,8 @@ async function processCommand(config, chain, options) { name, symbol, decimals, - mintAmount, - distributor, + initialSupply, + minter, gasOptions, ); @@ -143,20 +138,20 @@ async function processCommand(config, chain, options) { } case 'deployRemoteInterchainToken': { - const { originalChain, distributor, destinationChain, gasValue } = options; + const { originalChain, minter, destinationChain, gasValue } = options; const deploymentSalt = getDeploymentSalt(options); validateParameters({ isNonEmptyString: { originalChain, destinationChain }, - isValidBytesAddress: { distributor }, + isValidBytesAddress: { minter }, isValidNumber: { gasValue }, }); const tx = await interchainTokenFactory.deployRemoteInterchainToken( originalChain, deploymentSalt, - distributor, + minter, destinationChain, gasValue, gasOptions, @@ -201,73 +196,6 @@ async function processCommand(config, chain, options) { break; } - case 'interchainTransfer': { - const { tokenId, destinationChain, destinationAddress, amount, gasValue } = options; - - const tokenIdBytes32 = hexZeroPad(tokenId.startsWith('0x') ? tokenId : '0x' + tokenId, 32); - - validateParameters({ - isValidTokenId: { tokenId }, - isString: { destinationChain }, - isValidCalldata: { destinationAddress }, - isValidNumber: { amount, gasValue }, - }); - - const tx = await interchainTokenFactory.interchainTransfer( - tokenIdBytes32, - destinationChain, - destinationAddress, - amount, - gasValue, - gasOptions, - ); - - if (destinationChain === '') { - const tokenAddress = await interchainTokenService.interchainTokenAddress(tokenIdBytes32); - const token = new Contract(tokenAddress, IERC20.abi, wallet); - - await handleTx(tx, chain, token, options.action, 'Transfer'); - } else { - await handleTx(tx, chain, interchainTokenFactory, options.action, 'InterchainTransferWithData'); - } - - break; - } - - case 'tokenTransferFrom': { - const { tokenId, amount } = options; - - const tokenIdBytes32 = hexZeroPad(tokenId.startsWith('0x') ? tokenId : '0x' + tokenId, 32); - - validateParameters({ isValidTokenId: { tokenId }, isValidNumber: { amount } }); - - const tokenAddress = await interchainTokenService.interchainTokenAddress(tokenIdBytes32); - const token = new Contract(tokenAddress, IERC20.abi, wallet); - - const tx = await interchainTokenFactory.tokenTransferFrom(tokenIdBytes32, amount, gasOptions); - - await handleTx(tx, chain, token, options.action, 'Transfer'); - - break; - } - - case 'tokenApprove': { - const { tokenId, amount } = options; - - const tokenIdBytes32 = hexZeroPad(tokenId.startsWith('0x') ? tokenId : '0x' + tokenId, 32); - - validateParameters({ isValidTokenId: { tokenId }, isValidNumber: { amount } }); - - const tokenAddress = await interchainTokenService.interchainTokenAddress(tokenIdBytes32); - const token = new Contract(tokenAddress, IERC20.abi, wallet); - - const tx = await interchainTokenFactory.tokenApprove(tokenIdBytes32, amount, gasOptions); - - await handleTx(tx, chain, token, options.action, 'Approval'); - - break; - } - default: { throw new Error(`Unknown action ${action}`); } @@ -298,9 +226,6 @@ if (require.main === module) { 'deployRemoteInterchainToken', 'registerCanonicalInterchainToken', 'deployRemoteCanonicalInterchainToken', - 'interchainTransfer', - 'tokenTransferFrom', - 'tokenApprove', ]) .makeOptionMandatory(true), ); @@ -313,13 +238,12 @@ if (require.main === module) { program.addOption(new Option('--name ', 'token name')); program.addOption(new Option('--symbol ', 'token symbol')); program.addOption(new Option('--decimals ', 'token decimals')); - program.addOption(new Option('--distributor ', 'token distributor')); - program.addOption(new Option('--mintAmount ', 'mint amount').default(0)); + program.addOption(new Option('--minter ', 'token minter')); + program.addOption(new Option('--initialSupply ', 'initial supply').default(0)); program.addOption(new Option('--originalChain ', 'original chain')); program.addOption(new Option('--destinationChain ', 'destination chain')); program.addOption(new Option('--destinationAddress ', 'destination address')); program.addOption(new Option('--gasValue ', 'gas value')); - program.addOption(new Option('--amount ', 'token amount')); program.addOption(new Option('--rawSalt ', 'raw deployment salt').env('RAW_SALT')); program.action((options) => { diff --git a/evm/its.js b/evm/its.js index 68e338ad5..be0089163 100644 --- a/evm/its.js +++ b/evm/its.js @@ -56,7 +56,7 @@ async function handleTx(tx, chain, contract, action, firstEvent, secondEvent) { } } -async function processCommand(config, chain, options) { +async function processCommand(_, chain, options) { const { privateKey, address, action, yes } = options; const contracts = chain.contracts; @@ -123,6 +123,13 @@ async function processCommand(config, chain, options) { const interchainTokenAddress = await interchainTokenService.interchainTokenAddress(tokenIdBytes32); printInfo(`InterchainToken address for tokenId: ${tokenId}`, interchainTokenAddress); + try { + await interchainTokenService.validTokenAddress(tokenIdBytes32); + printInfo(`Token for tokenId: ${tokenId} exists at address:`, interchainTokenAddress); + } catch (error) { + printInfo(`Token for tokenId: ${tokenId} does not yet exist.`); + } + break; } @@ -140,10 +147,8 @@ async function processCommand(config, chain, options) { } case 'tokenManagerImplementation': { - const type = options.type; - - const tokenManagerImplementation = await interchainTokenService.tokenManagerImplementation(tokenManagerImplementations[type]); - printInfo(`${type} TokenManager implementation address`, tokenManagerImplementation); + const tokenManagerImplementation = await interchainTokenService.tokenManager(); + printInfo(`TokenManager implementation address`, tokenManagerImplementation); break; } @@ -207,14 +212,14 @@ async function processCommand(config, chain, options) { } case 'deployInterchainToken': { - const { destinationChain, name, symbol, decimals, distributor, gasValue } = options; + const { destinationChain, name, symbol, decimals, minter, gasValue } = options; const deploymentSalt = getDeploymentSalt(options); validateParameters({ isNonEmptyString: { name, symbol }, isString: { destinationChain }, - isValidBytesAddress: { distributor }, + isValidBytesAddress: { minter }, isValidNumber: { decimals, gasValue }, }); @@ -224,7 +229,7 @@ async function processCommand(config, chain, options) { name, symbol, decimals, - distributor, + minter, gasValue, gasOptions, ); @@ -270,12 +275,12 @@ async function processCommand(config, chain, options) { } case 'interchainTransfer': { - const { destinationChain, destinationAddress, amount, metadata } = options; + const { destinationChain, destinationAddress, amount, metadata, gasValue } = options; validateParameters({ isValidTokenId: { tokenId }, isNonEmptyString: { destinationChain, destinationAddress }, - isValidNumber: { amount }, + isValidNumber: { amount, gasValue }, isValidCalldata: { metadata }, }); @@ -287,6 +292,7 @@ async function processCommand(config, chain, options) { destinationAddress, amount, metadata, + gasValue, gasOptions, ); @@ -296,12 +302,12 @@ async function processCommand(config, chain, options) { } case 'callContractWithInterchainToken': { - const { destinationChain, destinationAddress, amount, data } = options; + const { destinationChain, destinationAddress, amount, data, gasValue } = options; validateParameters({ isValidTokenId: { tokenId }, isNonEmptyString: { destinationChain, destinationAddress }, - isValidNumber: { amount }, + isValidNumber: { amount, gasValue }, isValidCalldata: { data }, }); @@ -313,6 +319,7 @@ async function processCommand(config, chain, options) { destinationAddress, amount, data, + gasValue, gasOptions, ); @@ -494,7 +501,7 @@ if (require.main === module) { program.addOption(new Option('--name ', 'token name')); program.addOption(new Option('--symbol ', 'token symbol')); program.addOption(new Option('--decimals ', 'token decimals')); - program.addOption(new Option('--distributor ', 'token distributor')); + program.addOption(new Option('--minter ', 'token minter')); program.addOption(new Option('--sourceChain ', 'source chain')); program.addOption(new Option('--sourceAddress ', 'source address')); program.addOption(new Option('--payload ', 'payload')); diff --git a/evm/verify-contract.js b/evm/verify-contract.js index 1f66f5013..aefd88367 100644 --- a/evm/verify-contract.js +++ b/evm/verify-contract.js @@ -225,10 +225,8 @@ async function processCommand(config, chain, options) { ); const interchainTokenFactoryImplementation = await interchainTokenFactoryContract.implementation(); - const tokenManagerMintBurn = await interchainTokenService.tokenManagerImplementation(0); - const tokenManagerMintBurnFrom = await interchainTokenService.tokenManagerImplementation(1); - const tokenManagerLockUnlock = await interchainTokenService.tokenManagerImplementation(2); - const tokenManagerLockUnlockFee = await interchainTokenService.tokenManagerImplementation(3); + const tokenManager = await interchainTokenService.tokenManager(); + const tokenHandler = await interchainTokenService.tokenHandler(); const allChains = Object.values(config.chains).map((chain) => chain.id); const trustedAddressesValues = await Promise.all( @@ -243,12 +241,10 @@ async function processCommand(config, chain, options) { ); await verifyContract(env, chain.name, tokenManagerDeployer, [], verifyOptions); - await verifyContract(env, chain.name, interchainToken, [], verifyOptions); + await verifyContract(env, chain.name, interchainToken, [interchainTokenService.address], verifyOptions); await verifyContract(env, chain.name, interchainTokenDeployer, [interchainToken], verifyOptions); - await verifyContract(env, chain.name, tokenManagerMintBurn, [interchainTokenService.address], verifyOptions); - await verifyContract(env, chain.name, tokenManagerMintBurnFrom, [interchainTokenService.address], verifyOptions); - await verifyContract(env, chain.name, tokenManagerLockUnlock, [interchainTokenService.address], verifyOptions); - await verifyContract(env, chain.name, tokenManagerLockUnlockFee, [interchainTokenService.address], verifyOptions); + await verifyContract(env, chain.name, tokenManager, [interchainTokenService.address], verifyOptions); + await verifyContract(env, chain.name, tokenHandler, [], verifyOptions); await verifyContract( env, chain.name, @@ -260,7 +256,8 @@ async function processCommand(config, chain, options) { chain.contracts.AxelarGasService.address, interchainTokenFactory, chain.name, - [tokenManagerMintBurn, tokenManagerMintBurnFrom, tokenManagerLockUnlock, tokenManagerLockUnlockFee], + tokenManager, + tokenHandler, ], verifyOptions, ); @@ -272,17 +269,17 @@ async function processCommand(config, chain, options) { [implementation, chain.contracts.InterchainTokenService.deployer, setupParams], { ...verifyOptions, - contractPath: 'contracts/proxies/InterchainTokenServiceProxy.sol:InterchainTokenServiceProxy', + contractPath: 'contracts/proxies/InterchainProxy.sol:InterchainProxy', }, ); await verifyContract( env, chain.name, interchainTokenFactory, - [interchainTokenFactoryImplementation, chain.contracts.InterchainTokenService.deployer], + [interchainTokenFactoryImplementation, chain.contracts.InterchainTokenService.deployer, '0x'], { ...verifyOptions, - contractPath: 'contracts/proxies/InterchainTokenFactoryProxy.sol:InterchainTokenFactoryProxy', + contractPath: 'contracts/proxies/InterchainProxy.sol:InterchainProxy', }, ); diff --git a/package-lock.json b/package-lock.json index ce8fc97d3..00cacd7b5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,7 +12,7 @@ "@0xpolygonhermez/zkevm-commonjs": "github:0xpolygonhermez/zkevm-commonjs#v1.0.0", "@axelar-network/axelar-cgp-solidity": "6.2.0", "@axelar-network/axelar-gmp-sdk-solidity": "5.6.2", - "@axelar-network/interchain-token-service": "1.0.0-beta.3", + "@axelar-network/interchain-token-service": "1.0.0", "@cosmjs/cosmwasm-stargate": "^0.31.3", "@ledgerhq/hw-app-eth": "6.32.2", "@ledgerhq/hw-transport-node-hid": "^6.27.21", @@ -89,24 +89,21 @@ } }, "node_modules/@axelar-network/interchain-token-service": { - "version": "1.0.0-beta.3", - "resolved": "https://registry.npmjs.org/@axelar-network/interchain-token-service/-/interchain-token-service-1.0.0-beta.3.tgz", - "integrity": "sha512-yoW1sxDg5LB25w9fSgtPcu/8vbOo4MzxlpJvHLnMrHmXAKwDJMaNDt0X1JgME8bH8aiyHh/ciB6ajBnN7oFkgw==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@axelar-network/interchain-token-service/-/interchain-token-service-1.0.0.tgz", + "integrity": "sha512-BK9zaaio9hVsNiIeSJZmdCK7nVfbxtZFjIeT2+GPB6m1yYoIWwGYCzTX7pl/f5P04kSuM02qbra63i1uKphhmA==", "dependencies": { - "@axelar-network/axelar-cgp-solidity": "6.1.2", - "@axelar-network/axelar-gmp-sdk-solidity": "5.6.2" + "@axelar-network/axelar-cgp-solidity": "6.2.0", + "@axelar-network/axelar-gmp-sdk-solidity": "5.6.3" }, "engines": { "node": ">=16" } }, - "node_modules/@axelar-network/interchain-token-service/node_modules/@axelar-network/axelar-cgp-solidity": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/@axelar-network/axelar-cgp-solidity/-/axelar-cgp-solidity-6.1.2.tgz", - "integrity": "sha512-KOv3Z0u/Xg1HsvTFJzpf0LewT4/HW8yBGb5AfVacFRoL/zor5Q1SwBb5SN12CDpxFebeUPC/MdGAddC2ZfNg8Q==", - "dependencies": { - "@axelar-network/axelar-gmp-sdk-solidity": "^5.3.3" - }, + "node_modules/@axelar-network/interchain-token-service/node_modules/@axelar-network/axelar-gmp-sdk-solidity": { + "version": "5.6.3", + "resolved": "https://registry.npmjs.org/@axelar-network/axelar-gmp-sdk-solidity/-/axelar-gmp-sdk-solidity-5.6.3.tgz", + "integrity": "sha512-w6Sp88H0nb0GFJMq73eUuymEcUdfX6evMObwfUVu+lZLA3Y5IyBfwbQftkLUMp8MFR6MStLjiTkMXRmz8xV9yg==", "engines": { "node": ">=16" } diff --git a/package.json b/package.json index 6cc6b9b04..5f3805e70 100644 --- a/package.json +++ b/package.json @@ -25,7 +25,7 @@ "@0xpolygonhermez/zkevm-commonjs": "github:0xpolygonhermez/zkevm-commonjs#v1.0.0", "@axelar-network/axelar-cgp-solidity": "6.2.0", "@axelar-network/axelar-gmp-sdk-solidity": "5.6.2", - "@axelar-network/interchain-token-service": "1.0.0-beta.3", + "@axelar-network/interchain-token-service": "1.0.0", "@cosmjs/cosmwasm-stargate": "^0.31.3", "@ledgerhq/hw-transport-node-hid": "^6.27.21", "@ledgerhq/hw-app-eth": "6.32.2",