From 98da856b7e0793e2f0d7c085add48b4f0da0452d Mon Sep 17 00:00:00 2001 From: npty Date: Thu, 12 Sep 2024 16:53:55 +0700 Subject: [PATCH 01/16] chore: update axelar-cgp-sui to 0.6.2 --- package-lock.json | 9 ++++----- package.json | 2 +- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/package-lock.json b/package-lock.json index 3cfb3c64..659d1a29 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,7 +10,7 @@ "license": "MIT", "dependencies": { "@axelar-network/axelar-cgp-solidity": "6.3.1", - "@axelar-network/axelar-cgp-sui": "^0.6.1", + "@axelar-network/axelar-cgp-sui": "^0.6.2", "@axelar-network/axelar-gmp-sdk-solidity": "5.10.0", "@axelar-network/interchain-token-service": "1.2.4", "@cosmjs/cosmwasm-stargate": "^0.32.1", @@ -144,10 +144,9 @@ } }, "node_modules/@axelar-network/axelar-cgp-sui": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/@axelar-network/axelar-cgp-sui/-/axelar-cgp-sui-0.6.1.tgz", - "integrity": "sha512-rKQXsGTPC7FLz9OaKZw7u4Ch12w949vd7ahbzOvjVGUeWrAusmHz6qF0SKEGpwLdWktWBTeWHixcWMbaJeDsdw==", - "license": "MIT", + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/@axelar-network/axelar-cgp-sui/-/axelar-cgp-sui-0.6.2.tgz", + "integrity": "sha512-RZdJGSxLmdtFL35IQnoQSVcXawQw/DaSb+06zEKjjrZiYH2iNjw+iRmerjbL9D0oOlJ+PQHNKKhVwRal4NWl9w==", "dependencies": { "@cosmjs/cosmwasm-stargate": "^0.32.2", "@mysten/sui": "^1.3.0", diff --git a/package.json b/package.json index 7ad255f0..1af87ee6 100644 --- a/package.json +++ b/package.json @@ -24,7 +24,7 @@ "homepage": "https://github.com/axelarnetwork/axelar-contract-deployments#readme", "dependencies": { "@axelar-network/axelar-cgp-solidity": "6.3.1", - "@axelar-network/axelar-cgp-sui": "^0.6.1", + "@axelar-network/axelar-cgp-sui": "^0.6.2", "@axelar-network/axelar-gmp-sdk-solidity": "5.10.0", "@axelar-network/interchain-token-service": "1.2.4", "@cosmjs/cosmwasm-stargate": "^0.32.1", From 745b861fb398cd9aecf08d018e107c0df81ad12a Mon Sep 17 00:00:00 2001 From: npty Date: Thu, 12 Sep 2024 16:54:09 +0700 Subject: [PATCH 02/16] feat: support deploy Utils contract --- sui/deploy-contract.js | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/sui/deploy-contract.js b/sui/deploy-contract.js index 1890126b..2124270c 100644 --- a/sui/deploy-contract.js +++ b/sui/deploy-contract.js @@ -41,7 +41,7 @@ const { * 2. Ensure the corresponding folder exists in the specified path * */ -const PACKAGE_DIRS = ['gas_service', 'example', 'axelar_gateway', 'operators', 'abi', 'governance', 'its', 'squid']; +const PACKAGE_DIRS = ['utils', 'gas_service', 'example', 'axelar_gateway', 'operators', 'abi', 'governance', 'its', 'squid']; /** * Package Mapping Object for Command Options and Post-Deployment Functions @@ -56,6 +56,7 @@ const PACKAGE_CONFIGS = { Governance: () => [], ITS: () => [], Squid: () => [], + Utils: () => [], }, postDeployFunctions: { AxelarGateway: postDeployAxelarGateway, @@ -66,6 +67,7 @@ const PACKAGE_CONFIGS = { Governance: {}, ITS: postDeployIts, Squid: postDeploySquid, + Utils: postDeployUtils, }, }; @@ -232,6 +234,14 @@ async function postDeploySquid(published, keypair, client, config, chain, option await broadcast(client, keypair, tx, 'Registered Transaction'); } +async function postDeployUtils(published, keypair, client, config, chain, options) { + const { packageId, publishTxn } = published; + //const { operator } = options; + // + //const [operatorObjectId] = getObjectIdsByObjectTypes(publishTxn, [`${packageId}::utils::Operator`]); + //chain.contracts.Utils.objects = { Operator: operatorObjectId }; +} + async function deploy(keypair, client, supportedContract, config, chain, options) { const { packageDir, packageName } = supportedContract; From e29993ad2437ea9eae67e106a0e54217f8182fdd Mon Sep 17 00:00:00 2001 From: npty Date: Thu, 12 Sep 2024 16:58:39 +0700 Subject: [PATCH 03/16] chore: add deploy utils command in test-sui workflow --- .github/workflows/test-sui.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/test-sui.yaml b/.github/workflows/test-sui.yaml index 31cd0fa2..e097cb51 100644 --- a/.github/workflows/test-sui.yaml +++ b/.github/workflows/test-sui.yaml @@ -107,6 +107,9 @@ jobs: ###### Command: Deploy Contract ###### + - name: Deploy Utils + run: node sui/deploy-contract deploy Utils + - name: Deploy AxelarGateway run: node sui/deploy-contract deploy AxelarGateway --signers wallet From b6158c7e65c5cdf0c5d8fdcecc939bb045898def Mon Sep 17 00:00:00 2001 From: npty Date: Thu, 12 Sep 2024 17:02:29 +0700 Subject: [PATCH 04/16] chore: remove postDeployUtils --- sui/deploy-contract.js | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/sui/deploy-contract.js b/sui/deploy-contract.js index 2124270c..819ba52c 100644 --- a/sui/deploy-contract.js +++ b/sui/deploy-contract.js @@ -67,7 +67,7 @@ const PACKAGE_CONFIGS = { Governance: {}, ITS: postDeployIts, Squid: postDeploySquid, - Utils: postDeployUtils, + Utils: {}, }, }; @@ -234,14 +234,6 @@ async function postDeploySquid(published, keypair, client, config, chain, option await broadcast(client, keypair, tx, 'Registered Transaction'); } -async function postDeployUtils(published, keypair, client, config, chain, options) { - const { packageId, publishTxn } = published; - //const { operator } = options; - // - //const [operatorObjectId] = getObjectIdsByObjectTypes(publishTxn, [`${packageId}::utils::Operator`]); - //chain.contracts.Utils.objects = { Operator: operatorObjectId }; -} - async function deploy(keypair, client, supportedContract, config, chain, options) { const { packageDir, packageName } = supportedContract; From f01a0839f5d9908ed656ccbf86da1d5d857b8396 Mon Sep 17 00:00:00 2001 From: npty Date: Tue, 17 Sep 2024 13:36:15 +0700 Subject: [PATCH 05/16] chore: fix wrong domain separator variable --- common/utils.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common/utils.js b/common/utils.js index 322e93f6..0810a83a 100644 --- a/common/utils.js +++ b/common/utils.js @@ -400,7 +400,7 @@ async function getDomainSeparator(config, chain, options) { } printInfo(`Retrieving domain separator for ${chain.name} from Axelar network`); - const domainSeparator = hexlify((await getContractConfig(config, chain.axelarId)).domain_separator); + const domainSeparator = hexlify((await getContractConfig(config, chain.axelarId)).domainSeparator); if (domainSeparator !== expectedDomainSeparator) { throw new Error(`unexpected domain separator (want ${expectedDomainSeparator}, got ${domainSeparator})`); From 8349d19032c75a1fc93ce0e197ee6864bc1e30aa Mon Sep 17 00:00:00 2001 From: npty Date: Tue, 17 Sep 2024 13:36:28 +0700 Subject: [PATCH 06/16] chore: fix invalid function --- sui/deploy-contract.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sui/deploy-contract.js b/sui/deploy-contract.js index 819ba52c..a72c486b 100644 --- a/sui/deploy-contract.js +++ b/sui/deploy-contract.js @@ -67,7 +67,7 @@ const PACKAGE_CONFIGS = { Governance: {}, ITS: postDeployIts, Squid: postDeploySquid, - Utils: {}, + Utils: () => undefined, }, }; From 7c9ba568ff3fcd2b7fe56dffb05b0377393e3f7a Mon Sep 17 00:00:00 2001 From: npty Date: Tue, 17 Sep 2024 13:39:23 +0700 Subject: [PATCH 07/16] chore: bump to axelar-cgp-sui 0.6.3 --- package-lock.json | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index 659d1a29..087d6d0f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,7 +10,7 @@ "license": "MIT", "dependencies": { "@axelar-network/axelar-cgp-solidity": "6.3.1", - "@axelar-network/axelar-cgp-sui": "^0.6.2", + "@axelar-network/axelar-cgp-sui": "^0.6.3", "@axelar-network/axelar-gmp-sdk-solidity": "5.10.0", "@axelar-network/interchain-token-service": "1.2.4", "@cosmjs/cosmwasm-stargate": "^0.32.1", @@ -144,9 +144,9 @@ } }, "node_modules/@axelar-network/axelar-cgp-sui": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/@axelar-network/axelar-cgp-sui/-/axelar-cgp-sui-0.6.2.tgz", - "integrity": "sha512-RZdJGSxLmdtFL35IQnoQSVcXawQw/DaSb+06zEKjjrZiYH2iNjw+iRmerjbL9D0oOlJ+PQHNKKhVwRal4NWl9w==", + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/@axelar-network/axelar-cgp-sui/-/axelar-cgp-sui-0.6.3.tgz", + "integrity": "sha512-0oL5X+cR443dEXoTY8pEbFH1S9Ivbx5Qjh2Wc8EOJPK4nJOyJ0jiKl/evZfmXRrU8KCRy78bhCLnUlaa1tEUng==", "dependencies": { "@cosmjs/cosmwasm-stargate": "^0.32.2", "@mysten/sui": "^1.3.0", diff --git a/package.json b/package.json index 1af87ee6..a5c291a2 100644 --- a/package.json +++ b/package.json @@ -24,7 +24,7 @@ "homepage": "https://github.com/axelarnetwork/axelar-contract-deployments#readme", "dependencies": { "@axelar-network/axelar-cgp-solidity": "6.3.1", - "@axelar-network/axelar-cgp-sui": "^0.6.2", + "@axelar-network/axelar-cgp-sui": "^0.6.3", "@axelar-network/axelar-gmp-sdk-solidity": "5.10.0", "@axelar-network/interchain-token-service": "1.2.4", "@cosmjs/cosmwasm-stargate": "^0.32.1", From 1e1d1babeea0f76b18b8244a0925463dafad16ea Mon Sep 17 00:00:00 2001 From: npty Date: Tue, 17 Sep 2024 19:39:26 +0700 Subject: [PATCH 08/16] chore: check if the post deployment fn is defined --- sui/deploy-contract.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/sui/deploy-contract.js b/sui/deploy-contract.js index a72c486b..2bdd64a5 100644 --- a/sui/deploy-contract.js +++ b/sui/deploy-contract.js @@ -63,11 +63,8 @@ const PACKAGE_CONFIGS = { GasService: postDeployGasService, Example: postDeployExample, Operators: postDeployOperators, - Abi: {}, - Governance: {}, ITS: postDeployIts, Squid: postDeploySquid, - Utils: () => undefined, }, }; @@ -253,7 +250,10 @@ async function deploy(keypair, client, supportedContract, config, chain, options // Execute post-deployment function const executePostDeploymentFn = PACKAGE_CONFIGS.postDeployFunctions[packageName]; - await executePostDeploymentFn(published, keypair, client, config, chain, options); + + if (executePostDeploymentFn) { + await executePostDeploymentFn(published, keypair, client, config, chain, options); + } printInfo(`${packageName} Configuration Updated`, JSON.stringify(chain.contracts[packageName], null, 2)); } From 26ebdc67f6a2c832f358acd2e2986579d0c94d9f Mon Sep 17 00:00:00 2001 From: npty Date: Wed, 18 Sep 2024 15:08:23 +0700 Subject: [PATCH 09/16] fix: move path --- .github/workflows/test-sui.yaml | 2 +- sui/deploy-contract.js | 6 ++++-- sui/utils/upgrade-utils.js | 4 ++-- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/.github/workflows/test-sui.yaml b/.github/workflows/test-sui.yaml index e097cb51..41da7465 100644 --- a/.github/workflows/test-sui.yaml +++ b/.github/workflows/test-sui.yaml @@ -207,7 +207,7 @@ jobs: - name: Generate Unsigned Tx File run: | - node sui/deploy-contract.js upgrade AxelarGateway any_upgrade --offline --txFilePath ./tx-upgrade.json --sender $MULTISIG_ADDRESS + node sui/deploy-contract.js upgrade AxelarGateway any_upgrade --offline --txFilePath ./tx-upgrade.json --sender $MULTISIG_ADDRESS --packageDependencies Utils - name: Sign Tx File with Multisig Signer run: | diff --git a/sui/deploy-contract.js b/sui/deploy-contract.js index 2bdd64a5..ce67cae0 100644 --- a/sui/deploy-contract.js +++ b/sui/deploy-contract.js @@ -271,16 +271,17 @@ async function upgrade(keypair, client, supportedPackage, policy, config, chain, const contractConfig = contractsConfig?.[packageName]; validateParameters({ isNonEmptyString: { packageName } }); + const moveDir = `${__dirname}/move`; if (packageDependencies) { for (const dependencies of packageDependencies) { const packageId = contractsConfig[dependencies]?.address; - updateMoveToml(dependencies, packageId); + updateMoveToml(dependencies.toLowerCase(), packageId, moveDir); } } const builder = new TxBuilder(client); - await upgradePackage(client, keypair, supportedPackage, contractConfig, builder, options); + await upgradePackage(client, keypair, supportedPackage, contractConfig, builder, moveDir, options); } async function mainProcessor(args, options, processor) { @@ -374,6 +375,7 @@ if (require.main === module) { .addOption(new Option('--sender ', 'transaction sender')) .addOption(new Option('--digest ', 'digest hash for upgrade')) .addOption(new Option('--offline', 'store tx block for sign')) + .addOption(new Option('--packageDependencies [packageDependencies...]', 'package dependencies')) .addOption(new Option('--txFilePath ', 'unsigned transaction will be stored')) .action((policy, options) => { mainProcessor([supportedPackage, policy], options, upgrade); diff --git a/sui/utils/upgrade-utils.js b/sui/utils/upgrade-utils.js index ee5f3606..ddd6d90f 100644 --- a/sui/utils/upgrade-utils.js +++ b/sui/utils/upgrade-utils.js @@ -20,9 +20,9 @@ function getUpgradePolicyId(policy) { } } -async function upgradePackage(client, keypair, packageToUpgrade, contractConfig, builder, options) { +async function upgradePackage(client, keypair, packageToUpgrade, contractConfig, builder, moveDir, options) { const { packageDir, packageName } = packageToUpgrade; - const { modules, dependencies, digest } = await builder.getContractBuild(packageDir); + const { modules, dependencies, digest } = await builder.getContractBuild(packageDir, moveDir); const { offline } = options; const sender = options.sender || keypair.toSuiAddress(); const upgradeCap = contractConfig.objects?.UpgradeCap; From 75ace71f6c338f100f9c06889052be13c2ba5d4a Mon Sep 17 00:00:00 2001 From: npty Date: Wed, 18 Sep 2024 15:12:04 +0700 Subject: [PATCH 10/16] chore: update README --- sui/README.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/sui/README.md b/sui/README.md index ef5f4a74..399b648e 100644 --- a/sui/README.md +++ b/sui/README.md @@ -53,6 +53,7 @@ node sui/faucet.js Deploy the gateway package: +> Before deploying the gateway package, make sure to deploy the Utils package. - By querying the signer set from the Amplifier contract (this only works if Amplifier contracts have been setup): ```bash @@ -91,6 +92,12 @@ policy should be one of the following: Provide `--txFilePath` with `--offline` to generate tx data file for offline signing. +Deploy the Utils package: + +```bash +node sui/deploy-contract.js deploy Utils +``` + Deploy the Gas Service package: ```bash From b9a6e6a1e6c7d243f887f33a7f1a7b24c318fe40 Mon Sep 17 00:00:00 2001 From: npty Date: Wed, 18 Sep 2024 16:31:56 +0700 Subject: [PATCH 11/16] chore: revert domainSeparator --- common/utils.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common/utils.js b/common/utils.js index 0810a83a..322e93f6 100644 --- a/common/utils.js +++ b/common/utils.js @@ -400,7 +400,7 @@ async function getDomainSeparator(config, chain, options) { } printInfo(`Retrieving domain separator for ${chain.name} from Axelar network`); - const domainSeparator = hexlify((await getContractConfig(config, chain.axelarId)).domainSeparator); + const domainSeparator = hexlify((await getContractConfig(config, chain.axelarId)).domain_separator); if (domainSeparator !== expectedDomainSeparator) { throw new Error(`unexpected domain separator (want ${expectedDomainSeparator}, got ${domainSeparator})`); From bbc747821abeedcf76d94015bcd130498fe04a5e Mon Sep 17 00:00:00 2001 From: npty Date: Wed, 18 Sep 2024 16:32:48 +0700 Subject: [PATCH 12/16] chore: add command to deploy utils page before gateway --- sui/README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sui/README.md b/sui/README.md index 399b648e..64faeac5 100644 --- a/sui/README.md +++ b/sui/README.md @@ -53,7 +53,8 @@ node sui/faucet.js Deploy the gateway package: -> Before deploying the gateway package, make sure to deploy the Utils package. +> Run `node sui/deploy-contract.js deploy Utils` before deploying the gateway package. + - By querying the signer set from the Amplifier contract (this only works if Amplifier contracts have been setup): ```bash From 57839b280aff4670996f2ac95218b5970f1d5e1e Mon Sep 17 00:00:00 2001 From: npty Date: Wed, 18 Sep 2024 16:35:35 +0700 Subject: [PATCH 13/16] chore: only add options if exists --- sui/deploy-contract.js | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/sui/deploy-contract.js b/sui/deploy-contract.js index ce67cae0..aa53a067 100644 --- a/sui/deploy-contract.js +++ b/sui/deploy-contract.js @@ -49,14 +49,6 @@ const PACKAGE_DIRS = ['utils', 'gas_service', 'example', 'axelar_gateway', 'oper const PACKAGE_CONFIGS = { cmdOptions: { AxelarGateway: () => GATEWAY_CMD_OPTIONS, - GasService: () => [], - Example: () => [], - Operators: () => [], - Abi: () => [], - Governance: () => [], - ITS: () => [], - Squid: () => [], - Utils: () => [], }, postDeployFunctions: { AxelarGateway: postDeployAxelarGateway, @@ -334,10 +326,13 @@ const addDeployOptions = (program) => { // Get the package name from the program name const packageName = program.name(); // Find the corresponding options for the package - const options = PACKAGE_CONFIGS.cmdOptions[packageName](); + const cmdOptions = PACKAGE_CONFIGS.cmdOptions[packageName]; - // Add the options to the program - options.forEach((option) => program.addOption(option)); + if (cmdOptions) { + const options = cmdOptions(); + // Add the options to the program + options.forEach((option) => program.addOption(option)); + } // Add the base deploy options to the program DEPLOY_CMD_OPTIONS.forEach((option) => program.addOption(option)); From 306bb2f0d0a99f08d2974d3400c85c0244b63b9a Mon Sep 17 00:00:00 2001 From: npty Date: Wed, 18 Sep 2024 19:49:24 +0700 Subject: [PATCH 14/16] chore: remove packageDependencies handler on package upgrade --- sui/deploy-contract.js | 12 +----------- sui/utils/upgrade-utils.js | 4 ++-- sui/utils/utils.js | 10 +++++----- 3 files changed, 8 insertions(+), 18 deletions(-) diff --git a/sui/deploy-contract.js b/sui/deploy-contract.js index aa53a067..c688d127 100644 --- a/sui/deploy-contract.js +++ b/sui/deploy-contract.js @@ -251,7 +251,6 @@ async function deploy(keypair, client, supportedContract, config, chain, options } async function upgrade(keypair, client, supportedPackage, policy, config, chain, options) { - const { packageDependencies } = options; const { packageName } = supportedPackage; options.policy = policy; @@ -263,17 +262,9 @@ async function upgrade(keypair, client, supportedPackage, policy, config, chain, const contractConfig = contractsConfig?.[packageName]; validateParameters({ isNonEmptyString: { packageName } }); - const moveDir = `${__dirname}/move`; - - if (packageDependencies) { - for (const dependencies of packageDependencies) { - const packageId = contractsConfig[dependencies]?.address; - updateMoveToml(dependencies.toLowerCase(), packageId, moveDir); - } - } const builder = new TxBuilder(client); - await upgradePackage(client, keypair, supportedPackage, contractConfig, builder, moveDir, options); + await upgradePackage(client, keypair, supportedPackage, contractConfig, builder, options); } async function mainProcessor(args, options, processor) { @@ -370,7 +361,6 @@ if (require.main === module) { .addOption(new Option('--sender ', 'transaction sender')) .addOption(new Option('--digest ', 'digest hash for upgrade')) .addOption(new Option('--offline', 'store tx block for sign')) - .addOption(new Option('--packageDependencies [packageDependencies...]', 'package dependencies')) .addOption(new Option('--txFilePath ', 'unsigned transaction will be stored')) .action((policy, options) => { mainProcessor([supportedPackage, policy], options, upgrade); diff --git a/sui/utils/upgrade-utils.js b/sui/utils/upgrade-utils.js index ddd6d90f..de7f9c2f 100644 --- a/sui/utils/upgrade-utils.js +++ b/sui/utils/upgrade-utils.js @@ -1,7 +1,7 @@ const { bcs } = require('@mysten/bcs'); const { fromB64 } = require('@mysten/bcs'); const { printInfo, validateParameters } = require('../../common/utils'); -const { getObjectIdsByObjectTypes, suiPackageAddress } = require('./utils'); +const { getObjectIdsByObjectTypes, suiPackageAddress, moveDir } = require('./utils'); const UPGRADE_POLICIES = { code_upgrade: 'only_additive_upgrades', dependency_upgrade: 'only_dep_upgrades', @@ -20,7 +20,7 @@ function getUpgradePolicyId(policy) { } } -async function upgradePackage(client, keypair, packageToUpgrade, contractConfig, builder, moveDir, options) { +async function upgradePackage(client, keypair, packageToUpgrade, contractConfig, builder, options) { const { packageDir, packageName } = packageToUpgrade; const { modules, dependencies, digest } = await builder.getContractBuild(packageDir, moveDir); const { offline } = options; diff --git a/sui/utils/utils.js b/sui/utils/utils.js index eb90aab3..0fcc8993 100644 --- a/sui/utils/utils.js +++ b/sui/utils/utils.js @@ -23,6 +23,7 @@ const { const suiPackageAddress = '0x2'; const suiClockAddress = '0x6'; const suiCoinId = '0x2::sui::SUI'; +const moveDir = `${__dirname}/../move`; const getAmplifierSigners = async (config, chain) => { const client = await CosmWasmClient.connect(config.axelar.rpc); @@ -60,17 +61,15 @@ const getBcsBytesByObjectId = async (client, objectId) => { }; const deployPackage = async (packageName, client, keypair, options = {}) => { - const compileDir = `${__dirname}/../move`; - - copyMovePackage(packageName, null, compileDir); + copyMovePackage(packageName, null, moveDir); const builder = new TxBuilder(client); - await builder.publishPackageAndTransferCap(packageName, options.owner || keypair.toSuiAddress(), compileDir); + await builder.publishPackageAndTransferCap(packageName, options.owner || keypair.toSuiAddress(), moveDir); const publishTxn = await builder.signAndExecute(keypair); const packageId = (publishTxn.objectChanges?.find((a) => a.type === 'published') ?? []).packageId; - updateMoveToml(packageName, packageId, compileDir); + updateMoveToml(packageName, packageId, moveDir); return { packageId, publishTxn }; }; @@ -249,4 +248,5 @@ module.exports = { getSquidChannelId, getSigners, getBagContentId, + moveDir, }; From 5f022f28836f9424d18aa5a1a78b0fa38e67ec26 Mon Sep 17 00:00:00 2001 From: npty Date: Wed, 18 Sep 2024 19:56:51 +0700 Subject: [PATCH 15/16] chore: add TODO --- sui/deploy-contract.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/sui/deploy-contract.js b/sui/deploy-contract.js index c688d127..95b31c7c 100644 --- a/sui/deploy-contract.js +++ b/sui/deploy-contract.js @@ -1,5 +1,5 @@ const { Command, Option } = require('commander'); -const { updateMoveToml, TxBuilder, bcsStructs } = require('@axelar-network/axelar-cgp-sui'); +const { TxBuilder, bcsStructs } = require('@axelar-network/axelar-cgp-sui'); const { ethers } = require('hardhat'); const { toB64 } = require('@mysten/sui/utils'); const { bcs } = require('@mysten/sui/bcs'); @@ -263,6 +263,8 @@ async function upgrade(keypair, client, supportedPackage, policy, config, chain, validateParameters({ isNonEmptyString: { packageName } }); + // TODO: Synchronize dependencies with `sui/move` folder and update `published-at` field if necessary + const builder = new TxBuilder(client); await upgradePackage(client, keypair, supportedPackage, contractConfig, builder, options); } From 182d3945de1cb886e375a1f168a8d0ed5ebf6d29 Mon Sep 17 00:00:00 2001 From: npty Date: Thu, 19 Sep 2024 12:26:27 +0700 Subject: [PATCH 16/16] chore: remove packageDependencies option --- .github/workflows/test-sui.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test-sui.yaml b/.github/workflows/test-sui.yaml index 41da7465..e097cb51 100644 --- a/.github/workflows/test-sui.yaml +++ b/.github/workflows/test-sui.yaml @@ -207,7 +207,7 @@ jobs: - name: Generate Unsigned Tx File run: | - node sui/deploy-contract.js upgrade AxelarGateway any_upgrade --offline --txFilePath ./tx-upgrade.json --sender $MULTISIG_ADDRESS --packageDependencies Utils + node sui/deploy-contract.js upgrade AxelarGateway any_upgrade --offline --txFilePath ./tx-upgrade.json --sender $MULTISIG_ADDRESS - name: Sign Tx File with Multisig Signer run: |