diff --git a/.changeset/afraid-eels-appear.md b/.changeset/afraid-eels-appear.md new file mode 100644 index 00000000000..7d708918817 --- /dev/null +++ b/.changeset/afraid-eels-appear.md @@ -0,0 +1,5 @@ +--- +"chainlink": patch +--- + +#added add an e2e test for managed token pool for Sui diff --git a/.github/integration-in-memory-tests.yml b/.github/integration-in-memory-tests.yml index 48192073829..8d16a2a158f 100644 --- a/.github/integration-in-memory-tests.yml +++ b/.github/integration-in-memory-tests.yml @@ -481,7 +481,7 @@ runner-test-matrix: - id: smoke/ccip/ccip_aptos_messaging_test.go:Test_CCIP_Messaging_EVM2Aptos path: integration-tests/smoke/ccip/ccip_aptos_messaging_test.go test_env_type: in-memory - runs_on: ubuntu-latest + runs_on_self_hosted: runs-on/cpu=8/ram=32/family=m6i+m5.*/spot=false/image=ubuntu24-full-x64/extras=s3-cache+tmpfs triggers: - PR Integration CCIP Tests - Nightly Integration CCIP Tests @@ -493,7 +493,7 @@ runner-test-matrix: - id: smoke/ccip/ccip_aptos_messaging_test.go:Test_CCIP_Messaging_Aptos2EVM path: integration-tests/smoke/ccip/ccip_aptos_messaging_test.go test_env_type: in-memory - runs_on: ubuntu-latest + runs_on_self_hosted: runs-on/cpu=8/ram=32/family=m6i+m5.*/spot=false/image=ubuntu24-full-x64/extras=s3-cache+tmpfs triggers: - PR Integration CCIP Tests - Nightly Integration CCIP Tests @@ -505,7 +505,7 @@ runner-test-matrix: - id: smoke/ccip/ccip_aptos_token_transfer_test.go:Test_CCIP_TokenTransfer_Aptos2EVM path: integration-tests/smoke/ccip/ccip_aptos_token_transfer_test.go test_env_type: in-memory - runs_on: ubuntu-latest + runs_on_self_hosted: runs-on/cpu=8/ram=32/family=m6i+m5.*/spot=false/image=ubuntu24-full-x64/extras=s3-cache+tmpfs triggers: - PR Integration CCIP Tests - Nightly Integration CCIP Tests @@ -517,7 +517,7 @@ runner-test-matrix: - id: smoke/ccip/ccip_aptos_token_transfer_test.go:Test_CCIP_TokenTransfer_EVM2Aptos path: integration-tests/smoke/ccip/ccip_aptos_token_transfer_test.go test_env_type: in-memory - runs_on: ubuntu-latest + runs_on_self_hosted: runs-on/cpu=8/ram=32/family=m6i+m5.*/spot=false/image=ubuntu24-full-x64/extras=s3-cache+tmpfs triggers: - PR Integration CCIP Tests - Nightly Integration CCIP Tests @@ -529,7 +529,7 @@ runner-test-matrix: - id: smoke/ccip/ccip_aptos_token_transfer_test.go:Test_CCIP_TokenTransfer_BnM_Aptos2EVM path: integration-tests/smoke/ccip/ccip_aptos_token_transfer_test.go test_env_type: in-memory - runs_on: ubuntu-latest + runs_on_self_hosted: runs-on/cpu=8/ram=32/family=m6i+m5.*/spot=false/image=ubuntu24-full-x64/extras=s3-cache+tmpfs triggers: - PR Integration CCIP Tests - Nightly Integration CCIP Tests @@ -541,7 +541,7 @@ runner-test-matrix: - id: smoke/ccip/ccip_aptos_token_transfer_test.go:Test_CCIP_TokenTransfer_BnM_EVM2Aptos path: integration-tests/smoke/ccip/ccip_aptos_token_transfer_test.go test_env_type: in-memory - runs_on: ubuntu-latest + runs_on_self_hosted: runs-on/cpu=8/ram=32/family=m6i+m5.*/spot=false/image=ubuntu24-full-x64/extras=s3-cache+tmpfs triggers: - PR Integration CCIP Tests - Nightly Integration CCIP Tests @@ -553,7 +553,7 @@ runner-test-matrix: - id: smoke/ccip/ccip_aptos_token_transfer_test.go:Test_CCIP_TokenTransfer_LnR_Aptos2EVM path: integration-tests/smoke/ccip/ccip_aptos_token_transfer_test.go test_env_type: in-memory - runs_on: ubuntu-latest + runs_on_self_hosted: runs-on/cpu=8/ram=32/family=m6i+m5.*/spot=false/image=ubuntu24-full-x64/extras=s3-cache+tmpfs triggers: - PR Integration CCIP Tests - Nightly Integration CCIP Tests @@ -565,7 +565,7 @@ runner-test-matrix: - id: smoke/ccip/ccip_aptos_token_transfer_test.go:Test_CCIP_TokenTransfer_LnR_EVM2Aptos path: integration-tests/smoke/ccip/ccip_aptos_token_transfer_test.go test_env_type: in-memory - runs_on: ubuntu-latest + runs_on_self_hosted: runs-on/cpu=8/ram=32/family=m6i+m5.*/spot=false/image=ubuntu24-full-x64/extras=s3-cache+tmpfs triggers: - PR Integration CCIP Tests - Nightly Integration CCIP Tests @@ -577,7 +577,7 @@ runner-test-matrix: - id: smoke/ccip/ccip_aptos_token_transfer_test.go:Test_CCIP_TokenTransfer_LnR_without_TransferRef_EVM2Aptos path: integration-tests/smoke/ccip/ccip_aptos_token_transfer_test.go test_env_type: in-memory - runs_on: ubuntu-latest + runs_on_self_hosted: runs-on/cpu=8/ram=32/family=m6i+m5.*/spot=false/image=ubuntu24-full-x64/extras=s3-cache+tmpfs triggers: - PR Integration CCIP Tests - Nightly Integration CCIP Tests @@ -589,7 +589,7 @@ runner-test-matrix: - id: smoke/ccip/ccip_aptos_token_transfer_test.go:Test_CCIP_TokenTransfer_LnR_without_TransferRef_Aptos2EVM path: integration-tests/smoke/ccip/ccip_aptos_token_transfer_test.go test_env_type: in-memory - runs_on: ubuntu-latest + runs_on_self_hosted: runs-on/cpu=8/ram=32/family=m6i+m5.*/spot=false/image=ubuntu24-full-x64/extras=s3-cache+tmpfs triggers: - PR Integration CCIP Tests - Nightly Integration CCIP Tests @@ -601,7 +601,7 @@ runner-test-matrix: - id: smoke/ccip/ccip_aptos_msghasher_test.go:* path: integration-tests/smoke/ccip/ccip_aptos_msghasher_test.go test_env_type: in-memory - runs_on: ubuntu-latest + runs_on_self_hosted: runs-on/cpu=8/ram=32/family=m6i+m5.*/spot=false/image=ubuntu24-full-x64/extras=s3-cache+tmpfs triggers: - PR Integration CCIP Tests - Nightly Integration CCIP Tests @@ -613,7 +613,7 @@ runner-test-matrix: - id: smoke/ccip/ccip_aptos_regulated_token_transfer_test.go:Test_CCIP_RegulatedTokenTransfer_EVM2Aptos path: integration-tests/smoke/ccip/ccip_aptos_regulated_token_transfer_test.go test_env_type: in-memory - runs_on: ubuntu-latest + runs_on_self_hosted: runs-on/cpu=8/ram=32/family=m6i+m5.*/spot=false/image=ubuntu24-full-x64/extras=s3-cache+tmpfs triggers: - PR Integration CCIP Tests - Nightly Integration CCIP Tests @@ -625,7 +625,7 @@ runner-test-matrix: - id: smoke/ccip/ccip_aptos_regulated_token_transfer_test.go:Test_CCIP_RegulatedTokenTransfer_Aptos2EVM path: integration-tests/smoke/ccip/ccip_aptos_regulated_token_transfer_test.go test_env_type: in-memory - runs_on: ubuntu-latest + runs_on_self_hosted: runs-on/cpu=8/ram=32/family=m6i+m5.*/spot=false/image=ubuntu24-full-x64/extras=s3-cache+tmpfs triggers: - PR Integration CCIP Tests - Nightly Integration CCIP Tests @@ -637,7 +637,7 @@ runner-test-matrix: - id: smoke/ccip/ccip_aptos_token_transfer_test.go:Test_CCIP_TokenTransfer_BnM_Aptos2EVM path: integration-tests/smoke/ccip/ccip_aptos_token_transfer_test.go test_env_type: in-memory - runs_on: ubuntu-latest + runs_on_self_hosted: runs-on/cpu=8/ram=32/family=m6i+m5.*/spot=false/image=ubuntu24-full-x64/extras=s3-cache+tmpfs triggers: - PR Integration CCIP Tests - Nightly Integration CCIP Tests @@ -649,7 +649,7 @@ runner-test-matrix: - id: smoke/ccip/ccip_aptos_token_transfer_test.go:Test_CCIP_TokenTransfer_BnM_EVM2Aptos path: integration-tests/smoke/ccip/ccip_aptos_token_transfer_test.go test_env_type: in-memory - runs_on: ubuntu-latest + runs_on_self_hosted: runs-on/cpu=8/ram=32/family=m6i+m5.*/spot=false/image=ubuntu24-full-x64/extras=s3-cache+tmpfs triggers: - PR Integration CCIP Tests - Nightly Integration CCIP Tests @@ -661,7 +661,7 @@ runner-test-matrix: - id: smoke/ccip/ccip_aptos_token_transfer_test.go:Test_CCIP_TokenTransfer_LnR_Aptos2EVM path: integration-tests/smoke/ccip/ccip_aptos_token_transfer_test.go test_env_type: in-memory - runs_on: ubuntu-latest + runs_on_self_hosted: runs-on/cpu=8/ram=32/family=m6i+m5.*/spot=false/image=ubuntu24-full-x64/extras=s3-cache+tmpfs triggers: - PR Integration CCIP Tests - Nightly Integration CCIP Tests @@ -673,7 +673,7 @@ runner-test-matrix: - id: smoke/ccip/ccip_aptos_token_transfer_test.go:Test_CCIP_TokenTransfer_LnR_EVM2Aptos path: integration-tests/smoke/ccip/ccip_aptos_token_transfer_test.go test_env_type: in-memory - runs_on: ubuntu-latest + runs_on_self_hosted: runs-on/cpu=8/ram=32/family=m6i+m5.*/spot=false/image=ubuntu24-full-x64/extras=s3-cache+tmpfs triggers: - PR Integration CCIP Tests - Nightly Integration CCIP Tests @@ -685,7 +685,7 @@ runner-test-matrix: - id: smoke/ccip/ccip_aptos_token_transfer_test.go:Test_CCIP_TokenTransfer_LnR_without_TransferRef_EVM2Aptos path: integration-tests/smoke/ccip/ccip_aptos_token_transfer_test.go test_env_type: in-memory - runs_on: ubuntu-latest + runs_on_self_hosted: runs-on/cpu=8/ram=32/family=m6i+m5.*/spot=false/image=ubuntu24-full-x64/extras=s3-cache+tmpfs triggers: - PR Integration CCIP Tests - Nightly Integration CCIP Tests @@ -697,7 +697,7 @@ runner-test-matrix: - id: smoke/ccip/ccip_aptos_token_transfer_test.go:Test_CCIP_TokenTransfer_LnR_without_TransferRef_Aptos2EVM path: integration-tests/smoke/ccip/ccip_aptos_token_transfer_test.go test_env_type: in-memory - runs_on: ubuntu-latest + runs_on_self_hosted: runs-on/cpu=8/ram=32/family=m6i+m5.*/spot=false/image=ubuntu24-full-x64/extras=s3-cache+tmpfs triggers: - PR Integration CCIP Tests - Nightly Integration CCIP Tests @@ -710,7 +710,7 @@ runner-test-matrix: - id: smoke/ccip/ccip_ton_messaging_test.go:Test_CCIPMessaging_TON2EVM path: integration-tests/smoke/ccip/ccip_ton_messaging_test.go test_env_type: in-memory - runs_on: ubuntu-latest + runs_on_self_hosted: runs-on/cpu=8/ram=32/family=m6i+m5.*/spot=false/image=ubuntu24-full-x64/extras=s3-cache+tmpfs triggers: - PR Integration CCIP Tests - Nightly Integration CCIP Tests @@ -721,7 +721,7 @@ runner-test-matrix: - id: smoke/ccip/ccip_ton_messaging_test.go:Test_CCIPMessaging_EVM2TON path: integration-tests/smoke/ccip/ccip_ton_messaging_test.go test_env_type: in-memory - runs_on: ubuntu-latest + runs_on_self_hosted: runs-on/cpu=8/ram=32/family=m6i+m5.*/spot=false/image=ubuntu24-full-x64/extras=s3-cache+tmpfs triggers: - PR Integration CCIP Tests - Nightly Integration CCIP Tests @@ -733,7 +733,7 @@ runner-test-matrix: - id: smoke/ccip/ccip_sui_messaging_test.go:Test_CCIP_Messaging_Sui2EVM path: integration-tests/smoke/ccip/ccip_sui_messaging_test.go test_env_type: in-memory - runs_on: ubuntu-latest + runs_on_self_hosted: runs-on/cpu=8/ram=32/family=m6i+m5.*/spot=false/image=ubuntu24-full-x64/extras=s3-cache+tmpfs triggers: - PR Integration CCIP Tests - Nightly Integration CCIP Tests @@ -745,7 +745,7 @@ runner-test-matrix: - id: smoke/ccip/ccip_sui_messaging_test.go:Test_CCIP_Messaging_EVM2Sui path: integration-tests/smoke/ccip/ccip_sui_messaging_test.go test_env_type: in-memory - runs_on: ubuntu-latest + runs_on_self_hosted: runs-on/cpu=8/ram=32/family=m6i+m5.*/spot=false/image=ubuntu24-full-x64/extras=s3-cache+tmpfs triggers: - PR Integration CCIP Tests - Nightly Integration CCIP Tests @@ -766,62 +766,74 @@ runner-test-matrix: # sui_cli_version: mainnet-1.57.2 # install_plugins_public: true - - id: smoke/ccip/ccip_sui_token_transfer_test.go:Test_CCIPTokenTransfer_Sui2EVM + - id: smoke/ccip/ccip_sui_token_transfer_test.go:Test_CCIPTokenTransfer_Sui2EVM_BurnMintTokenPool path: integration-tests/smoke/ccip/ccip_sui_token_transfer_test.go test_env_type: in-memory - runs_on: ubuntu-latest + runs_on_self_hosted: runs-on/cpu=8/ram=32/family=m6i+m5.*/spot=false/image=ubuntu24-full-x64/extras=s3-cache+tmpfs triggers: - PR Integration CCIP Tests - Nightly Integration CCIP Tests - test_cmd: go test ./smoke/ccip -run "Test_CCIPTokenTransfer_Sui2EVM" -timeout 10m -test.parallel=1 -count=1 -json + test_cmd: go test ./smoke/ccip -run "Test_CCIPTokenTransfer_Sui2EVM_BurnMintTokenPool" -timeout 10m -test.parallel=1 -count=1 -json test_go_project_path: integration-tests sui_cli_version: mainnet-1.57.2 install_plugins_public: true - # - id: smoke/ccip/ccip_sui_token_transfer_test.go:Test_CCIPPureTokenTransfer_EVM2SUI + - id: smoke/ccip/ccip_sui_token_transfer_test.go:Test_CCIPTokenTransfer_Sui2EVM_ManagedTokenPool + path: integration-tests/smoke/ccip/ccip_sui_token_transfer_test.go + test_env_type: in-memory + runs_on_self_hosted: runs-on/cpu=8/ram=32/family=m6i+m5.*/spot=false/image=ubuntu24-full-x64/extras=s3-cache+tmpfs + triggers: + - PR Integration CCIP Tests + - Nightly Integration CCIP Tests + test_cmd: go test ./smoke/ccip -run "Test_CCIPTokenTransfer_Sui2EVM_ManagedTokenPool" -timeout 10m -test.parallel=1 -count=1 -json + test_go_project_path: integration-tests + sui_cli_version: mainnet-1.60.1 + install_plugins_public: true + + # - id: smoke/ccip/ccip_sui_token_transfer_test.go:Test_CCIPPureTokenTransfer_EVM2SUI_BurnMintTokenPool # path: integration-tests/smoke/ccip/ccip_sui_token_transfer_test.go # test_env_type: in-memory # runs_on: ubuntu24.04-8cores-32GB # triggers: # - PR Integration CCIP Tests # - Nightly Integration CCIP Tests - # test_cmd: go test ./smoke/ccip -run "Test_CCIPPureTokenTransfer_EVM2SUI" -timeout 7m -test.parallel=1 -count=1 -json + # test_cmd: go test ./smoke/ccip -run "Test_CCIPPureTokenTransfer_EVM2SUI_BurnMintTokenPool" -timeout 7m -test.parallel=1 -count=1 -json # test_go_project_path: integration-tests # sui_cli_version: mainnet-1.57.2 # install_plugins_public: true - # - id: smoke/ccip/ccip_sui_token_transfer_test.go:Test_CCIPProgrammableTokenTransfer_EVM2SUI + # - id: smoke/ccip/ccip_sui_token_transfer_test.go:Test_CCIPProgrammableTokenTransfer_EVM2SUI_BurnMintTokenPool # path: integration-tests/smoke/ccip/ccip_sui_token_transfer_test.go # test_env_type: in-memory # runs_on: ubuntu24.04-8cores-32GB # triggers: # - PR Integration CCIP Tests # - Nightly Integration CCIP Tests - # test_cmd: go test ./smoke/ccip -run "Test_CCIPProgrammableTokenTransfer_EVM2SUI" -timeout 7m -test.parallel=1 -count=1 -json + # test_cmd: go test ./smoke/ccip -run "Test_CCIPProgrammableTokenTransfer_EVM2SUI_BurnMintTokenPool" -timeout 7m -test.parallel=1 -count=1 -json # test_go_project_path: integration-tests # sui_cli_version: mainnet-1.57.2 # install_plugins_public: true - # - id: smoke/ccip/ccip_sui_token_transfer_test.go:Test_CCIPZeroGasLimitTokenTransfer_EVM2SUI + # - id: smoke/ccip/ccip_sui_token_transfer_test.go:Test_CCIPZeroGasLimitTokenTransfer_EVM2SUI_BurnMintTokenPool # path: integration-tests/smoke/ccip/ccip_sui_token_transfer_test.go # test_env_type: in-memory # runs_on: ubuntu24.04-8cores-32GB # triggers: # - PR Integration CCIP Tests # - Nightly Integration CCIP Tests - # test_cmd: go test ./smoke/ccip -run "Test_CCIPZeroGasLimitTokenTransfer_EVM2SUI" -timeout 7m -test.parallel=1 -count=1 -json + # test_cmd: go test ./smoke/ccip -run "Test_CCIPZeroGasLimitTokenTransfer_EVM2SUI_BurnMintTokenPool" -timeout 7m -test.parallel=1 -count=1 -json # test_go_project_path: integration-tests # sui_cli_version: mainnet-1.57.2 # install_plugins_public: true - # - id: smoke/ccip/ccip_sui_token_transfer_test.go:Test_CCIPTokenTransfer_EVM2SUI + # - id: smoke/ccip/ccip_sui_token_transfer_test.go:Test_CCIPTokenTransfer_EVM2SUI_BurnMintTokenPool # path: integration-tests/smoke/ccip/ccip_sui_token_transfer_test.go # test_env_type: in-memory # runs_on: ubuntu24.04-8cores-32GB # triggers: # - PR Integration CCIP Tests # - Nightly Integration CCIP Tests - # test_cmd: go test ./smoke/ccip -run "Test_CCIPTokenTransfer_EVM2SUI" -timeout 7m -test.parallel=1 -count=1 -json + # test_cmd: go test ./smoke/ccip -run "Test_CCIPTokenTransfer_EVM2SUI_BurnMintTokenPool" -timeout 7m -test.parallel=1 -count=1 -json # test_go_project_path: integration-tests # sui_cli_version: mainnet-1.57.2 # install_plugins_public: true diff --git a/core/scripts/go.mod b/core/scripts/go.mod index 4f9c48e3a95..db8075d7765 100644 --- a/core/scripts/go.mod +++ b/core/scripts/go.mod @@ -499,8 +499,8 @@ require ( github.com/smartcontractkit/chainlink-protos/svr v1.1.0 // indirect github.com/smartcontractkit/chainlink-protos/workflows/go v0.0.0-20251025021331-aa7746850cc4 // indirect github.com/smartcontractkit/chainlink-solana v1.1.2-0.20251105160343-b77843a1daf4 // indirect - github.com/smartcontractkit/chainlink-sui v0.0.0-20251105220250-f8d7f06e3b8d // indirect - github.com/smartcontractkit/chainlink-sui/deployment v0.0.0-20251105220250-f8d7f06e3b8d // indirect + github.com/smartcontractkit/chainlink-sui v0.0.0-20251114141003-d4fabe3c5586 // indirect + github.com/smartcontractkit/chainlink-sui/deployment v0.0.0-20251114141003-d4fabe3c5586 // indirect github.com/smartcontractkit/chainlink-testing-framework/framework/components/fake v0.10.0 // indirect github.com/smartcontractkit/chainlink-testing-framework/parrot v0.6.2 // indirect github.com/smartcontractkit/chainlink-ton v0.0.0-20251113211653-082bd18d77bb // indirect diff --git a/core/scripts/go.sum b/core/scripts/go.sum index 6912521d362..dc2132215e7 100644 --- a/core/scripts/go.sum +++ b/core/scripts/go.sum @@ -1661,10 +1661,10 @@ github.com/smartcontractkit/chainlink-protos/workflows/go v0.0.0-20251025021331- github.com/smartcontractkit/chainlink-protos/workflows/go v0.0.0-20251025021331-aa7746850cc4/go.mod h1:HIpGvF6nKCdtZ30xhdkKWGM9+4Z4CVqJH8ZBL1FTEiY= github.com/smartcontractkit/chainlink-solana v1.1.2-0.20251105160343-b77843a1daf4 h1:XYuSAv2hVwAegkJQsrnsQgl3eMHEFSYkA6+lyd7UdWU= github.com/smartcontractkit/chainlink-solana v1.1.2-0.20251105160343-b77843a1daf4/go.mod h1:BqK7sKZUfX4sVkDSEMnj1Vnagiqh+bt1nARpEFruP40= -github.com/smartcontractkit/chainlink-sui v0.0.0-20251105220250-f8d7f06e3b8d h1:Bpp6fmkuzVNIQOE5qtzn8J1jzpdW+7hxGBu52qTPVZs= -github.com/smartcontractkit/chainlink-sui v0.0.0-20251105220250-f8d7f06e3b8d/go.mod h1:VlyZhVw+a93Sk8rVHOIH6tpiXrMzuWLZrjs1eTIExW8= -github.com/smartcontractkit/chainlink-sui/deployment v0.0.0-20251105220250-f8d7f06e3b8d h1:OF71xP01Se6e03tXZ158s2Dx4MnJW66L1LSSl2TSGao= -github.com/smartcontractkit/chainlink-sui/deployment v0.0.0-20251105220250-f8d7f06e3b8d/go.mod h1:xKHyB3k3B5Au1Bvn6i3OmYkvbt0CDsuXXQBnC+ci0Ts= +github.com/smartcontractkit/chainlink-sui v0.0.0-20251114141003-d4fabe3c5586 h1:XiPdxF1OGGTakmDv5V9PZNv10HmnF+uYjYeY5H+Rb2o= +github.com/smartcontractkit/chainlink-sui v0.0.0-20251114141003-d4fabe3c5586/go.mod h1:qSxg5KpKoLfiF52qcBTfJtoiRh0jYrpSlDVpHDN7Kmo= +github.com/smartcontractkit/chainlink-sui/deployment v0.0.0-20251114141003-d4fabe3c5586 h1:IpZLp2YZDFn0DwpPBZvpssViW03tGACZfSlqg9o1Sm4= +github.com/smartcontractkit/chainlink-sui/deployment v0.0.0-20251114141003-d4fabe3c5586/go.mod h1:ROpZpZBHs3kyXARYu+34Ttt2RBnABJE23e9VW5kzhI4= github.com/smartcontractkit/chainlink-testing-framework/framework v0.11.8 h1:0d7CVHUsG3Lt4LNIMt7/GQLjzrWMpA+KtUC/9gZFeAQ= github.com/smartcontractkit/chainlink-testing-framework/framework v0.11.8/go.mod h1:BTUmWJGbOQtMdDW8cy4fu0wLoj8tKFQiLR7SE+OyTXU= github.com/smartcontractkit/chainlink-testing-framework/framework/components/dockercompose v0.1.17 h1:rOYrH9lx2nXyqtvpuTq50RlW5VtplJFWtXD6cf7uEWc= diff --git a/deployment/ccip/changeset/testhelpers/test_sui_helpers.go b/deployment/ccip/changeset/testhelpers/test_sui_helpers.go index e7e41e088fb..ac3ddcd15b5 100644 --- a/deployment/ccip/changeset/testhelpers/test_sui_helpers.go +++ b/deployment/ccip/changeset/testhelpers/test_sui_helpers.go @@ -26,10 +26,13 @@ import ( "github.com/smartcontractkit/chainlink-deployments-framework/operations" "github.com/smartcontractkit/chainlink-evm/gethwrappers/shared/generated/initial/burn_mint_erc677" suiBind "github.com/smartcontractkit/chainlink-sui/bindings/bind" + sui_deployment "github.com/smartcontractkit/chainlink-sui/deployment" sui_cs "github.com/smartcontractkit/chainlink-sui/deployment/changesets" sui_ops "github.com/smartcontractkit/chainlink-sui/deployment/ops" ccipops "github.com/smartcontractkit/chainlink-sui/deployment/ops/ccip" burnminttokenpoolops "github.com/smartcontractkit/chainlink-sui/deployment/ops/ccip_burn_mint_token_pool" + managedtokenpoolops "github.com/smartcontractkit/chainlink-sui/deployment/ops/ccip_managed_token_pool" + managedtokenops "github.com/smartcontractkit/chainlink-sui/deployment/ops/managed_token" suiofframp_helper "github.com/smartcontractkit/chainlink-sui/relayer/chainwriter/ptb/offramp" suideps "github.com/smartcontractkit/chainlink/deployment/ccip/changeset/sui" ccipclient "github.com/smartcontractkit/chainlink/deployment/ccip/shared/client" @@ -51,8 +54,9 @@ type SuiSendRequest struct { } type SuiTokenAmount struct { - Token string - Amount uint64 + TokenPoolType sui_deployment.TokenPoolType + Token string + Amount uint64 } type RampMessageHeader struct { @@ -176,12 +180,41 @@ func SendSuiCCIPRequest(e cldf.Environment, cfg *ccipclient.CCIPSendReqConfig) ( // fmt.Println("VALIDATED FEE:", validatedFee) if len(msg.TokenAmounts) > 0 { - bnmTokenPool, exists := state.SuiChains[cfg.SourceChain].BnMTokenPools[TokenSymbolLINK] - if !exists { - return nil, fmt.Errorf("no BurnMintTokenPool found for token: %s", TokenSymbolLINK) + var tokenPoolState sui_deployment.CCIPPoolState + var tokenPoolPkgName string + var tokenPoolModuleName string + + switch msg.TokenAmounts[0].TokenPoolType { + case sui_deployment.TokenPoolTypeBurnMint: + bnmTokenPool, exists := state.SuiChains[cfg.SourceChain].BnMTokenPools[TokenSymbolLINK] + if !exists { + return nil, fmt.Errorf("no BurnMintTokenPool found for token: %s", TokenSymbolLINK) + } + tokenPoolState = bnmTokenPool + tokenPoolPkgName = "burn_mint_token_pool" + tokenPoolModuleName = "burn_mint_token_pool" + case sui_deployment.TokenPoolTypeManaged: + managedTokenPool, exists := state.SuiChains[cfg.SourceChain].ManagedTokenPools[TokenSymbolLINK] + if !exists { + return nil, fmt.Errorf("no ManagedTokenPool found for token: %s", TokenSymbolLINK) + } + tokenPoolState = managedTokenPool + tokenPoolPkgName = "managed_token_pool" + tokenPoolModuleName = "managed_token_pool" + case sui_deployment.TokenPoolTypeLockRelease: + lnrTokenPool, exists := state.SuiChains[cfg.SourceChain].LnRTokenPools[TokenSymbolLINK] + if !exists { + return nil, fmt.Errorf("no LockReleaseTokenPool found for token: %s", TokenSymbolLINK) + } + tokenPoolState = lnrTokenPool + tokenPoolPkgName = "lock_release_token_pool" + tokenPoolModuleName = "lock_release_token_pool" + default: + return nil, fmt.Errorf("unsupported token pool type: %s", msg.TokenAmounts[0].TokenPoolType) } - BurnMintTPPkgID := bnmTokenPool.PackageID - BurnMintTPState := bnmTokenPool.StateObjectId + + tokenPoolPkgID := tokenPoolState.PackageID + tokenPoolStateObjectID := tokenPoolState.StateObjectId // 3 ptb calls // 1. create_token_transfer_params @@ -204,14 +237,14 @@ func SendSuiCCIPRequest(e cldf.Environment, cfg *ccipclient.CCIPSendReqConfig) ( return nil, errors.New("failed to create onramp state helper bound contract when appending PTB command: " + err.Error()) } - BurnMintTPContract, err := suiBind.NewBoundContract( - BurnMintTPPkgID, - "burn_mint_token_pool", - "burn_mint_token_pool", + tokenPoolContract, err := suiBind.NewBoundContract( + tokenPoolPkgID, + tokenPoolPkgName, + tokenPoolModuleName, client, ) if err != nil { - return nil, errors.New("failed to create burn_mint_token_pool bound contract when appending PTB command: " + err.Error()) + return nil, errors.New("failed to create " + tokenPoolPkgName + " bound contract when appending PTB command: " + err.Error()) } onRampContract, err := suiBind.NewBoundContract( @@ -267,15 +300,15 @@ func SendSuiCCIPRequest(e cldf.Environment, cfg *ccipclient.CCIPSendReqConfig) ( } /********* 2. lock_or_burn *******/ - normalizedModuleBMTP, err := client.SuiGetNormalizedMoveModule(ctx, models.GetNormalizedMoveModuleRequest{ - Package: BurnMintTPPkgID, - ModuleName: "burn_mint_token_pool", + normalizedModuleTP, err := client.SuiGetNormalizedMoveModule(ctx, models.GetNormalizedMoveModuleRequest{ + Package: tokenPoolPkgID, + ModuleName: tokenPoolModuleName, }) if err != nil { return nil, errors.New("failed to get normalized module: " + err.Error()) } - functionSignatureLnB, isValidLockOrBurn := normalizedModuleBMTP.ExposedFunctions["lock_or_burn"] + functionSignatureLnB, isValidLockOrBurn := normalizedModuleTP.ExposedFunctions["lock_or_burn"] if !isValidLockOrBurn { return nil, errors.New("missing function signature for receiver function not found in module lock_or_burn") } @@ -288,16 +321,34 @@ func SendSuiCCIPRequest(e cldf.Environment, cfg *ccipclient.CCIPSendReqConfig) ( typeArgsListLinkTokenPkgID := []string{linkTokenPkgID + "::link::LINK"} typeParamsList = []string{} - paramValuesLockBurn := []any{ - suiBind.Object{Id: ccipObjectRefID}, // ref - createTokenTransferParamsResult, // token_params - suiBind.Object{Id: msg.TokenAmounts[0].Token}, // minted token to send to EVM - cfg.DestChain, - suiBind.Object{Id: "0x6"}, // clock - suiBind.Object{Id: BurnMintTPState}, // BurnMintstate + + var paramValuesLockBurn []any + switch msg.TokenAmounts[0].TokenPoolType { + case sui_deployment.TokenPoolTypeBurnMint: + paramValuesLockBurn = []any{ + suiBind.Object{Id: ccipObjectRefID}, // ref + createTokenTransferParamsResult, // token_params + suiBind.Object{Id: msg.TokenAmounts[0].Token}, // minted token to send to EVM + cfg.DestChain, + suiBind.Object{Id: "0x6"}, // clock + suiBind.Object{Id: tokenPoolStateObjectID}, // BM TP state object id + } + case sui_deployment.TokenPoolTypeManaged: + paramValuesLockBurn = []any{ + suiBind.Object{Id: ccipObjectRefID}, // ref + createTokenTransferParamsResult, // token_params + suiBind.Object{Id: msg.TokenAmounts[0].Token}, // minted token to send to EVM + cfg.DestChain, + suiBind.Object{Id: "0x6"}, // clock + suiBind.Object{Id: "0x403"}, // deny list + suiBind.Object{Id: state.SuiChains[cfg.SourceChain].ManagedTokens[TokenSymbolLINK].StateObjectId}, // Managed token state object id + suiBind.Object{Id: tokenPoolStateObjectID}, // Managed TP state object id + } + default: + return nil, fmt.Errorf("unsupported token pool type: %s", msg.TokenAmounts[0].TokenPoolType) } - lockOrBurnParamsCall, err := BurnMintTPContract.EncodeCallArgsWithGenerics( + lockOrBurnParamsCall, err := tokenPoolContract.EncodeCallArgsWithGenerics( "lock_or_burn", typeArgsListLinkTokenPkgID, typeParamsList, @@ -309,7 +360,7 @@ func SendSuiCCIPRequest(e cldf.Environment, cfg *ccipclient.CCIPSendReqConfig) ( return nil, errors.New("failed to encode lockOrBurnParamsCall call: " + err.Error()) } - _, err = BurnMintTPContract.AppendPTB(ctx, deps.SuiChain.GetCallOpts(), ptb, lockOrBurnParamsCall) + _, err = tokenPoolContract.AppendPTB(ctx, deps.SuiChain.GetCallOpts(), ptb, lockOrBurnParamsCall) if err != nil { return nil, errors.New("failed to build PTB (get_token_param_data) using bindings: " + err.Error()) } @@ -369,7 +420,20 @@ func SendSuiCCIPRequest(e cldf.Environment, cfg *ccipclient.CCIPSendReqConfig) ( return nil, errors.New("failed to execute ccip_send with err: " + err.Error()) } - suiEvent := executeCCIPSend.Events[2].ParsedJson + var suiEventResp models.SuiEventResponse + var found bool + for _, event := range executeCCIPSend.Events { + // find the CCIPMessageSent event emitted by the onramp package + if event.PackageId == onRampPackageID && strings.HasSuffix(event.Type, "CCIPMessageSent") { + suiEventResp = event + found = true + break + } + } + if !found { + return nil, errors.New("no CCIPMessageSent event found") + } + suiEvent := suiEventResp.ParsedJson seqStr, _ := suiEvent["sequence_number"].(string) seq, _ := strconv.ParseUint(seqStr, 10, 64) @@ -496,14 +560,29 @@ func SendSuiCCIPRequest(e cldf.Environment, cfg *ccipclient.CCIPSendReqConfig) ( return nil, errors.New("failed to execute ccip_send with err: " + err.Error()) } - if len(executeCCIPSend.Events) == 0 { - return nil, errors.New("no events returned from Sui CCIPSend") + var suiEventResp models.SuiEventResponse + var found bool + for _, event := range executeCCIPSend.Events { + // find the CCIPMessageSent event emitted by the onramp package + if event.PackageId == onRampPackageID && strings.HasSuffix(event.Type, "CCIPMessageSent") { + suiEventResp = event + found = true + break + } } + if !found { + return nil, errors.New("no CCIPMessageSent event found") + } + suiEvent := suiEventResp.ParsedJson - suiEvent := executeCCIPSend.Events[0].ParsedJson - - seqStr, _ := suiEvent["sequence_number"].(string) - seq, _ := strconv.ParseUint(seqStr, 10, 64) + seqStr, ok := suiEvent["sequence_number"].(string) + if !ok { + return nil, fmt.Errorf("failed to extract sequence_number from Sui event: %+v", suiEvent) + } + seq, err := strconv.ParseUint(seqStr, 10, 64) + if err != nil { + return nil, fmt.Errorf("failed to parse sequence number '%s': %w", seqStr, err) + } return &ccipclient.AnyMsgSentEvent{ SequenceNumber: seq, @@ -524,7 +603,9 @@ func MakeSuiExtraArgs(gasLimit uint64, allowOOO bool, receiverObjectIDs [][32]by return extraArgs } -func HandleTokenAndPoolDeploymentForSUI(e cldf.Environment, suiChainSel, evmChainSel uint64) (cldf.Environment, *burn_mint_erc677.BurnMintERC677, *burn_mint_token_pool.BurnMintTokenPool, error) { +// HandleTokenAndBurnMintTokenPoolDeploymentForSUI deploys a transferrable token and a burn mint token pool on the EVM chain. +// It also deploys a burn mint token pool on the SUI chain and configures it to work with the transferrable token on the EVM chain. +func HandleTokenAndBurnMintTokenPoolDeploymentForSUI(e cldf.Environment, suiChainSel, evmChainSel uint64) (cldf.Environment, *burn_mint_erc677.BurnMintERC677, *burn_mint_token_pool.BurnMintTokenPool, error) { suiChains := e.BlockChains.SuiChains() suiChain := suiChains[suiChainSel] @@ -557,7 +638,7 @@ func HandleTokenAndPoolDeploymentForSUI(e cldf.Environment, suiChainSel, evmChai e, _, err = commoncs.ApplyChangesets(&testing.T{}, e, []commoncs.ConfiguredChangeSet{ commoncs.Configure(sui_cs.DeployTPAndConfigure{}, sui_cs.DeployTPAndConfigureConfig{ SuiChainSelector: suiChainSel, - TokenPoolTypes: []string{"bnm"}, + TokenPoolTypes: []sui_deployment.TokenPoolType{sui_deployment.TokenPoolTypeBurnMint}, BurnMintTpInput: burnminttokenpoolops.DeployAndInitBurnMintTokenPoolInput{ CoinObjectTypeArg: linkTokenPkgID + "::link::LINK", CoinMetadataObjectId: linkTokenObjectMetadataID, @@ -644,6 +725,130 @@ func HandleTokenAndPoolDeploymentForSUI(e cldf.Environment, suiChainSel, evmChai return e, evmToken, evmPool, nil } +// HandleTokenAndManagedTokenPoolDeploymentForSUI deploys a transferrable token and a burn mint token pool on the EVM chain. +// It also deploys a managed token pool on the SUI chain and configures it to work with the transferrable token on the EVM chain. +func HandleTokenAndManagedTokenPoolDeploymentForSUI(e cldf.Environment, suiChainSel, evmChainSel uint64) (cldf.Environment, *burn_mint_erc677.BurnMintERC677, *burn_mint_token_pool.BurnMintTokenPool, error) { + evmChain := e.BlockChains.EVMChains()[evmChainSel] + suiChain := e.BlockChains.SuiChains()[suiChainSel] + deployerAddr, err := suiChain.Signer.GetAddress() + if err != nil { + return cldf.Environment{}, nil, nil, errors.New("failed to get deployer address " + err.Error()) + } + + // Deploy Transferrable TOKEN on ETH + // EVM + evmDeployerKey := evmChain.DeployerKey + state, err := stateview.LoadOnchainState(e) + if err != nil { + return cldf.Environment{}, nil, nil, errors.New("failed load onstate chains " + err.Error()) + } + + linkTokenPkgID := state.SuiChains[suiChainSel].LinkTokenAddress + linkTokenObjectMetadataID := state.SuiChains[suiChainSel].LinkTokenCoinMetadataId + linkTokenTreasuryCapID := state.SuiChains[suiChainSel].LinkTokenTreasuryCapId + + // Deploy & Configure Managed Token on SUI + e, _, err = commoncs.ApplyChangesets(&testing.T{}, e, []commoncs.ConfiguredChangeSet{ + commoncs.Configure(sui_cs.DeployManagedToken{}, sui_cs.DeployManagedTokenConfig{ + DeployAndInitManagedTokenInput: managedtokenops.DeployAndInitManagedTokenInput{ + CoinObjectTypeArg: linkTokenPkgID + "::link::LINK", + TreasuryCapObjectId: linkTokenTreasuryCapID, + MinterAddress: deployerAddr, + Allowance: 0, + IsUnlimited: true, + }, + ChainSelector: suiChainSel, + }), + }) + + if err != nil { + return cldf.Environment{}, nil, nil, err + } + + // Deploy transferrable token on EVM + evmToken, evmPool, err := deployTransferTokenOneEnd(e.Logger, evmChain, evmDeployerKey, e.ExistingAddresses, "TOKEN") + if err != nil { + return cldf.Environment{}, nil, nil, errors.New("failed to deploy transfer token for evm chain " + err.Error()) + } + + err = attachTokenToTheRegistry(evmChain, state.MustGetEVMChainState(evmChain.Selector), evmDeployerKey, evmToken.Address(), evmPool.Address()) + if err != nil { + return cldf.Environment{}, nil, nil, errors.New("failed to attach token to registry for evm " + err.Error()) + } + + // reload onChainState to get deployed Managed Token contracts + state, err = stateview.LoadOnchainState(e) + if err != nil { + return cldf.Environment{}, nil, nil, errors.New("failed load onstate chains " + err.Error()) + } + + e, _, err = commoncs.ApplyChangesets(&testing.T{}, e, []commoncs.ConfiguredChangeSet{ + commoncs.Configure(sui_cs.DeployTPAndConfigure{}, sui_cs.DeployTPAndConfigureConfig{ + SuiChainSelector: suiChainSel, + TokenPoolTypes: []sui_deployment.TokenPoolType{sui_deployment.TokenPoolTypeManaged}, + ManagedTPInput: managedtokenpoolops.DeployAndInitManagedTokenPoolInput{ + CoinObjectTypeArg: linkTokenPkgID + "::link::LINK", + CoinMetadataObjectId: linkTokenObjectMetadataID, + MintCapObjectId: state.SuiChains[suiChainSel].ManagedTokens[TokenSymbolLINK].MinterCapObjectIds[0], + ManagedTokenStateObjectId: state.SuiChains[suiChainSel].ManagedTokens[TokenSymbolLINK].StateObjectId, + ManagedTokenOwnerCapId: state.SuiChains[suiChainSel].ManagedTokens[TokenSymbolLINK].OwnerCapObjectId, + // apply dest chain updates + RemoteChainSelectorsToRemove: []uint64{}, + RemoteChainSelectorsToAdd: []uint64{evmChainSel}, + RemotePoolAddressesToAdd: [][]string{{evmPool.Address().String()}}, // this gets convert to 32byte bytes internally + RemoteTokenAddressesToAdd: []string{ + evmToken.Address().String(), // this gets convert to 32byte bytes internally + }, + + // set chain rate limiter configs + RemoteChainSelectors: []uint64{evmChainSel}, + OutboundIsEnableds: []bool{false}, + OutboundCapacities: []uint64{100000}, + OutboundRates: []uint64{100}, + InboundIsEnableds: []bool{false}, + InboundCapacities: []uint64{100000}, + InboundRates: []uint64{100}, + }, + }), + }) + if err != nil { + return cldf.Environment{}, nil, nil, err + } + + // reload onChainState to get deployed managed token pool contracts + state, err = stateview.LoadOnchainState(e) + if err != nil { + return cldf.Environment{}, nil, nil, errors.New("failed load onstate chains " + err.Error()) + } + + suiTokenBytes, err := hex.DecodeString(strings.TrimPrefix(linkTokenObjectMetadataID, "0x")) + if err != nil { + return cldf.Environment{}, nil, nil, errors.New("error while decoding suiToken") + } + + managedTokenPool, ok := state.SuiChains[suiChainSel].ManagedTokenPools[TokenSymbolLINK] + if !ok { + return cldf.Environment{}, nil, nil, fmt.Errorf("no ManagedTokenPool found for token: %s", TokenSymbolLINK) + } + + suiPoolBytes, err := hex.DecodeString(strings.TrimPrefix(managedTokenPool.PackageID, "0x")) + if err != nil { + return cldf.Environment{}, nil, nil, errors.New("error while decoding suiPool") + } + + err = setTokenPoolCounterPart(e.BlockChains.EVMChains()[evmChain.Selector], evmPool, evmDeployerKey, suiChain.Selector, suiTokenBytes, suiPoolBytes) + if err != nil { + return cldf.Environment{}, nil, nil, errors.New("failed to add token to the counterparty " + err.Error()) + } + + err = grantMintBurnPermissions(e.Logger, e.BlockChains.EVMChains()[evmChain.Selector], evmToken, evmDeployerKey, evmPool.Address()) + if err != nil { + return cldf.Environment{}, nil, nil, errors.New("failed to grant burnMint " + err.Error()) + } + + return e, evmToken, evmPool, nil +} + func WaitForTokenBalanceSui( ctx context.Context, t *testing.T, diff --git a/deployment/go.mod b/deployment/go.mod index f1997e8c620..c3564ae3a5c 100644 --- a/deployment/go.mod +++ b/deployment/go.mod @@ -51,8 +51,8 @@ require ( github.com/smartcontractkit/chainlink-protos/job-distributor v0.17.0 github.com/smartcontractkit/chainlink-protos/orchestrator v0.10.0 github.com/smartcontractkit/chainlink-solana v1.1.2-0.20251105160343-b77843a1daf4 - github.com/smartcontractkit/chainlink-sui v0.0.0-20251105220250-f8d7f06e3b8d - github.com/smartcontractkit/chainlink-sui/deployment v0.0.0-20251105220250-f8d7f06e3b8d + github.com/smartcontractkit/chainlink-sui v0.0.0-20251114141003-d4fabe3c5586 + github.com/smartcontractkit/chainlink-sui/deployment v0.0.0-20251114141003-d4fabe3c5586 github.com/smartcontractkit/chainlink-testing-framework/framework v0.11.7 github.com/smartcontractkit/chainlink-testing-framework/lib v1.54.5 github.com/smartcontractkit/chainlink-ton v0.0.0-20251113211653-082bd18d77bb diff --git a/deployment/go.sum b/deployment/go.sum index b92fe2cee3d..4e94194de2d 100644 --- a/deployment/go.sum +++ b/deployment/go.sum @@ -1385,10 +1385,10 @@ github.com/smartcontractkit/chainlink-protos/workflows/go v0.0.0-20251025021331- github.com/smartcontractkit/chainlink-protos/workflows/go v0.0.0-20251025021331-aa7746850cc4/go.mod h1:HIpGvF6nKCdtZ30xhdkKWGM9+4Z4CVqJH8ZBL1FTEiY= github.com/smartcontractkit/chainlink-solana v1.1.2-0.20251105160343-b77843a1daf4 h1:XYuSAv2hVwAegkJQsrnsQgl3eMHEFSYkA6+lyd7UdWU= github.com/smartcontractkit/chainlink-solana v1.1.2-0.20251105160343-b77843a1daf4/go.mod h1:BqK7sKZUfX4sVkDSEMnj1Vnagiqh+bt1nARpEFruP40= -github.com/smartcontractkit/chainlink-sui v0.0.0-20251105220250-f8d7f06e3b8d h1:Bpp6fmkuzVNIQOE5qtzn8J1jzpdW+7hxGBu52qTPVZs= -github.com/smartcontractkit/chainlink-sui v0.0.0-20251105220250-f8d7f06e3b8d/go.mod h1:VlyZhVw+a93Sk8rVHOIH6tpiXrMzuWLZrjs1eTIExW8= -github.com/smartcontractkit/chainlink-sui/deployment v0.0.0-20251105220250-f8d7f06e3b8d h1:OF71xP01Se6e03tXZ158s2Dx4MnJW66L1LSSl2TSGao= -github.com/smartcontractkit/chainlink-sui/deployment v0.0.0-20251105220250-f8d7f06e3b8d/go.mod h1:xKHyB3k3B5Au1Bvn6i3OmYkvbt0CDsuXXQBnC+ci0Ts= +github.com/smartcontractkit/chainlink-sui v0.0.0-20251114141003-d4fabe3c5586 h1:XiPdxF1OGGTakmDv5V9PZNv10HmnF+uYjYeY5H+Rb2o= +github.com/smartcontractkit/chainlink-sui v0.0.0-20251114141003-d4fabe3c5586/go.mod h1:qSxg5KpKoLfiF52qcBTfJtoiRh0jYrpSlDVpHDN7Kmo= +github.com/smartcontractkit/chainlink-sui/deployment v0.0.0-20251114141003-d4fabe3c5586 h1:IpZLp2YZDFn0DwpPBZvpssViW03tGACZfSlqg9o1Sm4= +github.com/smartcontractkit/chainlink-sui/deployment v0.0.0-20251114141003-d4fabe3c5586/go.mod h1:ROpZpZBHs3kyXARYu+34Ttt2RBnABJE23e9VW5kzhI4= github.com/smartcontractkit/chainlink-testing-framework/framework v0.11.7 h1:jVlRG9GTpDGYtP0iabxHZW4s3pXdpN4/lTgZEdE64P4= github.com/smartcontractkit/chainlink-testing-framework/framework v0.11.7/go.mod h1:BTUmWJGbOQtMdDW8cy4fu0wLoj8tKFQiLR7SE+OyTXU= github.com/smartcontractkit/chainlink-testing-framework/lib v1.54.5 h1:jARz/SWbmWoGJJGVcAnWwGMb8JuHRTQQsM3m6ZwrAGk= diff --git a/go.mod b/go.mod index 93644302692..851be13bd75 100644 --- a/go.mod +++ b/go.mod @@ -100,7 +100,7 @@ require ( github.com/smartcontractkit/chainlink-protos/storage-service v0.3.0 github.com/smartcontractkit/chainlink-protos/workflows/go v0.0.0-20251025021331-aa7746850cc4 github.com/smartcontractkit/chainlink-solana v1.1.2-0.20251105160343-b77843a1daf4 - github.com/smartcontractkit/chainlink-sui v0.0.0-20251105220250-f8d7f06e3b8d + github.com/smartcontractkit/chainlink-sui v0.0.0-20251114141003-d4fabe3c5586 github.com/smartcontractkit/chainlink-ton v0.0.0-20251113211653-082bd18d77bb github.com/smartcontractkit/cre-sdk-go v0.7.1-0.20250919133015-2df149f34a81 github.com/smartcontractkit/cre-sdk-go/capabilities/networking/http v0.7.0 diff --git a/go.sum b/go.sum index 59cf30156a6..87481f13231 100644 --- a/go.sum +++ b/go.sum @@ -1153,8 +1153,8 @@ github.com/smartcontractkit/chainlink-protos/workflows/go v0.0.0-20251025021331- github.com/smartcontractkit/chainlink-protos/workflows/go v0.0.0-20251025021331-aa7746850cc4/go.mod h1:HIpGvF6nKCdtZ30xhdkKWGM9+4Z4CVqJH8ZBL1FTEiY= github.com/smartcontractkit/chainlink-solana v1.1.2-0.20251105160343-b77843a1daf4 h1:XYuSAv2hVwAegkJQsrnsQgl3eMHEFSYkA6+lyd7UdWU= github.com/smartcontractkit/chainlink-solana v1.1.2-0.20251105160343-b77843a1daf4/go.mod h1:BqK7sKZUfX4sVkDSEMnj1Vnagiqh+bt1nARpEFruP40= -github.com/smartcontractkit/chainlink-sui v0.0.0-20251105220250-f8d7f06e3b8d h1:Bpp6fmkuzVNIQOE5qtzn8J1jzpdW+7hxGBu52qTPVZs= -github.com/smartcontractkit/chainlink-sui v0.0.0-20251105220250-f8d7f06e3b8d/go.mod h1:VlyZhVw+a93Sk8rVHOIH6tpiXrMzuWLZrjs1eTIExW8= +github.com/smartcontractkit/chainlink-sui v0.0.0-20251114141003-d4fabe3c5586 h1:XiPdxF1OGGTakmDv5V9PZNv10HmnF+uYjYeY5H+Rb2o= +github.com/smartcontractkit/chainlink-sui v0.0.0-20251114141003-d4fabe3c5586/go.mod h1:qSxg5KpKoLfiF52qcBTfJtoiRh0jYrpSlDVpHDN7Kmo= github.com/smartcontractkit/chainlink-ton v0.0.0-20251113211653-082bd18d77bb h1:qwWAfnePapmspQQnSI3Jed9b32a9uNc5ohV/D2gCg1Q= github.com/smartcontractkit/chainlink-ton v0.0.0-20251113211653-082bd18d77bb/go.mod h1:rxekiaWnJnFFfklae1OvO6T7xHJtsEldDvW/e5+b/qg= github.com/smartcontractkit/chainlink-tron/relayer v0.0.11-0.20251014143056-a0c6328c91e9 h1:7Ut0g+Pdm+gcu2J/Xv8OpQOVf7uLGErMX8yhC4b4tIA= diff --git a/integration-tests/go.mod b/integration-tests/go.mod index f26495dbf94..a704c9d7adf 100644 --- a/integration-tests/go.mod +++ b/integration-tests/go.mod @@ -55,8 +55,8 @@ require ( github.com/smartcontractkit/chainlink-evm v0.3.4-0.20251029010119-b2ed6162042f github.com/smartcontractkit/chainlink-evm/gethwrappers v0.0.0-20251022075638-49d961001d1b github.com/smartcontractkit/chainlink-protos/job-distributor v0.17.0 - github.com/smartcontractkit/chainlink-sui v0.0.0-20251105220250-f8d7f06e3b8d - github.com/smartcontractkit/chainlink-sui/deployment v0.0.0-20251105220250-f8d7f06e3b8d + github.com/smartcontractkit/chainlink-sui v0.0.0-20251114141003-d4fabe3c5586 + github.com/smartcontractkit/chainlink-sui/deployment v0.0.0-20251114141003-d4fabe3c5586 github.com/smartcontractkit/chainlink-testing-framework/havoc v1.50.5 github.com/smartcontractkit/chainlink-testing-framework/lib v1.54.7 github.com/smartcontractkit/chainlink-testing-framework/lib/grafana v1.51.0 diff --git a/integration-tests/go.sum b/integration-tests/go.sum index eed06460723..840d3c8af95 100644 --- a/integration-tests/go.sum +++ b/integration-tests/go.sum @@ -1629,10 +1629,10 @@ github.com/smartcontractkit/chainlink-protos/workflows/go v0.0.0-20251025021331- github.com/smartcontractkit/chainlink-protos/workflows/go v0.0.0-20251025021331-aa7746850cc4/go.mod h1:HIpGvF6nKCdtZ30xhdkKWGM9+4Z4CVqJH8ZBL1FTEiY= github.com/smartcontractkit/chainlink-solana v1.1.2-0.20251105160343-b77843a1daf4 h1:XYuSAv2hVwAegkJQsrnsQgl3eMHEFSYkA6+lyd7UdWU= github.com/smartcontractkit/chainlink-solana v1.1.2-0.20251105160343-b77843a1daf4/go.mod h1:BqK7sKZUfX4sVkDSEMnj1Vnagiqh+bt1nARpEFruP40= -github.com/smartcontractkit/chainlink-sui v0.0.0-20251105220250-f8d7f06e3b8d h1:Bpp6fmkuzVNIQOE5qtzn8J1jzpdW+7hxGBu52qTPVZs= -github.com/smartcontractkit/chainlink-sui v0.0.0-20251105220250-f8d7f06e3b8d/go.mod h1:VlyZhVw+a93Sk8rVHOIH6tpiXrMzuWLZrjs1eTIExW8= -github.com/smartcontractkit/chainlink-sui/deployment v0.0.0-20251105220250-f8d7f06e3b8d h1:OF71xP01Se6e03tXZ158s2Dx4MnJW66L1LSSl2TSGao= -github.com/smartcontractkit/chainlink-sui/deployment v0.0.0-20251105220250-f8d7f06e3b8d/go.mod h1:xKHyB3k3B5Au1Bvn6i3OmYkvbt0CDsuXXQBnC+ci0Ts= +github.com/smartcontractkit/chainlink-sui v0.0.0-20251114141003-d4fabe3c5586 h1:XiPdxF1OGGTakmDv5V9PZNv10HmnF+uYjYeY5H+Rb2o= +github.com/smartcontractkit/chainlink-sui v0.0.0-20251114141003-d4fabe3c5586/go.mod h1:qSxg5KpKoLfiF52qcBTfJtoiRh0jYrpSlDVpHDN7Kmo= +github.com/smartcontractkit/chainlink-sui/deployment v0.0.0-20251114141003-d4fabe3c5586 h1:IpZLp2YZDFn0DwpPBZvpssViW03tGACZfSlqg9o1Sm4= +github.com/smartcontractkit/chainlink-sui/deployment v0.0.0-20251114141003-d4fabe3c5586/go.mod h1:ROpZpZBHs3kyXARYu+34Ttt2RBnABJE23e9VW5kzhI4= github.com/smartcontractkit/chainlink-testing-framework/framework v0.11.7 h1:jVlRG9GTpDGYtP0iabxHZW4s3pXdpN4/lTgZEdE64P4= github.com/smartcontractkit/chainlink-testing-framework/framework v0.11.7/go.mod h1:BTUmWJGbOQtMdDW8cy4fu0wLoj8tKFQiLR7SE+OyTXU= github.com/smartcontractkit/chainlink-testing-framework/havoc v1.50.5 h1:S5HND0EDtlA+xp2E+mD11DlUTp2wD6uojwixye8ZB/k= diff --git a/integration-tests/load/go.mod b/integration-tests/load/go.mod index 9e46994128f..ea42ee341cb 100644 --- a/integration-tests/load/go.mod +++ b/integration-tests/load/go.mod @@ -490,8 +490,8 @@ require ( github.com/smartcontractkit/chainlink-protos/svr v1.1.0 // indirect github.com/smartcontractkit/chainlink-protos/workflows/go v0.0.0-20251025021331-aa7746850cc4 // indirect github.com/smartcontractkit/chainlink-solana v1.1.2-0.20251105160343-b77843a1daf4 // indirect - github.com/smartcontractkit/chainlink-sui v0.0.0-20251105220250-f8d7f06e3b8d // indirect - github.com/smartcontractkit/chainlink-sui/deployment v0.0.0-20251105220250-f8d7f06e3b8d // indirect + github.com/smartcontractkit/chainlink-sui v0.0.0-20251114141003-d4fabe3c5586 // indirect + github.com/smartcontractkit/chainlink-sui/deployment v0.0.0-20251114141003-d4fabe3c5586 // indirect github.com/smartcontractkit/chainlink-testing-framework/lib/grafana v1.51.0 // indirect github.com/smartcontractkit/chainlink-testing-framework/parrot v0.6.2 // indirect github.com/smartcontractkit/chainlink-testing-framework/sentinel v0.1.2 // indirect diff --git a/integration-tests/load/go.sum b/integration-tests/load/go.sum index 2edb241c06e..6d579cc8a4b 100644 --- a/integration-tests/load/go.sum +++ b/integration-tests/load/go.sum @@ -1608,10 +1608,10 @@ github.com/smartcontractkit/chainlink-protos/workflows/go v0.0.0-20251025021331- github.com/smartcontractkit/chainlink-protos/workflows/go v0.0.0-20251025021331-aa7746850cc4/go.mod h1:HIpGvF6nKCdtZ30xhdkKWGM9+4Z4CVqJH8ZBL1FTEiY= github.com/smartcontractkit/chainlink-solana v1.1.2-0.20251105160343-b77843a1daf4 h1:XYuSAv2hVwAegkJQsrnsQgl3eMHEFSYkA6+lyd7UdWU= github.com/smartcontractkit/chainlink-solana v1.1.2-0.20251105160343-b77843a1daf4/go.mod h1:BqK7sKZUfX4sVkDSEMnj1Vnagiqh+bt1nARpEFruP40= -github.com/smartcontractkit/chainlink-sui v0.0.0-20251105220250-f8d7f06e3b8d h1:Bpp6fmkuzVNIQOE5qtzn8J1jzpdW+7hxGBu52qTPVZs= -github.com/smartcontractkit/chainlink-sui v0.0.0-20251105220250-f8d7f06e3b8d/go.mod h1:VlyZhVw+a93Sk8rVHOIH6tpiXrMzuWLZrjs1eTIExW8= -github.com/smartcontractkit/chainlink-sui/deployment v0.0.0-20251105220250-f8d7f06e3b8d h1:OF71xP01Se6e03tXZ158s2Dx4MnJW66L1LSSl2TSGao= -github.com/smartcontractkit/chainlink-sui/deployment v0.0.0-20251105220250-f8d7f06e3b8d/go.mod h1:xKHyB3k3B5Au1Bvn6i3OmYkvbt0CDsuXXQBnC+ci0Ts= +github.com/smartcontractkit/chainlink-sui v0.0.0-20251114141003-d4fabe3c5586 h1:XiPdxF1OGGTakmDv5V9PZNv10HmnF+uYjYeY5H+Rb2o= +github.com/smartcontractkit/chainlink-sui v0.0.0-20251114141003-d4fabe3c5586/go.mod h1:qSxg5KpKoLfiF52qcBTfJtoiRh0jYrpSlDVpHDN7Kmo= +github.com/smartcontractkit/chainlink-sui/deployment v0.0.0-20251114141003-d4fabe3c5586 h1:IpZLp2YZDFn0DwpPBZvpssViW03tGACZfSlqg9o1Sm4= +github.com/smartcontractkit/chainlink-sui/deployment v0.0.0-20251114141003-d4fabe3c5586/go.mod h1:ROpZpZBHs3kyXARYu+34Ttt2RBnABJE23e9VW5kzhI4= github.com/smartcontractkit/chainlink-testing-framework/framework v0.11.7 h1:jVlRG9GTpDGYtP0iabxHZW4s3pXdpN4/lTgZEdE64P4= github.com/smartcontractkit/chainlink-testing-framework/framework v0.11.7/go.mod h1:BTUmWJGbOQtMdDW8cy4fu0wLoj8tKFQiLR7SE+OyTXU= github.com/smartcontractkit/chainlink-testing-framework/havoc v1.50.5 h1:S5HND0EDtlA+xp2E+mD11DlUTp2wD6uojwixye8ZB/k= diff --git a/integration-tests/smoke/ccip/ccip_sui_token_transfer_test.go b/integration-tests/smoke/ccip/ccip_sui_token_transfer_test.go index b78f859c737..e0524674e91 100644 --- a/integration-tests/smoke/ccip/ccip_sui_token_transfer_test.go +++ b/integration-tests/smoke/ccip/ccip_sui_token_transfer_test.go @@ -42,7 +42,159 @@ func assertSuiSourceRevertExpectedError(t *testing.T, err error, execRevertError require.Contains(t, err.Error(), execRevertCauseErrorMsg) } -func Test_CCIPTokenTransfer_Sui2EVM(t *testing.T) { +func Test_CCIPTokenTransfer_Sui2EVM_ManagedTokenPool(t *testing.T) { + ctx := testhelpers.Context(t) + e, _, _ := testsetups.NewIntegrationEnvironment( + t, + testhelpers.WithNumOfChains(2), + testhelpers.WithSuiChains(1), + ) + + evmChainSelectors := e.Env.BlockChains.ListChainSelectors(chain.WithFamily(chain_selectors.FamilyEVM)) + suiChainSelectors := e.Env.BlockChains.ListChainSelectors(chain.WithFamily(chain_selectors.FamilySui)) + + fmt.Println("EVM: ", evmChainSelectors[0]) + fmt.Println("Sui: ", suiChainSelectors[0]) + + sourceChain := suiChainSelectors[0] + destChain := evmChainSelectors[0] + + state, err := stateview.LoadOnchainState(e.Env) + require.NoError(t, err) + + t.Log("Source chain (Sui): ", sourceChain, "Dest chain (EVM): ", destChain) + + err = testhelpers.AddLaneWithDefaultPricesAndFeeQuoterConfig(t, &e, state, sourceChain, destChain, false) + require.NoError(t, err) + + _, err = e.Env.BlockChains.SuiChains()[sourceChain].Signer.GetAddress() + require.NoError(t, err) + + // SUI FeeToken + // mint link token to use as feeToken + _, feeTokenOutput, err := commoncs.ApplyChangesets(t, e.Env, []commoncs.ConfiguredChangeSet{ + commoncs.Configure(sui_cs.MintLinkToken{}, sui_cs.MintLinkTokenConfig{ + ChainSelector: sourceChain, + TokenPackageId: state.SuiChains[sourceChain].LinkTokenAddress, + TreasuryCapId: state.SuiChains[sourceChain].LinkTokenTreasuryCapId, + Amount: 1000000000000, // 1000Link with 1e9, + }), + }) + require.NoError(t, err) + + rawOutput := feeTokenOutput[0].Reports[0] + outputMap, ok := rawOutput.Output.(sui_ops.OpTxResult[linkops.MintLinkTokenOutput]) + require.True(t, ok) + + // SUI TransferToken + // mint link token to use as Transfer Token + _, transferTokenOutput, err := commoncs.ApplyChangesets(t, e.Env, []commoncs.ConfiguredChangeSet{ + commoncs.Configure(sui_cs.MintLinkToken{}, sui_cs.MintLinkTokenConfig{ + ChainSelector: sourceChain, + TokenPackageId: state.SuiChains[sourceChain].LinkTokenAddress, + TreasuryCapId: state.SuiChains[sourceChain].LinkTokenTreasuryCapId, + Amount: 1000000000, // 1Link with 1e9 + }), + }) + require.NoError(t, err) + + rawOutputTransferToken := transferTokenOutput[0].Reports[0] + outputMapTransferToken, ok := rawOutputTransferToken.Output.(sui_ops.OpTxResult[linkops.MintLinkTokenOutput]) + require.True(t, ok) + + // mint more token + _, transferTokenOutput1, err := commoncs.ApplyChangesets(t, e.Env, []commoncs.ConfiguredChangeSet{ + commoncs.Configure(sui_cs.MintLinkToken{}, sui_cs.MintLinkTokenConfig{ + ChainSelector: sourceChain, + TokenPackageId: state.SuiChains[sourceChain].LinkTokenAddress, + TreasuryCapId: state.SuiChains[sourceChain].LinkTokenTreasuryCapId, + Amount: 2000000000, // 1Link with 1e9 + }), + }) + require.NoError(t, err) + + rawOutputTransferToken1 := transferTokenOutput1[0].Reports[0] + outputMapTransferToken1, ok := rawOutputTransferToken1.Output.(sui_ops.OpTxResult[linkops.MintLinkTokenOutput]) + require.True(t, ok) + + // Receiver Address + ccipReceiverAddress := state.Chains[destChain].Receiver.Address() + + // Token Pool setup on both SUI and EVM + updatedEnv, evmToken, _, err := testhelpers.HandleTokenAndManagedTokenPoolDeploymentForSUI(e.Env, sourceChain, destChain) // SourceChain = SUI, destChain = EVM + require.NoError(t, err) + e.Env = updatedEnv + + tcs := []testhelpers.TestTransferRequest{ + { + Name: "Send token to EOA", + SourceChain: sourceChain, + DestChain: destChain, + Receiver: updatedEnv.BlockChains.EVMChains()[destChain].DeployerKey.From.Bytes(), // internally left padded to 32byte + ExpectedStatus: testhelpers.EXECUTION_STATE_SUCCESS, + FeeToken: outputMap.Objects.MintedLinkTokenObjectId, + SuiTokens: []testhelpers.SuiTokenAmount{ + { + TokenPoolType: sui_deployment.TokenPoolTypeManaged, + Token: outputMapTransferToken.Objects.MintedLinkTokenObjectId, + Amount: 1000000000, // Send 1Link to EVM + }, + }, + ExpectedTokenBalances: []testhelpers.ExpectedBalance{ + { + Token: evmToken.Address().Bytes(), + Amount: big.NewInt(1e18), + }, + }, + }, + { + Name: "Send token to Receiver", + SourceChain: sourceChain, + DestChain: destChain, + Receiver: ccipReceiverAddress.Bytes(), // internally left padded to 32byte + ExpectedStatus: testhelpers.EXECUTION_STATE_SUCCESS, + SuiTokens: []testhelpers.SuiTokenAmount{ + { + TokenPoolType: sui_deployment.TokenPoolTypeManaged, + Token: outputMapTransferToken1.Objects.MintedLinkTokenObjectId, + Amount: 2000000000, // Send 1Link to EVM + }, + }, + FeeToken: outputMap.Objects.MintedLinkTokenObjectId, + ExpectedTokenBalances: []testhelpers.ExpectedBalance{ + { + Token: evmToken.Address().Bytes(), + Amount: big.NewInt(2e18), + }, + }, + }, + } + + startBlocks, expectedSeqNums, expectedExecutionStates, expectedTokenBalances := testhelpers.TransferMultiple(ctx, t, updatedEnv, state, tcs) + + err = testhelpers.ConfirmMultipleCommits( + t, + updatedEnv, + state, + startBlocks, + false, + expectedSeqNums, + ) + require.NoError(t, err) + + execStates := testhelpers.ConfirmExecWithSeqNrsForAll( + t, + updatedEnv, + state, + testhelpers.SeqNumberRangeToSlice(expectedSeqNums), + startBlocks, + ) + require.Equal(t, expectedExecutionStates, execStates) + + testhelpers.WaitForTokenBalances(ctx, t, updatedEnv, expectedTokenBalances) +} + +func Test_CCIPTokenTransfer_Sui2EVM_BurnMintTokenPool(t *testing.T) { ctx := testhelpers.Context(t) e, _, _ := testsetups.NewIntegrationEnvironment( t, @@ -135,7 +287,7 @@ func Test_CCIPTokenTransfer_Sui2EVM(t *testing.T) { ccipReceiverAddress := state.Chains[destChain].Receiver.Address() // Token Pool setup on both SUI and EVM - updatedEnv, evmToken, _, err := testhelpers.HandleTokenAndPoolDeploymentForSUI(e.Env, sourceChain, destChain) // SourceChain = SUI, destChain = EVM + updatedEnv, evmToken, _, err := testhelpers.HandleTokenAndBurnMintTokenPoolDeploymentForSUI(e.Env, sourceChain, destChain) // SourceChain = SUI, destChain = EVM require.NoError(t, err) e.Env = updatedEnv @@ -149,8 +301,9 @@ func Test_CCIPTokenTransfer_Sui2EVM(t *testing.T) { FeeToken: outputMap.Objects.MintedLinkTokenObjectId, SuiTokens: []testhelpers.SuiTokenAmount{ { - Token: outputMapTransferToken.Objects.MintedLinkTokenObjectId, - Amount: 1000000000, // Send 1Link to EVM + TokenPoolType: sui_deployment.TokenPoolTypeBurnMint, + Token: outputMapTransferToken.Objects.MintedLinkTokenObjectId, + Amount: 1000000000, // Send 1Link to EVM }, }, ExpectedTokenBalances: []testhelpers.ExpectedBalance{ @@ -168,8 +321,9 @@ func Test_CCIPTokenTransfer_Sui2EVM(t *testing.T) { ExpectedStatus: testhelpers.EXECUTION_STATE_SUCCESS, SuiTokens: []testhelpers.SuiTokenAmount{ { - Token: outputMapTransferToken1.Objects.MintedLinkTokenObjectId, - Amount: 2000000000, // Send 1Link to EVM + TokenPoolType: sui_deployment.TokenPoolTypeBurnMint, + Token: outputMapTransferToken1.Objects.MintedLinkTokenObjectId, + Amount: 2000000000, // Send 1Link to EVM }, }, FeeToken: outputMap.Objects.MintedLinkTokenObjectId, @@ -225,8 +379,9 @@ func Test_CCIPTokenTransfer_Sui2EVM(t *testing.T) { ExtraArgs: testhelpers.MakeBCSEVMExtraArgsV2(big.NewInt(int64(suiFeeQuoterDestChainConfig.MaxPerMsgGasLimit)), false), TokenAmounts: []testhelpers.SuiTokenAmount{ { - Token: "0x0", - Amount: 1e9, + TokenPoolType: sui_deployment.TokenPoolTypeBurnMint, + Token: "0x0", + Amount: 1e9, }, }} @@ -250,8 +405,9 @@ func Test_CCIPTokenTransfer_Sui2EVM(t *testing.T) { ExtraArgs: testhelpers.MakeBCSEVMExtraArgsV2(big.NewInt(int64(suiFeeQuoterDestChainConfig.MaxPerMsgGasLimit+10)), false), TokenAmounts: []testhelpers.SuiTokenAmount{ { - Token: outputMapTransferToken2.Objects.MintedLinkTokenObjectId, - Amount: 1500000000, + TokenPoolType: sui_deployment.TokenPoolTypeBurnMint, + Token: outputMapTransferToken2.Objects.MintedLinkTokenObjectId, + Amount: 1500000000, }, }} @@ -269,7 +425,7 @@ func Test_CCIPTokenTransfer_Sui2EVM(t *testing.T) { } -func Test_CCIPTokenTransfer_EVM2SUI(t *testing.T) { +func Test_CCIPTokenTransfer_EVM2SUI_BurnMintTokenPool(t *testing.T) { ctx := testhelpers.Context(t) e, _, _ := testsetups.NewIntegrationEnvironment( t, @@ -321,7 +477,7 @@ func Test_CCIPTokenTransfer_EVM2SUI(t *testing.T) { copy(suiAddr[:], addrBytes) // Token Pool setup on both SUI and EVM - updatedEnv, evmToken, _, err := testhelpers.HandleTokenAndPoolDeploymentForSUI(e.Env, destChain, sourceChain) // sourceChain=EVM, destChain=SUI + updatedEnv, evmToken, _, err := testhelpers.HandleTokenAndBurnMintTokenPoolDeploymentForSUI(e.Env, destChain, sourceChain) // sourceChain=EVM, destChain=SUI require.NoError(t, err) state, err = stateview.LoadOnchainState(e.Env) @@ -518,7 +674,7 @@ func Test_CCIPTokenTransfer_EVM2SUI(t *testing.T) { }) } -func Test_CCIPPureTokenTransfer_EVM2SUI(t *testing.T) { +func Test_CCIPPureTokenTransfer_EVM2SUI_BurnMintTokenPool(t *testing.T) { ctx := testhelpers.Context(t) e, _, _ := testsetups.NewIntegrationEnvironment( t, @@ -570,7 +726,7 @@ func Test_CCIPPureTokenTransfer_EVM2SUI(t *testing.T) { copy(suiAddr[:], addrBytes) // Token Pool setup on both SUI and EVM - updatedEnv, evmToken, _, err := testhelpers.HandleTokenAndPoolDeploymentForSUI(e.Env, destChain, sourceChain) // sourceChain=EVM, destChain=SUI + updatedEnv, evmToken, _, err := testhelpers.HandleTokenAndBurnMintTokenPoolDeploymentForSUI(e.Env, destChain, sourceChain) // sourceChain=EVM, destChain=SUI require.NoError(t, err) state, err = stateview.LoadOnchainState(e.Env) @@ -648,7 +804,7 @@ func Test_CCIPPureTokenTransfer_EVM2SUI(t *testing.T) { testhelpers.WaitForTokenBalances(ctx, t, e.Env, expectedTokenBalances) } -func Test_CCIPProgrammableTokenTransfer_EVM2SUI(t *testing.T) { +func Test_CCIPProgrammableTokenTransfer_EVM2SUI_BurnMintTokenPool(t *testing.T) { ctx := testhelpers.Context(t) e, _, _ := testsetups.NewIntegrationEnvironment( t, @@ -700,7 +856,7 @@ func Test_CCIPProgrammableTokenTransfer_EVM2SUI(t *testing.T) { copy(suiAddr[:], addrBytes) // Token Pool setup on both SUI and EVM - updatedEnv, evmToken, _, err := testhelpers.HandleTokenAndPoolDeploymentForSUI(e.Env, destChain, sourceChain) // sourceChain=EVM, destChain=SUI + updatedEnv, evmToken, _, err := testhelpers.HandleTokenAndBurnMintTokenPoolDeploymentForSUI(e.Env, destChain, sourceChain) // sourceChain=EVM, destChain=SUI require.NoError(t, err) state, err = stateview.LoadOnchainState(e.Env) @@ -813,7 +969,7 @@ func Test_CCIPProgrammableTokenTransfer_EVM2SUI(t *testing.T) { testhelpers.WaitForTokenBalances(ctx, t, e.Env, expectedTokenBalances) } -func Test_CCIPZeroGasLimitTokenTransfer_EVM2SUI(t *testing.T) { +func Test_CCIPZeroGasLimitTokenTransfer_EVM2SUI_BurnMintTokenPool(t *testing.T) { ctx := testhelpers.Context(t) e, _, _ := testsetups.NewIntegrationEnvironment( t, @@ -865,7 +1021,7 @@ func Test_CCIPZeroGasLimitTokenTransfer_EVM2SUI(t *testing.T) { copy(suiAddr[:], addrBytes) // Token Pool setup on both SUI and EVM - updatedEnv, evmToken, _, err := testhelpers.HandleTokenAndPoolDeploymentForSUI(e.Env, destChain, sourceChain) // sourceChain=EVM, destChain=SUI + updatedEnv, evmToken, _, err := testhelpers.HandleTokenAndBurnMintTokenPoolDeploymentForSUI(e.Env, destChain, sourceChain) // sourceChain=EVM, destChain=SUI require.NoError(t, err) state, err = stateview.LoadOnchainState(e.Env) diff --git a/plugins/plugins.public.yaml b/plugins/plugins.public.yaml index d55e6bac2fe..8314e403e1b 100644 --- a/plugins/plugins.public.yaml +++ b/plugins/plugins.public.yaml @@ -15,7 +15,7 @@ plugins: sui: - moduleURI: "github.com/smartcontractkit/chainlink-sui" - gitRef: "v0.0.0-20251105220250-f8d7f06e3b8d" + gitRef: "v0.0.0-20251114141003-d4fabe3c5586" installPath: "./relayer/cmd/chainlink-sui" cosmos: diff --git a/system-tests/lib/go.mod b/system-tests/lib/go.mod index 780fec4dc6e..c861aa040f9 100644 --- a/system-tests/lib/go.mod +++ b/system-tests/lib/go.mod @@ -462,8 +462,8 @@ require ( github.com/smartcontractkit/chainlink-protos/storage-service v0.3.0 // indirect github.com/smartcontractkit/chainlink-protos/svr v1.1.0 // indirect github.com/smartcontractkit/chainlink-protos/workflows/go v0.0.0-20251025021331-aa7746850cc4 // indirect - github.com/smartcontractkit/chainlink-sui v0.0.0-20251105220250-f8d7f06e3b8d // indirect - github.com/smartcontractkit/chainlink-sui/deployment v0.0.0-20251105220250-f8d7f06e3b8d // indirect + github.com/smartcontractkit/chainlink-sui v0.0.0-20251114141003-d4fabe3c5586 // indirect + github.com/smartcontractkit/chainlink-sui/deployment v0.0.0-20251114141003-d4fabe3c5586 // indirect github.com/smartcontractkit/chainlink-testing-framework/parrot v0.6.2 // indirect github.com/smartcontractkit/chainlink-ton v0.0.0-20251113211653-082bd18d77bb // indirect github.com/smartcontractkit/chainlink-ton/deployment v0.0.0-20251113211653-082bd18d77bb // indirect diff --git a/system-tests/lib/go.sum b/system-tests/lib/go.sum index d9ff2067159..49960ca41ec 100644 --- a/system-tests/lib/go.sum +++ b/system-tests/lib/go.sum @@ -1626,10 +1626,10 @@ github.com/smartcontractkit/chainlink-protos/workflows/go v0.0.0-20251025021331- github.com/smartcontractkit/chainlink-protos/workflows/go v0.0.0-20251025021331-aa7746850cc4/go.mod h1:HIpGvF6nKCdtZ30xhdkKWGM9+4Z4CVqJH8ZBL1FTEiY= github.com/smartcontractkit/chainlink-solana v1.1.2-0.20251105160343-b77843a1daf4 h1:XYuSAv2hVwAegkJQsrnsQgl3eMHEFSYkA6+lyd7UdWU= github.com/smartcontractkit/chainlink-solana v1.1.2-0.20251105160343-b77843a1daf4/go.mod h1:BqK7sKZUfX4sVkDSEMnj1Vnagiqh+bt1nARpEFruP40= -github.com/smartcontractkit/chainlink-sui v0.0.0-20251105220250-f8d7f06e3b8d h1:Bpp6fmkuzVNIQOE5qtzn8J1jzpdW+7hxGBu52qTPVZs= -github.com/smartcontractkit/chainlink-sui v0.0.0-20251105220250-f8d7f06e3b8d/go.mod h1:VlyZhVw+a93Sk8rVHOIH6tpiXrMzuWLZrjs1eTIExW8= -github.com/smartcontractkit/chainlink-sui/deployment v0.0.0-20251105220250-f8d7f06e3b8d h1:OF71xP01Se6e03tXZ158s2Dx4MnJW66L1LSSl2TSGao= -github.com/smartcontractkit/chainlink-sui/deployment v0.0.0-20251105220250-f8d7f06e3b8d/go.mod h1:xKHyB3k3B5Au1Bvn6i3OmYkvbt0CDsuXXQBnC+ci0Ts= +github.com/smartcontractkit/chainlink-sui v0.0.0-20251114141003-d4fabe3c5586 h1:XiPdxF1OGGTakmDv5V9PZNv10HmnF+uYjYeY5H+Rb2o= +github.com/smartcontractkit/chainlink-sui v0.0.0-20251114141003-d4fabe3c5586/go.mod h1:qSxg5KpKoLfiF52qcBTfJtoiRh0jYrpSlDVpHDN7Kmo= +github.com/smartcontractkit/chainlink-sui/deployment v0.0.0-20251114141003-d4fabe3c5586 h1:IpZLp2YZDFn0DwpPBZvpssViW03tGACZfSlqg9o1Sm4= +github.com/smartcontractkit/chainlink-sui/deployment v0.0.0-20251114141003-d4fabe3c5586/go.mod h1:ROpZpZBHs3kyXARYu+34Ttt2RBnABJE23e9VW5kzhI4= github.com/smartcontractkit/chainlink-testing-framework/framework v0.11.8 h1:0d7CVHUsG3Lt4LNIMt7/GQLjzrWMpA+KtUC/9gZFeAQ= github.com/smartcontractkit/chainlink-testing-framework/framework v0.11.8/go.mod h1:BTUmWJGbOQtMdDW8cy4fu0wLoj8tKFQiLR7SE+OyTXU= github.com/smartcontractkit/chainlink-testing-framework/framework/components/dockercompose v0.1.15 h1:usf6YCNmSO8R1/rU28wUfIdp7zXlqGGOAttXW5mgkXU= diff --git a/system-tests/tests/go.mod b/system-tests/tests/go.mod index f00066fff04..2fa8a4663f1 100644 --- a/system-tests/tests/go.mod +++ b/system-tests/tests/go.mod @@ -562,8 +562,8 @@ require ( github.com/smartcontractkit/chainlink-protos/rmn/v1.6/go v0.0.0-20250131130834-15e0d4cde2a6 // indirect github.com/smartcontractkit/chainlink-protos/storage-service v0.3.0 // indirect github.com/smartcontractkit/chainlink-protos/svr v1.1.0 // indirect - github.com/smartcontractkit/chainlink-sui v0.0.0-20251105220250-f8d7f06e3b8d // indirect - github.com/smartcontractkit/chainlink-sui/deployment v0.0.0-20251105220250-f8d7f06e3b8d // indirect + github.com/smartcontractkit/chainlink-sui v0.0.0-20251114141003-d4fabe3c5586 // indirect + github.com/smartcontractkit/chainlink-sui/deployment v0.0.0-20251114141003-d4fabe3c5586 // indirect github.com/smartcontractkit/chainlink-testing-framework/framework/components/dockercompose v0.1.15 // indirect github.com/smartcontractkit/chainlink-testing-framework/lib/grafana v1.50.0 // indirect github.com/smartcontractkit/chainlink-testing-framework/parrot v0.6.2 // indirect diff --git a/system-tests/tests/go.sum b/system-tests/tests/go.sum index 0678852c2d6..0fa771c1226 100644 --- a/system-tests/tests/go.sum +++ b/system-tests/tests/go.sum @@ -1831,10 +1831,10 @@ github.com/smartcontractkit/chainlink-protos/workflows/go v0.0.0-20251025021331- github.com/smartcontractkit/chainlink-protos/workflows/go v0.0.0-20251025021331-aa7746850cc4/go.mod h1:HIpGvF6nKCdtZ30xhdkKWGM9+4Z4CVqJH8ZBL1FTEiY= github.com/smartcontractkit/chainlink-solana v1.1.2-0.20251105160343-b77843a1daf4 h1:XYuSAv2hVwAegkJQsrnsQgl3eMHEFSYkA6+lyd7UdWU= github.com/smartcontractkit/chainlink-solana v1.1.2-0.20251105160343-b77843a1daf4/go.mod h1:BqK7sKZUfX4sVkDSEMnj1Vnagiqh+bt1nARpEFruP40= -github.com/smartcontractkit/chainlink-sui v0.0.0-20251105220250-f8d7f06e3b8d h1:Bpp6fmkuzVNIQOE5qtzn8J1jzpdW+7hxGBu52qTPVZs= -github.com/smartcontractkit/chainlink-sui v0.0.0-20251105220250-f8d7f06e3b8d/go.mod h1:VlyZhVw+a93Sk8rVHOIH6tpiXrMzuWLZrjs1eTIExW8= -github.com/smartcontractkit/chainlink-sui/deployment v0.0.0-20251105220250-f8d7f06e3b8d h1:OF71xP01Se6e03tXZ158s2Dx4MnJW66L1LSSl2TSGao= -github.com/smartcontractkit/chainlink-sui/deployment v0.0.0-20251105220250-f8d7f06e3b8d/go.mod h1:xKHyB3k3B5Au1Bvn6i3OmYkvbt0CDsuXXQBnC+ci0Ts= +github.com/smartcontractkit/chainlink-sui v0.0.0-20251114141003-d4fabe3c5586 h1:XiPdxF1OGGTakmDv5V9PZNv10HmnF+uYjYeY5H+Rb2o= +github.com/smartcontractkit/chainlink-sui v0.0.0-20251114141003-d4fabe3c5586/go.mod h1:qSxg5KpKoLfiF52qcBTfJtoiRh0jYrpSlDVpHDN7Kmo= +github.com/smartcontractkit/chainlink-sui/deployment v0.0.0-20251114141003-d4fabe3c5586 h1:IpZLp2YZDFn0DwpPBZvpssViW03tGACZfSlqg9o1Sm4= +github.com/smartcontractkit/chainlink-sui/deployment v0.0.0-20251114141003-d4fabe3c5586/go.mod h1:ROpZpZBHs3kyXARYu+34Ttt2RBnABJE23e9VW5kzhI4= github.com/smartcontractkit/chainlink-testing-framework/framework v0.11.8 h1:0d7CVHUsG3Lt4LNIMt7/GQLjzrWMpA+KtUC/9gZFeAQ= github.com/smartcontractkit/chainlink-testing-framework/framework v0.11.8/go.mod h1:BTUmWJGbOQtMdDW8cy4fu0wLoj8tKFQiLR7SE+OyTXU= github.com/smartcontractkit/chainlink-testing-framework/framework/components/dockercompose v0.1.15 h1:usf6YCNmSO8R1/rU28wUfIdp7zXlqGGOAttXW5mgkXU=