From ea37f6aab51feff8d32ee7bb87b2e3dd6ae14410 Mon Sep 17 00:00:00 2001 From: Mohammad Amin Khashkhashi Moghaddam Date: Tue, 25 Jul 2023 17:37:47 +0200 Subject: [PATCH] Add injective executor logic and contracts and getVersion utility function (#983) --- contract_manager/src/contracts/cosmwasm.ts | 10 +++++++++- .../store/chains/CosmWasmChain/injective.yaml | 6 ++++++ .../store/chains/CosmWasmChain/injective_testnet.yaml | 6 ++++++ .../store/chains/CosmWasmChain/osmosis.yaml | 9 +++++++++ .../chains/CosmWasmChain/sei_testnet_atlantic_2.yaml | 2 +- ...ive_inj12j43nf2f0qumnt2zrrmpvnsqgzndxefujlvr08.yaml | 3 +++ ...net_inj18rlflp3735h25jmjx97d22c72sxk260amdjxlu.yaml | 3 +++ ...mptpyj6wdlugqs5etr6teqf7r4yqjjrxjznjhtuqqu5kdh.yaml | 3 +++ ...k66vux4s6ewrw59sx0uu2q6xd7navlsvc3vry92sk3pe7g.yaml | 3 --- ...g32y3am3w62dts32qgzmds9qnr6c87r0gwwr7ynqal0x38.yaml | 3 +++ ...uxhhaaahdmvjxnr5tkr8tq077smefs7uw70rj5yqw2aewy.yaml | 3 +++ ...7s25crxlhmq96fzjwdtjgdwavn56ggc0qvxvw7rqczxyfy.yaml | 3 --- .../cosmwasm/tools/src/chains-manager/chains.ts | 5 ++++- .../cosmwasm/tools/src/chains-manager/injective.ts | 9 +++++++-- 14 files changed, 57 insertions(+), 11 deletions(-) create mode 100644 contract_manager/store/chains/CosmWasmChain/injective.yaml create mode 100644 contract_manager/store/chains/CosmWasmChain/injective_testnet.yaml create mode 100644 contract_manager/store/chains/CosmWasmChain/osmosis.yaml create mode 100644 contract_manager/store/contracts/CosmWasmContract/injective_inj12j43nf2f0qumnt2zrrmpvnsqgzndxefujlvr08.yaml create mode 100644 contract_manager/store/contracts/CosmWasmContract/injective_testnet_inj18rlflp3735h25jmjx97d22c72sxk260amdjxlu.yaml create mode 100644 contract_manager/store/contracts/CosmWasmContract/osmosis_osmo1hpdzqku55lmfmptpyj6wdlugqs5etr6teqf7r4yqjjrxjznjhtuqqu5kdh.yaml delete mode 100644 contract_manager/store/contracts/CosmWasmContract/osmosis_testnet_5_osmo1q3pzdelxnh2yk66vux4s6ewrw59sx0uu2q6xd7navlsvc3vry92sk3pe7g.yaml create mode 100644 contract_manager/store/contracts/CosmWasmContract/sei_pacific_1_sei15d2tyq2jzxmpg32y3am3w62dts32qgzmds9qnr6c87r0gwwr7ynqal0x38.yaml create mode 100644 contract_manager/store/contracts/CosmWasmContract/sei_testnet_atlantic_2_sei1kpntez76v38yuxhhaaahdmvjxnr5tkr8tq077smefs7uw70rj5yqw2aewy.yaml delete mode 100644 contract_manager/store/contracts/CosmWasmContract/sei_testnet_atlantic_2_sei1w2rxq6eckak47s25crxlhmq96fzjwdtjgdwavn56ggc0qvxvw7rqczxyfy.yaml diff --git a/contract_manager/src/contracts/cosmwasm.ts b/contract_manager/src/contracts/cosmwasm.ts index ccb27737..e6ea0cc5 100644 --- a/contract_manager/src/contracts/cosmwasm.ts +++ b/contract_manager/src/contracts/cosmwasm.ts @@ -5,6 +5,7 @@ import { CHAINS, DataSource } from "xc_admin_common"; import { DeploymentType } from "@pythnetwork/cosmwasm-deploy-tools/lib/helper"; import { CosmwasmExecutor, + InjectiveExecutor, Price, PythWrapperExecutor, PythWrapperQuerier, @@ -156,7 +157,9 @@ export class CosmWasmContract extends Contract { } private static async getExecutor(chain: CosmWasmChain, privateKey: string) { - // TODO: logic for injective + if (chain.getId().indexOf("injective") > -1) { + return new InjectiveExecutor(chain.executorEndpoint, privateKey); + } return new CosmwasmExecutor( chain.executorEndpoint, await CosmwasmExecutor.getSignerFromPrivateKey(privateKey, chain.prefix), @@ -327,6 +330,11 @@ export class CosmWasmContract extends Contract { return config.config_v1.fee; } + async getVersion(): Promise { + const config = await this.getConfig(); + return config.contract_version; + } + getChain(): CosmWasmChain { return this.chain; } diff --git a/contract_manager/store/chains/CosmWasmChain/injective.yaml b/contract_manager/store/chains/CosmWasmChain/injective.yaml new file mode 100644 index 00000000..d8582190 --- /dev/null +++ b/contract_manager/store/chains/CosmWasmChain/injective.yaml @@ -0,0 +1,6 @@ +querierEndpoint: https://injective-rpc.quickapi.com:443 +executorEndpoint: https://k8s.global.mainnet.chain.grpc-web.injective.network:443 +id: injective +wormholeChainName: injective +mainnet: true +type: CosmWasmChain diff --git a/contract_manager/store/chains/CosmWasmChain/injective_testnet.yaml b/contract_manager/store/chains/CosmWasmChain/injective_testnet.yaml new file mode 100644 index 00000000..88fdcbd7 --- /dev/null +++ b/contract_manager/store/chains/CosmWasmChain/injective_testnet.yaml @@ -0,0 +1,6 @@ +querierEndpoint: https://k8s.testnet.tm.injective.network:443 +executorEndpoint: https://k8s.testnet.chain.grpc-web.injective.network +id: injective_testnet +wormholeChainName: injective_testnet +mainnet: false +type: CosmWasmChain diff --git a/contract_manager/store/chains/CosmWasmChain/osmosis.yaml b/contract_manager/store/chains/CosmWasmChain/osmosis.yaml new file mode 100644 index 00000000..dda40caf --- /dev/null +++ b/contract_manager/store/chains/CosmWasmChain/osmosis.yaml @@ -0,0 +1,9 @@ +querierEndpoint: https://rpc.osmosis.zone:443 +executorEndpoint: https://rpc.osmosis.zone:443 +id: osmosis +wormholeChainName: osmosis +mainnet: true +gasPrice: "0.025" +prefix: osmo +feeDenom: uosmo +type: CosmWasmChain diff --git a/contract_manager/store/chains/CosmWasmChain/sei_testnet_atlantic_2.yaml b/contract_manager/store/chains/CosmWasmChain/sei_testnet_atlantic_2.yaml index cb94a916..ec7bc5cd 100644 --- a/contract_manager/store/chains/CosmWasmChain/sei_testnet_atlantic_2.yaml +++ b/contract_manager/store/chains/CosmWasmChain/sei_testnet_atlantic_2.yaml @@ -3,7 +3,7 @@ executorEndpoint: https://rpc.atlantic-2.seinetwork.io/ id: sei_testnet_atlantic_2 wormholeChainName: sei_testnet_atlantic_2 mainnet: false -gasPrice: "0.01" +gasPrice: "0.10" prefix: sei feeDenom: usei type: CosmWasmChain diff --git a/contract_manager/store/contracts/CosmWasmContract/injective_inj12j43nf2f0qumnt2zrrmpvnsqgzndxefujlvr08.yaml b/contract_manager/store/contracts/CosmWasmContract/injective_inj12j43nf2f0qumnt2zrrmpvnsqgzndxefujlvr08.yaml new file mode 100644 index 00000000..5ee9d882 --- /dev/null +++ b/contract_manager/store/contracts/CosmWasmContract/injective_inj12j43nf2f0qumnt2zrrmpvnsqgzndxefujlvr08.yaml @@ -0,0 +1,3 @@ +chain: injective +address: inj12j43nf2f0qumnt2zrrmpvnsqgzndxefujlvr08 +type: CosmWasmContract diff --git a/contract_manager/store/contracts/CosmWasmContract/injective_testnet_inj18rlflp3735h25jmjx97d22c72sxk260amdjxlu.yaml b/contract_manager/store/contracts/CosmWasmContract/injective_testnet_inj18rlflp3735h25jmjx97d22c72sxk260amdjxlu.yaml new file mode 100644 index 00000000..528289c6 --- /dev/null +++ b/contract_manager/store/contracts/CosmWasmContract/injective_testnet_inj18rlflp3735h25jmjx97d22c72sxk260amdjxlu.yaml @@ -0,0 +1,3 @@ +chain: injective_testnet +address: inj18rlflp3735h25jmjx97d22c72sxk260amdjxlu +type: CosmWasmContract diff --git a/contract_manager/store/contracts/CosmWasmContract/osmosis_osmo1hpdzqku55lmfmptpyj6wdlugqs5etr6teqf7r4yqjjrxjznjhtuqqu5kdh.yaml b/contract_manager/store/contracts/CosmWasmContract/osmosis_osmo1hpdzqku55lmfmptpyj6wdlugqs5etr6teqf7r4yqjjrxjznjhtuqqu5kdh.yaml new file mode 100644 index 00000000..90511d13 --- /dev/null +++ b/contract_manager/store/contracts/CosmWasmContract/osmosis_osmo1hpdzqku55lmfmptpyj6wdlugqs5etr6teqf7r4yqjjrxjznjhtuqqu5kdh.yaml @@ -0,0 +1,3 @@ +chain: osmosis +address: osmo13ge29x4e2s63a8ytz2px8gurtyznmue4a69n5275692v3qn3ks8q7cwck7 +type: CosmWasmContract diff --git a/contract_manager/store/contracts/CosmWasmContract/osmosis_testnet_5_osmo1q3pzdelxnh2yk66vux4s6ewrw59sx0uu2q6xd7navlsvc3vry92sk3pe7g.yaml b/contract_manager/store/contracts/CosmWasmContract/osmosis_testnet_5_osmo1q3pzdelxnh2yk66vux4s6ewrw59sx0uu2q6xd7navlsvc3vry92sk3pe7g.yaml deleted file mode 100644 index 40727ecf..00000000 --- a/contract_manager/store/contracts/CosmWasmContract/osmosis_testnet_5_osmo1q3pzdelxnh2yk66vux4s6ewrw59sx0uu2q6xd7navlsvc3vry92sk3pe7g.yaml +++ /dev/null @@ -1,3 +0,0 @@ -chain: osmosis_testnet_5 -address: osmo1q3pzdelxnh2yk66vux4s6ewrw59sx0uu2q6xd7navlsvc3vry92sk3pe7g -type: CosmWasmContract diff --git a/contract_manager/store/contracts/CosmWasmContract/sei_pacific_1_sei15d2tyq2jzxmpg32y3am3w62dts32qgzmds9qnr6c87r0gwwr7ynqal0x38.yaml b/contract_manager/store/contracts/CosmWasmContract/sei_pacific_1_sei15d2tyq2jzxmpg32y3am3w62dts32qgzmds9qnr6c87r0gwwr7ynqal0x38.yaml new file mode 100644 index 00000000..66577e55 --- /dev/null +++ b/contract_manager/store/contracts/CosmWasmContract/sei_pacific_1_sei15d2tyq2jzxmpg32y3am3w62dts32qgzmds9qnr6c87r0gwwr7ynqal0x38.yaml @@ -0,0 +1,3 @@ +chain: sei_pacific_1 +address: sei15d2tyq2jzxmpg32y3am3w62dts32qgzmds9qnr6c87r0gwwr7ynqal0x38 +type: CosmWasmContract diff --git a/contract_manager/store/contracts/CosmWasmContract/sei_testnet_atlantic_2_sei1kpntez76v38yuxhhaaahdmvjxnr5tkr8tq077smefs7uw70rj5yqw2aewy.yaml b/contract_manager/store/contracts/CosmWasmContract/sei_testnet_atlantic_2_sei1kpntez76v38yuxhhaaahdmvjxnr5tkr8tq077smefs7uw70rj5yqw2aewy.yaml new file mode 100644 index 00000000..eb8770f1 --- /dev/null +++ b/contract_manager/store/contracts/CosmWasmContract/sei_testnet_atlantic_2_sei1kpntez76v38yuxhhaaahdmvjxnr5tkr8tq077smefs7uw70rj5yqw2aewy.yaml @@ -0,0 +1,3 @@ +chain: sei_testnet_atlantic_2 +address: sei1kpntez76v38yuxhhaaahdmvjxnr5tkr8tq077smefs7uw70rj5yqw2aewy +type: CosmWasmContract diff --git a/contract_manager/store/contracts/CosmWasmContract/sei_testnet_atlantic_2_sei1w2rxq6eckak47s25crxlhmq96fzjwdtjgdwavn56ggc0qvxvw7rqczxyfy.yaml b/contract_manager/store/contracts/CosmWasmContract/sei_testnet_atlantic_2_sei1w2rxq6eckak47s25crxlhmq96fzjwdtjgdwavn56ggc0qvxvw7rqczxyfy.yaml deleted file mode 100644 index ba6be2a6..00000000 --- a/contract_manager/store/contracts/CosmWasmContract/sei_testnet_atlantic_2_sei1w2rxq6eckak47s25crxlhmq96fzjwdtjgdwavn56ggc0qvxvw7rqczxyfy.yaml +++ /dev/null @@ -1,3 +0,0 @@ -chain: sei_testnet_atlantic_2 -address: sei1w2rxq6eckak47s25crxlhmq96fzjwdtjgdwavn56ggc0qvxvw7rqczxyfy -type: CosmWasmContract diff --git a/target_chains/cosmwasm/tools/src/chains-manager/chains.ts b/target_chains/cosmwasm/tools/src/chains-manager/chains.ts index 33bbf4dc..5a002a43 100644 --- a/target_chains/cosmwasm/tools/src/chains-manager/chains.ts +++ b/target_chains/cosmwasm/tools/src/chains-manager/chains.ts @@ -141,7 +141,10 @@ export async function createExecutorForChain( const chainType = chainConfig.chainType; if (chainType === ChainType.INJECTIVE) { - return new InjectiveExecutor(chainConfig.executorEndpoint, mnemonic); + return InjectiveExecutor.fromMnemonic( + chainConfig.executorEndpoint, + mnemonic + ); } else return new CosmwasmExecutor( chainConfig.executorEndpoint, diff --git a/target_chains/cosmwasm/tools/src/chains-manager/injective.ts b/target_chains/cosmwasm/tools/src/chains-manager/injective.ts index 786963f9..c3a0e199 100644 --- a/target_chains/cosmwasm/tools/src/chains-manager/injective.ts +++ b/target_chains/cosmwasm/tools/src/chains-manager/injective.ts @@ -36,9 +36,14 @@ export class InjectiveExecutor implements ChainExecutor { constructor( private readonly grpcEndpoint: string, - readonly mnemonic: string + readonly privateKey: string ) { - this.wallet = PrivateKey.fromMnemonic(mnemonic); + this.wallet = PrivateKey.fromHex(privateKey); + } + + static fromMnemonic(grpcEndpoint: string, mnemonic: string) { + const wallet = PrivateKey.fromMnemonic(mnemonic); + return new InjectiveExecutor(grpcEndpoint, wallet.toHex()); } private getAddress(): string {