diff --git a/Cargo.lock b/Cargo.lock index 2c1dd3425..7a43645a2 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -408,13 +408,13 @@ dependencies = [ "andromeda-lockdrop", "andromeda-marketplace", "andromeda-merkle-airdrop", + "andromeda-osmosis-socket", "andromeda-point", "andromeda-primitive", "andromeda-rate-limiting-withdrawals", "andromeda-rates", "andromeda-shunting", "andromeda-socket-astroport", - "andromeda-socket-osmosis", "andromeda-splitter", "andromeda-std", "andromeda-string-storage", @@ -751,6 +751,28 @@ dependencies = [ "serde", ] +[[package]] +name = "andromeda-osmosis-socket" +version = "0.1.2-b.6" +dependencies = [ + "andromeda-socket", + "andromeda-std", + "andromeda-testing", + "cosmwasm-schema 2.2.2", + "cosmwasm-std 2.2.2", + "cw-multi-test", + "cw-orch", + "cw-orch-daemon 0.24.6", + "cw-storage-plus 2.0.0", + "cw-utils 2.0.0", + "cw2 2.0.0", + "cw20 1.1.2", + "osmosis-std", + "schemars 0.8.22", + "serde", + "thiserror 2.0.16", +] + [[package]] name = "andromeda-osmosis-token-factory" version = "0.1.1-b.5" @@ -912,28 +934,6 @@ dependencies = [ "thiserror 2.0.16", ] -[[package]] -name = "andromeda-socket-osmosis" -version = "0.1.2-b.6" -dependencies = [ - "andromeda-socket", - "andromeda-std", - "andromeda-testing", - "cosmwasm-schema 2.2.2", - "cosmwasm-std 2.2.2", - "cw-multi-test", - "cw-orch", - "cw-orch-daemon 0.24.6", - "cw-storage-plus 2.0.0", - "cw-utils 2.0.0", - "cw2 2.0.0", - "cw20 1.1.2", - "osmosis-std", - "schemars 0.8.22", - "serde", - "thiserror 2.0.16", -] - [[package]] name = "andromeda-splitter" version = "2.3.1-b.6" @@ -3336,10 +3336,10 @@ dependencies = [ "andromeda-fungible-tokens", "andromeda-kernel", "andromeda-non-fungible-tokens", + "andromeda-osmosis-socket", "andromeda-osmosis-token-factory", "andromeda-socket", "andromeda-socket-astroport", - "andromeda-socket-osmosis", "andromeda-splitter", "andromeda-std", "andromeda-testing-e2e", @@ -6725,13 +6725,13 @@ dependencies = [ "andromeda-math", "andromeda-modules", "andromeda-non-fungible-tokens", + "andromeda-osmosis-socket", "andromeda-osmosis-token-factory", "andromeda-primitive", "andromeda-rate-limiting-withdrawals", "andromeda-rates", "andromeda-shunting", "andromeda-socket", - "andromeda-socket-osmosis", "andromeda-splitter", "andromeda-std", "andromeda-testing", diff --git a/contracts/socket/andromeda-socket-osmosis/.cargo/config b/contracts/socket/andromeda-osmosis-socket/.cargo/config similarity index 100% rename from contracts/socket/andromeda-socket-osmosis/.cargo/config rename to contracts/socket/andromeda-osmosis-socket/.cargo/config diff --git a/contracts/socket/andromeda-socket-osmosis/Cargo.toml b/contracts/socket/andromeda-osmosis-socket/Cargo.toml similarity index 96% rename from contracts/socket/andromeda-socket-osmosis/Cargo.toml rename to contracts/socket/andromeda-osmosis-socket/Cargo.toml index 954ecc7e1..b180726db 100644 --- a/contracts/socket/andromeda-socket-osmosis/Cargo.toml +++ b/contracts/socket/andromeda-osmosis-socket/Cargo.toml @@ -1,5 +1,5 @@ [package] -name = "andromeda-socket-osmosis" +name = "andromeda-osmosis-socket" version = "0.1.2-b.6" edition = "2021" rust-version = "1.86.0" diff --git a/contracts/socket/andromeda-socket-osmosis/examples/schema.rs b/contracts/socket/andromeda-osmosis-socket/examples/schema.rs similarity index 100% rename from contracts/socket/andromeda-socket-osmosis/examples/schema.rs rename to contracts/socket/andromeda-osmosis-socket/examples/schema.rs diff --git a/contracts/socket/andromeda-socket-osmosis/src/contract.rs b/contracts/socket/andromeda-osmosis-socket/src/contract.rs similarity index 80% rename from contracts/socket/andromeda-socket-osmosis/src/contract.rs rename to contracts/socket/andromeda-osmosis-socket/src/contract.rs index 0bd3c2e0b..605807521 100644 --- a/contracts/socket/andromeda-socket-osmosis/src/contract.rs +++ b/contracts/socket/andromeda-osmosis-socket/src/contract.rs @@ -16,18 +16,19 @@ use cosmwasm_std::{ use cw2::set_contract_version; use cw_utils::one_coin; -use osmosis_std::types::osmosis::concentratedliquidity::poolmodel::concentrated::v1beta1::MsgCreateConcentratedPoolResponse; -use osmosis_std::types::osmosis::cosmwasmpool::v1beta1::MsgCreateCosmWasmPoolResponse; -use osmosis_std::types::osmosis::gamm::poolmodels::balancer::v1beta1::MsgCreateBalancerPoolResponse; -use osmosis_std::types::osmosis::gamm::poolmodels::stableswap::v1beta1::MsgCreateStableswapPoolResponse; -use osmosis_std::types::osmosis::gamm::v1beta1::MsgExitPool; use osmosis_std::types::{ cosmos::base::v1beta1::Coin as OsmosisCoin, osmosis::{ - concentratedliquidity::poolmodel::concentrated::v1beta1::MsgCreateConcentratedPool, - cosmwasmpool::v1beta1::MsgCreateCosmWasmPool, - gamm::poolmodels::{ - balancer::v1beta1::MsgCreateBalancerPool, stableswap::v1beta1::MsgCreateStableswapPool, + concentratedliquidity::poolmodel::concentrated::v1beta1::{ + MsgCreateConcentratedPool, MsgCreateConcentratedPoolResponse, + }, + cosmwasmpool::v1beta1::{MsgCreateCosmWasmPool, MsgCreateCosmWasmPoolResponse}, + gamm::{ + poolmodels::{ + balancer::v1beta1::{MsgCreateBalancerPool, MsgCreateBalancerPoolResponse}, + stableswap::v1beta1::{MsgCreateStableswapPool, MsgCreateStableswapPoolResponse}, + }, + v1beta1::MsgExitPool, }, }, }; @@ -37,7 +38,9 @@ use crate::osmosis::{ OSMOSIS_MSG_CREATE_COSM_WASM_POOL_ID, OSMOSIS_MSG_CREATE_STABLE_POOL_ID, OSMOSIS_MSG_WITHDRAW_POOL_ID, }; -use crate::state::{WithdrawState, SPENDER, WITHDRAW, WITHDRAW_STATE}; +use crate::state::{ + WithdrawState, POOLS_CREATED, POOL_INFO, SPENDER_AND_PARAMS, WITHDRAW, WITHDRAW_STATE, +}; use crate::{ osmosis::{ execute_swap_osmosis_msg, handle_osmosis_swap_reply, query_get_route, @@ -47,10 +50,11 @@ use crate::{ }; use andromeda_socket::osmosis::{ - ExecuteMsg, InstantiateMsg, Pool, QueryMsg, Slippage, SwapAmountInRoute, + ExecuteMsg, InstantiateMsg, Pool, PoolIdAndParams, PoolsCreatedResponse, QueryMsg, Slippage, + SpenderAndParams, SwapAmountInRoute, }; -const CONTRACT_NAME: &str = "crates.io:andromeda-socket-osmosis"; +const CONTRACT_NAME: &str = "crates.io:andromeda-osmosis-socket"; const CONTRACT_VERSION: &str = env!("CARGO_PKG_VERSION"); #[cfg_attr(not(feature = "library"), entry_point)] @@ -163,7 +167,13 @@ pub fn execute_create_pool( let contract_address: String = env.contract.address.into(); - SPENDER.save(deps.storage, &info.sender.to_string())?; + SPENDER_AND_PARAMS.save( + deps.storage, + &SpenderAndParams { + spender: info.sender.to_string(), + params: pool_type.clone(), + }, + )?; let msg: SubMsg = match pool_type { Pool::Balancer { @@ -288,6 +298,25 @@ pub fn query(deps: Deps, env: Env, msg: QueryMsg) -> Result encode_binary(&query_get_route(deps, from_denom, to_denom)?), + QueryMsg::PoolInfo { pool_id } => { + let pool_info = + POOL_INFO + .may_load(deps.storage, pool_id)? + .ok_or(ContractError::Std(StdError::generic_err( + "Pool info not found".to_string(), + )))?; + encode_binary(&pool_info) + } + QueryMsg::PoolsCreated { creator } => { + let pools_created = POOLS_CREATED + .load(deps.storage, creator) + .unwrap_or_default(); + let pools_created_response = PoolsCreatedResponse { + pools: pools_created, + }; + encode_binary(&pools_created_response) + } + _ => ADOContract::default().query(deps, env, msg), } } @@ -337,23 +366,48 @@ pub fn reply(deps: DepsMut, env: Env, msg: Reply) -> Result Result Result Result = Item::new("swap_router"); pub const PREV_BALANCE: Item = Item::new("prev_balance"); -pub const SPENDER: Item = Item::new("spender"); +// Spender's address and the pool's parameters +pub const SPENDER_AND_PARAMS: Item = Item::new("spender_and_params"); #[cw_serde] pub struct WithdrawState { @@ -36,5 +39,11 @@ pub struct WithdrawState { // Store withdrawal state for reply handling pub const WITHDRAW_STATE: Item = Item::new("withdraw_state"); -// pool creator to pool id (keeping for backward compatibility) -pub const WITHDRAW: Map = Map::new("withdraw"); +// pool creator to pool id and the pool's parameters (keeping for backward compatibility) +pub const WITHDRAW: Map = Map::new("withdraw"); + +// pool creator to pool id and the pool's parameters +pub const POOLS_CREATED: Map> = Map::new("pools_created"); + +// Pool id to pool info +pub const POOL_INFO: Map = Map::new("pool_info"); diff --git a/packages/andromeda-socket/src/osmosis.rs b/packages/andromeda-socket/src/osmosis.rs index 1dc344eae..fc658aeea 100644 --- a/packages/andromeda-socket/src/osmosis.rs +++ b/packages/andromeda-socket/src/osmosis.rs @@ -8,7 +8,6 @@ use osmosis_std::types::osmosis::gamm::v1beta1::{PoolAsset, PoolParams}; use osmosis_std::types::osmosis::gamm::{ poolmodels::stableswap::v1beta1::PoolParams as StablePoolParams, v1beta1::MsgExitPool, }; -use osmosis_std::types::osmosis::tokenfactory::v1beta1::QueryDenomAuthorityMetadataResponse; #[andr_instantiate] #[cw_serde] @@ -90,8 +89,29 @@ pub enum QueryMsg { from_denom: String, to_denom: String, }, - #[returns(QueryDenomAuthorityMetadataResponse)] - TokenAuthority { denom: String }, + /// Returns the pool info of the latest pool created by a certain address + #[returns(Pool)] + PoolInfo { pool_id: String }, + /// Retruns all the pools that have been created by a certain address + #[returns(PoolsCreatedResponse)] + PoolsCreated { creator: String }, +} + +#[cw_serde] +pub struct PoolsCreatedResponse { + pub pools: Vec, +} + +#[cw_serde] +pub struct SpenderAndParams { + pub spender: String, + pub params: Pool, +} + +#[cw_serde] +pub struct PoolIdAndParams { + pub pool_id: String, + pub params: Pool, } #[cw_serde] diff --git a/packages/deploy/Cargo.toml b/packages/deploy/Cargo.toml index bcdef7412..c81cc12b7 100644 --- a/packages/deploy/Cargo.toml +++ b/packages/deploy/Cargo.toml @@ -75,7 +75,7 @@ andromeda-point = { path = "../../contracts/math/andromeda-point" } # Socket Contracts andromeda-socket-astroport = { path = "../../contracts/socket/andromeda-socket-astroport" } -andromeda-socket-osmosis = { path = "../../contracts/socket/andromeda-socket-osmosis" } +andromeda-osmosis-socket = { path = "../../contracts/socket/andromeda-osmosis-socket" } andromeda-std = { workspace = true } diff --git a/packages/deploy/src/contracts.rs b/packages/deploy/src/contracts.rs index e7e4b2beb..7c3e6cd72 100644 --- a/packages/deploy/src/contracts.rs +++ b/packages/deploy/src/contracts.rs @@ -20,13 +20,13 @@ use andromeda_kernel::KernelContract; use andromeda_lockdrop::LockdropContract; use andromeda_marketplace::MarketplaceContract; use andromeda_merkle_airdrop::MerkleAirdropContract; +use andromeda_osmosis_socket::OsmosisSocketContract; use andromeda_point::PointContract; use andromeda_primitive::PrimitiveContract; use andromeda_rate_limiting_withdrawals::RateLimitingWithdrawalsContract; use andromeda_rates::RatesContract; use andromeda_shunting::ShuntingContract; use andromeda_socket_astroport::SocketAstroportContract; -use andromeda_socket_osmosis::SocketOsmosisContract; use andromeda_splitter::SplitterContract; use andromeda_std::deploy::ADOMetadata; use andromeda_string_storage::StringStorageContract; @@ -91,7 +91,7 @@ pub fn all_contracts() -> Vec { deployable!(GraphContract), deployable!(PointContract), deployable!(SocketAstroportContract), - deployable!(SocketOsmosisContract), + deployable!(OsmosisSocketContract), ] } diff --git a/tests/Cargo.toml b/tests/Cargo.toml index de702308a..727627d51 100644 --- a/tests/Cargo.toml +++ b/tests/Cargo.toml @@ -83,7 +83,7 @@ andromeda-validator-staking = { path = "../contracts/finance/andromeda-validator "testing", ] } -andromeda-socket-osmosis = { path = "../contracts/socket/andromeda-socket-osmosis", features = [ +andromeda-osmosis-socket = { path = "../contracts/socket/andromeda-osmosis-socket", features = [ "testing", ] } diff --git a/tests/e2e/Cargo.toml b/tests/e2e/Cargo.toml index a225d2c98..1e50178bf 100644 --- a/tests/e2e/Cargo.toml +++ b/tests/e2e/Cargo.toml @@ -12,7 +12,7 @@ publish = false # name = "crowdfund" # [[test]] -# name = "socket_osmosis" +# name = "osmosis_socket" # [[test]] # name = "socket_astroport" @@ -53,7 +53,7 @@ andromeda-validator-staking = { path = "../../contracts/finance/andromeda-valida "testing", ] } -andromeda-socket-osmosis = { path = "../../contracts/socket/andromeda-socket-osmosis", features = [ +andromeda-osmosis-socket = { path = "../../contracts/socket/andromeda-osmosis-socket", features = [ "testing", ] } diff --git a/tests/e2e/tests/socket_osmosis.rs b/tests/e2e/tests/osmosis_socket.rs similarity index 84% rename from tests/e2e/tests/socket_osmosis.rs rename to tests/e2e/tests/osmosis_socket.rs index c23c6779e..31d0e1905 100644 --- a/tests/e2e/tests/socket_osmosis.rs +++ b/tests/e2e/tests/osmosis_socket.rs @@ -13,7 +13,7 @@ use cw_orch::prelude::*; use cw_orch_daemon::{Daemon, DaemonBase, TxSender, Wallet}; use e2e::constants::{OSMO_5, RECIPIENT_MNEMONIC_1, RECIPIENT_MNEMONIC_2}; -use andromeda_socket_osmosis::SocketOsmosisContract; +use andromeda_osmosis_socket::OsmosisSocketContract; use rstest::{fixture, rstest}; use std::time::{SystemTime, UNIX_EPOCH}; @@ -32,8 +32,8 @@ fn setup( #[default("osmo17gxc6ec2cz2h6662tt8wajqaq57kwvdlzl63ceq9keeqm470ywyqrp9qux")] kernel_address: String, ) -> TestCase { - let socket_osmosis_type = "socket-osmosis@0.1.2-b.1"; - let socket_osmosis_component_name = "socket-osmosis"; + let osmosis_socket_type = "osmosis-socket@0.1.2-b.1"; + let osmosis_socket_component_name = "osmosis-socket"; let app_name = format!( "socket osmosis with recipient {}", SystemTime::now() @@ -50,16 +50,16 @@ fn setup( app_contract.set_code_id(app_code_id); // Prepare app components - let socket_osmosis_init_msg = InstantiateMsg { + let osmosis_socket_init_msg = InstantiateMsg { kernel_address: kernel_address.to_string(), owner: None, swap_router: None, }; - let socket_osmosis_component = AppComponent::new( - socket_osmosis_component_name, - socket_osmosis_type, - to_json_binary(&socket_osmosis_init_msg).unwrap(), + let osmosis_socket_component = AppComponent::new( + osmosis_socket_component_name, + osmosis_socket_type, + to_json_binary(&osmosis_socket_init_msg).unwrap(), ); let recipient_1_daemon = daemon @@ -96,7 +96,7 @@ fn setup( to_json_binary(&splitter_init_msg).unwrap(), ); - let app_components = vec![splitter_component.clone(), socket_osmosis_component.clone()]; + let app_components = vec![splitter_component.clone(), osmosis_socket_component.clone()]; app_contract .instantiate( @@ -127,16 +127,16 @@ fn test_onchain_native(setup: TestCase) { } = setup; let app_name_parsed = app_name.replace(' ', "_"); - let socket_osmosis_addr: String = app_contract.get_address("socket-osmosis"); + let osmosis_socket_addr: String = app_contract.get_address("osmosis-socket"); - let socket_osmosis_contract = SocketOsmosisContract::new(daemon.clone()); - socket_osmosis_contract.set_address(&Addr::unchecked(socket_osmosis_addr)); + let osmosis_socket_contract = OsmosisSocketContract::new(daemon.clone()); + osmosis_socket_contract.set_address(&Addr::unchecked(osmosis_socket_addr)); // execute swap operation let slippage = Slippage::MinOutputAmount(Uint128::one()); let atom_denom = "ibc/A8C2D23A1E6F95DA4E48BA349667E322BD7A6C996D8A4AAE8BA72E190F3D1477".to_string(); - let _res = socket_osmosis_contract.get_route("uosmo", atom_denom.clone()); + let _res = osmosis_socket_contract.get_route("uosmo", atom_denom.clone()); let forward_msg = to_json_binary(&andromeda_finance::splitter::ExecuteMsg::Send { config: None }).unwrap(); let forward_addr = Recipient::new( @@ -149,7 +149,7 @@ fn test_onchain_native(setup: TestCase) { Some(forward_msg), ); - socket_osmosis_contract + osmosis_socket_contract .swap_and_forward( slippage, atom_denom.clone(), diff --git a/tests/e2e/tests/socket_osmo_pool.rs b/tests/e2e/tests/osmosis_socket_pool.rs similarity index 56% rename from tests/e2e/tests/socket_osmo_pool.rs rename to tests/e2e/tests/osmosis_socket_pool.rs index d66b98c72..4cc628ccf 100644 --- a/tests/e2e/tests/socket_osmo_pool.rs +++ b/tests/e2e/tests/osmosis_socket_pool.rs @@ -1,5 +1,5 @@ -use andromeda_socket::osmosis::ExecuteMsgFns; -use andromeda_socket_osmosis::SocketOsmosisContract; +use andromeda_osmosis_socket::OsmosisSocketContract; +use andromeda_socket::osmosis::{ExecuteMsgFns, Pool, PoolsCreatedResponse}; use cosmwasm_std::coin; use cw_orch::prelude::*; use cw_orch_daemon::{Daemon, DaemonBase, Wallet}; @@ -12,10 +12,12 @@ use osmosis_std::types::{ use rstest::{fixture, rstest}; struct TestCase { - osmosis_socket_contract: SocketOsmosisContract>, + osmosis_socket_contract: OsmosisSocketContract>, } const TEST_MNEMONIC: &str = "cereal gossip fox peace youth leader engage move brass sell gas trap issue simple dance source develop black hurt pulp burst predict patient onion"; +const TEST_ADDRESS: &str = "osmo18epw87zc64a6m63323l6je0nlwdhnjpghtsyq8"; +const POOL_CREATION_FEE: u128 = 1_000_000; // 1 OSMO is the pool creation fee on Osmosis testnet-5 #[fixture] fn setup() -> TestCase { @@ -24,27 +26,27 @@ fn setup() -> TestCase { .build() .unwrap(); - let osmosis_socket_contract = SocketOsmosisContract::new(daemon.clone()); + let osmosis_socket_contract = OsmosisSocketContract::new(daemon.clone()); - // Uncomment this if you want to upload and instantiate a new version of osmosis socket contract - // Make sure to fund the contract after its instantiation - osmosis_socket_contract.upload().unwrap(); - osmosis_socket_contract - .instantiate( - &andromeda_socket::osmosis::InstantiateMsg { - kernel_address: "osmo17gxc6ec2cz2h6662tt8wajqaq57kwvdlzl63ceq9keeqm470ywyqrp9qux" - .to_string(), - owner: None, - swap_router: None, - }, - None, - &[], - ) - .unwrap(); - osmosis_socket_contract.set_address(&osmosis_socket_contract.address().unwrap()); - // osmosis_socket_contract.set_address(&Addr::unchecked( - // "osmo1r2vw2g92f5mt78mj029qlllfsfhrgyh6pzc4zgacllwg7p6x40rqnxgndc".to_string(), - // )); + // // Uncomment this if you want to upload and instantiate a new version of osmosis socket contract + // // Make sure to fund the contract after its instantiation + // osmosis_socket_contract.upload().unwrap(); + // osmosis_socket_contract + // .instantiate( + // &andromeda_socket::osmosis::InstantiateMsg { + // kernel_address: "osmo17gxc6ec2cz2h6662tt8wajqaq57kwvdlzl63ceq9keeqm470ywyqrp9qux" + // .to_string(), + // owner: None, + // swap_router: None, + // }, + // None, + // &[], + // ) + // .unwrap(); + // osmosis_socket_contract.set_address(&osmosis_socket_contract.address().unwrap()); + osmosis_socket_contract.set_address(&Addr::unchecked( + "osmo1x2z28sqg5g7s3yyay8meht8k9xu9k4mrh8gkcj86546xszgxh9xs0urjaa".to_string(), + )); TestCase { osmosis_socket_contract, @@ -58,8 +60,8 @@ fn test_create_pool(setup: TestCase) { .. } = setup; - let socket_osmosis_addr: String = osmosis_socket_contract.addr_str().unwrap(); - println!("socket_osmosis_addr: {}", socket_osmosis_addr); + let osmosis_socket_addr: String = osmosis_socket_contract.addr_str().unwrap(); + println!("osmosis_socket_addr: {}", osmosis_socket_addr); let pool_assets = vec![ PoolAsset { @@ -84,7 +86,6 @@ fn test_create_pool(setup: TestCase) { smooth_weight_change_params: None, }; - // The contract itself should have those funds, I funded the contract then called this function // The contract receives the lp tokens and then transfers them to the user in the reply function let res = osmosis_socket_contract .create_pool( @@ -92,10 +93,24 @@ fn test_create_pool(setup: TestCase) { pool_params: Some(pool_params), pool_assets, }, - &[coin(1000, "uion"), coin(10000, "uosmo")], + &[coin(1000, "uion"), coin(10000 + POOL_CREATION_FEE, "uosmo")], ) .unwrap(); println!("res: {:?}", res); + + let pools_created: PoolsCreatedResponse = osmosis_socket_contract + .query(&andromeda_socket::osmosis::QueryMsg::PoolsCreated { + creator: TEST_ADDRESS.to_string(), + }) + .unwrap(); + println!("pools_created: {:?}", pools_created); + let pool_id = pools_created.pools.first().unwrap().pool_id.clone(); + + let pool_info: Pool = osmosis_socket_contract + .query(&andromeda_socket::osmosis::QueryMsg::PoolInfo { pool_id }) + .unwrap(); + + println!("pool info: {:?}", pool_info) } #[rstest] @@ -105,12 +120,12 @@ fn test_withdraw_pool(setup: TestCase) { .. } = setup; - let socket_osmosis_addr: String = osmosis_socket_contract.addr_str().unwrap(); - println!("socket_osmosis_addr: {}", socket_osmosis_addr); + let osmosis_socket_addr: String = osmosis_socket_contract.addr_str().unwrap(); + println!("osmosis_socket_addr: {}", osmosis_socket_addr); let _wallet_address = "osmo18epw87zc64a6m63323l6je0nlwdhnjpghtsyq8".to_string(); let withdraw_msg = MsgExitPool { - sender: socket_osmosis_addr, + sender: osmosis_socket_addr, pool_id: 940, // Don't forget to change the pool id if you created a new one share_in_amount: "50000000000000000000".to_string(), token_out_mins: vec![