From ea3991b06a081e16d286ad2bcc1dbb501714cb9a Mon Sep 17 00:00:00 2001 From: nhpd Date: Wed, 7 Aug 2024 15:05:39 +0400 Subject: [PATCH] add channel ordering to register ICA --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- contracts/neutron_interchain_txs/src/contract.rs | 7 +++++-- contracts/neutron_interchain_txs/src/msg.rs | 6 ++++-- 4 files changed, 12 insertions(+), 7 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index f4a0188..4ce891d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1131,7 +1131,7 @@ dependencies = [ [[package]] name = "neutron-sdk" version = "0.11.0" -source = "git+https://github.com/neutron-org/neutron-sdk?branch=feat/remove-stargate#afe11ec1f30f189f0ea11c2fea3badd32aa1bbf9" +source = "git+https://github.com/neutron-org/neutron-sdk?branch=feat/unordered-ica#f2faefb98aaebe853c7983bd652f9255c0b842c9" dependencies = [ "bech32 0.9.1", "chrono", @@ -1155,7 +1155,7 @@ dependencies = [ [[package]] name = "neutron-std-derive" version = "0.20.1" -source = "git+https://github.com/neutron-org/neutron-sdk?branch=feat/remove-stargate#afe11ec1f30f189f0ea11c2fea3badd32aa1bbf9" +source = "git+https://github.com/neutron-org/neutron-sdk?branch=feat/unordered-ica#f2faefb98aaebe853c7983bd652f9255c0b842c9" dependencies = [ "itertools 0.10.5", "proc-macro2", diff --git a/Cargo.toml b/Cargo.toml index 82e0776..4321d2a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -13,7 +13,7 @@ incremental = false overflow-checks = true [workspace.dependencies] -neutron-sdk = { package = "neutron-sdk", git = "https://github.com/neutron-org/neutron-sdk", branch = "feat/remove-stargate" } +neutron-sdk = { package = "neutron-sdk", git = "https://github.com/neutron-org/neutron-sdk", branch = "feat/unordered-ica" } prost = "0.12.4" prost-types = "0.12.4" cosmos-sdk-proto = { version = "0.20.0", default-features = false } diff --git a/contracts/neutron_interchain_txs/src/contract.rs b/contracts/neutron_interchain_txs/src/contract.rs index 20ff287..04b6477 100644 --- a/contracts/neutron_interchain_txs/src/contract.rs +++ b/contracts/neutron_interchain_txs/src/contract.rs @@ -34,7 +34,7 @@ use crate::integration_tests_mock_handlers::{ use crate::msg::{ AcknowledgementResultsResponse, ExecuteMsg, InstantiateMsg, MigrateMsg, QueryMsg, }; -use neutron_sdk::bindings::msg::{IbcFee, NeutronMsg}; +use neutron_sdk::bindings::msg::{ChannelOrdering, IbcFee, NeutronMsg}; use neutron_sdk::bindings::query::{NeutronQuery, QueryInterchainAccountAddressResponse}; use neutron_sdk::bindings::types::ProtobufAny; use neutron_sdk::interchain_txs::helpers::{decode_message_response, get_port_id}; @@ -108,7 +108,8 @@ pub fn execute( ExecuteMsg::Register { connection_id, interchain_account_id, - } => execute_register_ica(deps, env, connection_id, interchain_account_id), + ordering, + } => execute_register_ica(deps, env, connection_id, interchain_account_id, ordering), ExecuteMsg::Delegate { validator, interchain_account_id, @@ -307,12 +308,14 @@ fn execute_register_ica( env: Env, connection_id: String, interchain_account_id: String, + ordering: Option, ) -> StdResult> { let register_fee = REGISTER_FEE.load(deps.storage)?; let register = NeutronMsg::register_interchain_account( connection_id, interchain_account_id.clone(), Option::from(register_fee), + ordering, ); let key = get_port_id(env.contract.address.as_str(), &interchain_account_id); INTERCHAIN_ACCOUNTS.save(deps.storage, key, &None)?; diff --git a/contracts/neutron_interchain_txs/src/msg.rs b/contracts/neutron_interchain_txs/src/msg.rs index 298ba7b..a6ed4b0 100644 --- a/contracts/neutron_interchain_txs/src/msg.rs +++ b/contracts/neutron_interchain_txs/src/msg.rs @@ -1,5 +1,6 @@ use crate::storage::{AcknowledgementResult, IntegrationTestsSudoFailureMock}; use cosmwasm_std::Uint128; +use neutron_sdk::bindings::msg::ChannelOrdering; use schemars::JsonSchema; use serde::{Deserialize, Serialize}; @@ -38,6 +39,7 @@ pub enum ExecuteMsg { Register { connection_id: String, interchain_account_id: String, + ordering: Option, }, SetFees { denom: String, @@ -76,11 +78,11 @@ pub enum ExecuteMsg { state: IntegrationTestsSudoFailureMock, }, /// Used only in integration tests framework to simulate failures. - /// After executing this message, any sudo call to the contract will result in an submessage + /// After executing this message, any sudo call to the contract will result in a submessage /// processing error. IntegrationTestsSetSudoSubmsgFailureMock {}, /// Used only in integration tests framework to simulate failures. - /// After executing this message, any sudo call to the contract will result in an submessage + /// After executing this message, any sudo call to the contract will result in a submessage /// reply processing error. IntegrationTestsSetSudoSubmsgReplyFailureMock {}, /// Used only in integration tests framework to simulate failures.