diff --git a/governance/xc_governance_sdk_js/src/chains.ts b/governance/xc_governance_sdk_js/src/chains.ts index cbeddbab..6af4941a 100644 --- a/governance/xc_governance_sdk_js/src/chains.ts +++ b/governance/xc_governance_sdk_js/src/chains.ts @@ -1,6 +1,19 @@ import { CHAINS as WORMHOLE_CHAINS } from "@certusone/wormhole-sdk"; export { CHAINS as WORMHOLE_CHAINS } from "@certusone/wormhole-sdk"; +// GUIDELINES to add a chain +// PYTH will have: +// 1. Mainnet Deployment - which will have pyth mainnet governance and data sources +// 2. Testnet Stable Deployment - which will also have pyth mainnet governance and data sources +// 3. Testnet Edge Deployment - which will have pyth testnet governance and data sources. +// Different chains will have different chain ids i.e., mainnet and testnet will have different chain ids. +// Though stable and edge contracts on testnet will share the same chain id. They are governed by different +// sources hence there is no chance of collision. + +// If there is already a chain id in wormhole sdk. Use that for Mainnet +// Else add a chain id for mainnet too. +// Add an id for the testnet +// Currently we are deploying this for cosmos chains only. But this will be for all the chains in future. export const RECEIVER_CHAINS = { cronos: 60001, kcc: 60002, @@ -14,10 +27,18 @@ export const RECEIVER_CHAINS = { meter: 60010, mantle: 60011, conflux_espace: 60012, - sei: 60013, + + // for cosmos + injective_testnet: 60013, osmosis: 60014, - neutron: 60015, - juno: 60016, + osmosis_testnet_4: 60015, + osmosis_testnet_5: 60016, + sei: 60017, + sei_testnet_atlantic_2: 60018, + neutron: 60019, + neutron_testnet_pion_1: 60020, + juno: 60020, + juno_testnet: 60021, }; // If there is any overlapping value the receiver chain will replace the wormhole diff --git a/target_chains/cosmwasm/tools/package.json b/target_chains/cosmwasm/tools/package.json index 78b94327..8a6c86a3 100644 --- a/target_chains/cosmwasm/tools/package.json +++ b/target_chains/cosmwasm/tools/package.json @@ -28,7 +28,8 @@ "node-downloader-helper": "^2.1.7", "osmojs": "^13.0.0-rc.7-i-alpha", "rimraf": "^5.0.0", - "yargs": "^17.0.1" + "yargs": "^17.0.1", + "@pythnetwork/price-service-client": "*" }, "devDependencies": { "@types/adm-zip": "^0.5.0", diff --git a/target_chains/cosmwasm/tools/src/chains-manager/chains.ts b/target_chains/cosmwasm/tools/src/chains-manager/chains.ts index cacd0b70..c51f9d31 100644 --- a/target_chains/cosmwasm/tools/src/chains-manager/chains.ts +++ b/target_chains/cosmwasm/tools/src/chains-manager/chains.ts @@ -12,27 +12,26 @@ export enum ChainType { // CHAINNAME{_OPTIONAL-IDENTIFIER} // ENUM Value should be of the form: // chainname{_optional-identifier} -export enum ChainIdTestnet { +export enum ChainId { + INJECTIVE_TESTNET = "injective_testnet", + OSMOSIS_TESTNET_4 = "osmosis_testnet_4", + OSMOSIS_TESTNET_5 = "osmosis_testnet_5", + SEI_TESTNET_ATLANTIC_2 = "sei_testnet_atlantic_2", + NEUTRON_TESTNET_PION_1 = "neutron_testnet_pion_1", + JUNO_TESTNET = "juno_testnet", + + // Below are mainnet chain ids INJECTIVE = "injective", - OSMOSIS_4 = "osmosis_4", - OSMOSIS_5 = "osmosis_5", - SEI_ATLANTIC_2 = "sei_atlantic_2", - NEUTRON_PION_1 = "neutron_pion_1", - JUNO = "juno", + OSMOSIS = "osmosis", } -export const ChainIdsTestnet = Object.values(ChainIdTestnet); +export const ChainIds = Object.values(ChainId); -// TODO: ADD MAINNET IDs IN FUTURE -// export enum ChainIdMainnet { -// INJECTIVE = "injective", -// } - -export type ChainConfig = +export type ChainNetworkConfig = | { // usually the chain name // osmosis, injective - chainId: ChainIdTestnet; + chainId: ChainId; chainType: ChainType.INJECTIVE; // endpoints to create executor and querier for a particular chain @@ -42,7 +41,7 @@ export type ChainConfig = | { // usually the chain name // osmosis, injective - chainId: ChainIdTestnet; + chainId: ChainId; chainType: ChainType.COSMWASM; // endpoints to create executor and querier for a particular chain @@ -58,60 +57,76 @@ export type ChainConfig = gasPrice: string; }; -export const ChainsConfigTestnet: Record = { - [ChainIdTestnet.INJECTIVE]: { - chainId: ChainIdTestnet.INJECTIVE, +export const CHAINS_NETWORK_CONFIG: Record = { + [ChainId.INJECTIVE_TESTNET]: { + chainId: ChainId.INJECTIVE_TESTNET, chainType: ChainType.INJECTIVE, querierEndpoint: "https://k8s.testnet.tm.injective.network:443", executorEndpoint: "https://k8s.testnet.chain.grpc-web.injective.network", }, - [ChainIdTestnet.OSMOSIS_5]: { - chainId: ChainIdTestnet.OSMOSIS_5, + [ChainId.OSMOSIS_TESTNET_5]: { + chainId: ChainId.OSMOSIS_TESTNET_5, chainType: ChainType.COSMWASM, executorEndpoint: "https://rpc.osmotest5.osmosis.zone/", querierEndpoint: "https://rpc.osmotest5.osmosis.zone/", prefix: "osmo", gasPrice: "0.025uosmo", }, - [ChainIdTestnet.OSMOSIS_4]: { - chainId: ChainIdTestnet.OSMOSIS_4, + [ChainId.OSMOSIS_TESTNET_4]: { + chainId: ChainId.OSMOSIS_TESTNET_4, chainType: ChainType.COSMWASM, executorEndpoint: "https://rpc-test.osmosis.zone:443", querierEndpoint: "https://rpc-test.osmosis.zone:443", prefix: "osmo", gasPrice: "0.025uosmo", }, - [ChainIdTestnet.SEI_ATLANTIC_2]: { - chainId: ChainIdTestnet.SEI_ATLANTIC_2, + [ChainId.SEI_TESTNET_ATLANTIC_2]: { + chainId: ChainId.SEI_TESTNET_ATLANTIC_2, chainType: ChainType.COSMWASM, executorEndpoint: "https://rpc.atlantic-2.seinetwork.io/", querierEndpoint: "https://rpc.atlantic-2.seinetwork.io/", prefix: "sei", gasPrice: "0.01usei", }, - [ChainIdTestnet.NEUTRON_PION_1]: { - chainId: ChainIdTestnet.NEUTRON_PION_1, + [ChainId.NEUTRON_TESTNET_PION_1]: { + chainId: ChainId.NEUTRON_TESTNET_PION_1, chainType: ChainType.COSMWASM, executorEndpoint: "https://rpc.pion.rs-testnet.polypore.xyz/", querierEndpoint: "https://rpc.pion.rs-testnet.polypore.xyz/", prefix: "neutron", gasPrice: "0.025untrn", }, - [ChainIdTestnet.JUNO]: { - chainId: ChainIdTestnet.JUNO, + [ChainId.JUNO_TESTNET]: { + chainId: ChainId.JUNO_TESTNET, chainType: ChainType.COSMWASM, executorEndpoint: "https://rpc.uni.junonetwork.io/", querierEndpoint: "https://rpc.uni.junonetwork.io/", prefix: "juno", gasPrice: "0.025ujunox", }, + + // Mainnet chains + [ChainId.INJECTIVE]: { + chainId: ChainId.INJECTIVE, + chainType: ChainType.INJECTIVE, + querierEndpoint: "https://k8s.testnet.tm.injective.network:443", + executorEndpoint: "https://k8s.testnet.chain.grpc-web.injective.network", + }, + [ChainId.OSMOSIS]: { + chainId: ChainId.OSMOSIS, + chainType: ChainType.COSMWASM, + executorEndpoint: "https://rpc.osmotest5.osmosis.zone/", + querierEndpoint: "https://rpc.osmotest5.osmosis.zone/", + prefix: "osmo", + gasPrice: "0.025uosmo", + }, }; /** * This method will return an executor for given chainConfig. */ export function createExecutorForChain( - chainConfig: ChainConfig, + chainConfig: ChainNetworkConfig, mnemonic: string ): ChainExecutor { const chainType = chainConfig.chainType; diff --git a/target_chains/cosmwasm/tools/src/configs.ts b/target_chains/cosmwasm/tools/src/configs.ts new file mode 100644 index 00000000..66681823 --- /dev/null +++ b/target_chains/cosmwasm/tools/src/configs.ts @@ -0,0 +1,173 @@ +import { CHAINS } from "@pythnetwork/xc-governance-sdk"; +import { ChainId } from "./chains-manager/chains"; +import { DeploymentType } from "./helper"; + +type ChainContractConfig = { + feeDenom: string; + pythArtifactZipName: string; + wormholeChainId: number; +}; + +export const CHAINS_CONTRACT_CONFIG: Record = { + [ChainId.INJECTIVE_TESTNET]: { + feeDenom: "inj", + pythArtifactZipName: "injective", + wormholeChainId: CHAINS.injective_testnet, + }, + [ChainId.OSMOSIS_TESTNET_4]: { + feeDenom: "uosmo", + pythArtifactZipName: "osmosis", + wormholeChainId: CHAINS.osmosis_testnet_4, + }, + [ChainId.OSMOSIS_TESTNET_5]: { + feeDenom: "uosmo", + pythArtifactZipName: "osmosis", + wormholeChainId: CHAINS.osmosis_testnet_5, + }, + [ChainId.SEI_TESTNET_ATLANTIC_2]: { + feeDenom: "usei", + pythArtifactZipName: "cosmwasm", + wormholeChainId: CHAINS.sei_testnet_atlantic_2, + }, + [ChainId.NEUTRON_TESTNET_PION_1]: { + feeDenom: "untrn", + pythArtifactZipName: "cosmwasm", + wormholeChainId: CHAINS.neutron_testnet_pion_1, + }, + [ChainId.JUNO_TESTNET]: { + feeDenom: "ujunox", + pythArtifactZipName: "cosmwasm", + wormholeChainId: CHAINS.juno_testnet, + }, + + // mainnet + [ChainId.INJECTIVE]: { + feeDenom: "inj", + pythArtifactZipName: "injective", + wormholeChainId: CHAINS.injective, + }, + [ChainId.OSMOSIS]: { + feeDenom: "uosmo", + pythArtifactZipName: "osmosis", + wormholeChainId: CHAINS.osmosis, + }, +}; + +function getPythSources(deploymentType: DeploymentType) { + if (deploymentType === "stable") { + return { + data_sources: [ + { + emitter: Buffer.from( + "6bb14509a612f01fbbc4cffeebd4bbfb492a86df717ebe92eb6df432a3f00a25", + "hex" + ).toString("base64"), + chain_id: 1, + }, + { + emitter: Buffer.from( + "f8cd23c2ab91237730770bbea08d61005cdda0984348f3f6eecb559638c0bba0", + "hex" + ).toString("base64"), + chain_id: 26, + }, + ], + governance_source: { + emitter: Buffer.from( + "5635979a221c34931e32620b9293a463065555ea71fe97cd6237ade875b12e9e", + "hex" + ).toString("base64"), + chain_id: 1, + }, + }; + } + + return { + data_sources: [ + { + emitter: Buffer.from( + "f346195ac02f37d60d4db8ffa6ef74cb1be3550047543a4a9ee9acf4d78697b0", + "hex" + ).toString("base64"), + chain_id: 1, + }, + { + emitter: Buffer.from( + "a27839d641b07743c0cb5f68c51f8cd31d2c0762bec00dc6fcd25433ef1ab5b6", + "hex" + ).toString("base64"), + chain_id: 26, + }, + ], + governance_source: { + emitter: Buffer.from( + "63278d271099bfd491951b3e648f08b1c71631e4a53674ad43e8f9f98068c385", + "hex" + ).toString("base64"), + chain_id: 1, + }, + }; +} + +export function getPythConfig({ + feeDenom, + wormholeContract, + wormholeChainId, + deploymentType, +}: { + feeDenom: string; + wormholeContract: string; + wormholeChainId: number; + deploymentType: DeploymentType; +}) { + return { + wormhole_contract: wormholeContract, + governance_source_index: 0, + governance_sequence_number: 0, + chain_id: wormholeChainId, + valid_time_period_secs: 60, + fee: { + amount: "1", + denom: feeDenom, + }, + ...getPythSources(deploymentType), + }; +} + +interface ReqWormholeConfig { + feeDenom: string; + wormholeChainId: number; + deploymentType: DeploymentType; +} + +export function getWormholeConfig({ + feeDenom, + wormholeChainId, + deploymentType, +}: ReqWormholeConfig) { + if (deploymentType === "stable") { + return { + chain_id: wormholeChainId, + fee_denom: feeDenom, + gov_chain: 1, + gov_address: "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQ=", + guardian_set_expirity: 86400, + initial_guardian_set: { + addresses: [{ bytes: "WMw65cCXshPOPIGXnhuflXB0aqU=" }], + expiration_time: 0, + }, + }; + } + + return { + chain_id: wormholeChainId, + fee_denom: feeDenom, + gov_chain: 1, + gov_address: "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQ=", + guardian_set_expirity: 86400, + initial_guardian_set: { + addresses: [{ bytes: "E5R71IsY5T/a7ud/NHM5Gscnxjg=" }], + expiration_time: 0, + }, + }; +} diff --git a/target_chains/cosmwasm/tools/src/extended-chain-config.ts b/target_chains/cosmwasm/tools/src/extended-chain-config.ts deleted file mode 100644 index 90c9b091..00000000 --- a/target_chains/cosmwasm/tools/src/extended-chain-config.ts +++ /dev/null @@ -1,54 +0,0 @@ -import { CHAINS } from "@pythnetwork/xc-governance-sdk"; -import { - ChainConfig, - ChainIdTestnet, - ChainsConfigTestnet, -} from "./chains-manager/chains"; - -export type ExtendedChainConfig = ChainConfig & { - feeDenom: string; - pythArtifactZipName: string; - wormholeChainId: number; -}; - -export const ExtendedChainsConfigTestnet: Record< - ChainIdTestnet, - ExtendedChainConfig -> = { - [ChainIdTestnet.INJECTIVE]: { - feeDenom: "inj", - pythArtifactZipName: "injective", - wormholeChainId: CHAINS.injective, - ...ChainsConfigTestnet[ChainIdTestnet.INJECTIVE], - }, - [ChainIdTestnet.OSMOSIS_4]: { - feeDenom: "uosmo", - pythArtifactZipName: "osmosis", - wormholeChainId: CHAINS.osmosis, - ...ChainsConfigTestnet[ChainIdTestnet.OSMOSIS_4], - }, - [ChainIdTestnet.OSMOSIS_5]: { - feeDenom: "uosmo", - pythArtifactZipName: "osmosis", - wormholeChainId: CHAINS.osmosis, - ...ChainsConfigTestnet[ChainIdTestnet.OSMOSIS_5], - }, - [ChainIdTestnet.SEI_ATLANTIC_2]: { - feeDenom: "usei", - pythArtifactZipName: "cosmwasm", - wormholeChainId: CHAINS.sei, - ...ChainsConfigTestnet[ChainIdTestnet.SEI_ATLANTIC_2], - }, - [ChainIdTestnet.NEUTRON_PION_1]: { - feeDenom: "untrn", - pythArtifactZipName: "cosmwasm", - wormholeChainId: CHAINS.neutron, - ...ChainsConfigTestnet[ChainIdTestnet.NEUTRON_PION_1], - }, - [ChainIdTestnet.JUNO]: { - feeDenom: "ujunox", - pythArtifactZipName: "cosmwasm", - wormholeChainId: CHAINS.juno, - ...ChainsConfigTestnet[ChainIdTestnet.JUNO], - }, -}; diff --git a/target_chains/cosmwasm/tools/src/helper.ts b/target_chains/cosmwasm/tools/src/helper.ts index 357e8999..a1216aa8 100644 --- a/target_chains/cosmwasm/tools/src/helper.ts +++ b/target_chains/cosmwasm/tools/src/helper.ts @@ -3,6 +3,31 @@ import { rimrafSync } from "rimraf"; import AdmZip from "adm-zip"; import path from "path"; import { DownloaderHelper } from "node-downloader-helper"; +import { ChainId } from "./chains-manager/chains"; + +export function getChainIdsForStableDeployment(): ChainId[] { + return [ + ChainId.INJECTIVE_TESTNET, + ChainId.OSMOSIS_TESTNET_4, + ChainId.OSMOSIS_TESTNET_5, + ChainId.SEI_TESTNET_ATLANTIC_2, + ChainId.NEUTRON_TESTNET_PION_1, + ChainId.JUNO_TESTNET, + ]; +} + +export function getChainIdsForEdgeDeployment(): ChainId[] { + return [ + ChainId.INJECTIVE_TESTNET, + ChainId.OSMOSIS_TESTNET_4, + ChainId.OSMOSIS_TESTNET_5, + ChainId.SEI_TESTNET_ATLANTIC_2, + ChainId.NEUTRON_TESTNET_PION_1, + ChainId.JUNO_TESTNET, + ]; +} + +export type DeploymentType = "stable" | "edge"; // We have released the compile contacts on github. If a chain needs some specific // feature in a contract, a version of the contract with that specific features is @@ -74,18 +99,14 @@ export async function getContractBytesDict( } export const WORMHOLE_CONTRACT_VERSION = "2.14.9"; - // This method returns the file name which stores the deployment result for // wormhole stub export function getWormholeFileName( chainId: string, version: string, - mainnet: boolean + deploymentType: DeploymentType ): string { - const WORMHOLE_STORAGE_DIR = mainnet - ? "../wormhole-stub/mainnet" - : "../wormhole-stub/testnet"; - + const WORMHOLE_STORAGE_DIR = "../wormhole-stub/" + deploymentType; return `${WORMHOLE_STORAGE_DIR}/${chainId}-${version}.json`; } @@ -94,9 +115,9 @@ export function getWormholeFileName( export function getWormholeContractAddress( chainId: string, version: string, - mainnet: boolean + deploymentType: DeploymentType ): string { - let deployedFilePath = getWormholeFileName(chainId, version, mainnet); + let deployedFilePath = getWormholeFileName(chainId, version, deploymentType); const wormholeContractAddress = JSON.parse( readFileSync(deployedFilePath).toString() )["instantiate-contract"].result.contractAddr; @@ -110,6 +131,53 @@ export function getWormholeContractAddress( return wormholeContractAddress; } +// This method returns the file name which stores the deployment result for +// pyth instantiation +export function getPythInstantiateFileName( + chainId: string, + version: string, + deploymentType: DeploymentType +): string { + const STORAGE_DIR = `./store/${deploymentType}/instantiate-pyth`; + return `${STORAGE_DIR}/${chainId}-${version}.json`; +} + +// This method returns the file name which stores the deployment result for +// test pyth contract +export function getTestPythContractFileName( + chainId: string, + version: string, + deploymentType: DeploymentType +): string { + const STORAGE_DIR = `./store/${deploymentType}/test-contracts`; + return `${STORAGE_DIR}/${chainId}-${version}.json`; +} + +// This method will read the pyth file with the deployment resutt and will +// return the deployed pyth contract address +export function getPythContractAddress( + chainId: string, + version: string, + deploymentType: DeploymentType +): string { + let deployedFilePath = getPythInstantiateFileName( + chainId, + version, + deploymentType + ); + const pythContractAddress = JSON.parse( + readFileSync(deployedFilePath).toString() + )["instantiate-contract"].result.contractAddr; + + if (pythContractAddress === undefined) + throw new Error( + "Wormhole contract address should be present in the file" + + deployedFilePath + ); + + return pythContractAddress; +} + export function hexToBase64(hex: string): string { return Buffer.from(hex, "hex").toString("base64"); } diff --git a/target_chains/cosmwasm/tools/src/instantiate-pyth.ts b/target_chains/cosmwasm/tools/src/instantiate-pyth.ts index 1995d420..264732a4 100644 --- a/target_chains/cosmwasm/tools/src/instantiate-pyth.ts +++ b/target_chains/cosmwasm/tools/src/instantiate-pyth.ts @@ -1,6 +1,6 @@ import { - ChainIdsTestnet, createExecutorForChain, + CHAINS_NETWORK_CONFIG, } from "./chains-manager/chains"; import yargs from "yargs"; import { hideBin } from "yargs/helpers"; @@ -10,16 +10,20 @@ import { } from "./chains-manager/chain-executor"; import { Pipeline } from "./pipeline"; import { + DeploymentType, WORMHOLE_CONTRACT_VERSION, + getChainIdsForEdgeDeployment, + getChainIdsForStableDeployment, getContractBytesDict, + getPythInstantiateFileName, getWormholeContractAddress, } from "./helper"; -import { ExtendedChainsConfigTestnet } from "./extended-chain-config"; import { sha256 } from "@cosmjs/crypto"; import { CHECKSUM } from "./contract-checksum"; +import { CHAINS_CONTRACT_CONFIG, getPythConfig } from "./configs"; const argv = yargs(hideBin(process.argv)) - .usage("USAGE: npm run wormhole-stub -- ") + .usage("USAGE: npm run instantiate-pyth -- ") .option("mnemonic", { type: "string", demandOption: "Please provide the mnemonic", @@ -28,13 +32,11 @@ const argv = yargs(hideBin(process.argv)) type: "string", demandOption: `Please input the contract-version of the pyth contract.`, }) - .option("chain-id", { + .option("deploy", { type: "string", - choices: ChainIdsTestnet, - }) - .option("mainnet", { - type: "boolean", - desc: "Execute this script for mainnet networks. THIS WILL BE ADDED IN FUTURE", + desc: "Execute this script for the given networks.", + choices: ["edge", "stable"], + demandOption: "Please provide the deployment type", }) .help() .alias("help", "h") @@ -42,12 +44,17 @@ const argv = yargs(hideBin(process.argv)) .parseSync(); async function run() { - const STORAGE_DIR = "./testnet/instantiate-pyth"; + let chainIds; + if (argv.deploy === "stable") { + chainIds = getChainIdsForStableDeployment(); + } else { + chainIds = getChainIdsForEdgeDeployment(); + } // get the wasm code from github let contractBytesDict = await getContractBytesDict( - Object.values(ExtendedChainsConfigTestnet).map( - ({ pythArtifactZipName }) => pythArtifactZipName + chainIds.map( + (chainId) => CHAINS_CONTRACT_CONFIG[chainId].pythArtifactZipName ), argv.contractVersion ); @@ -70,28 +77,28 @@ async function run() { ); } - console.log(); - - let chainIds = argv.chainId === undefined ? ChainIdsTestnet : [argv.chainId]; for (let chainId of chainIds) { - let pipelineStoreFilePath = `${STORAGE_DIR}/${chainId}-${argv.contractVersion}.json`; - const pipeline = new Pipeline(chainId, pipelineStoreFilePath); + let chainConfig = CHAINS_NETWORK_CONFIG[chainId]; + let contractConfig = CHAINS_CONTRACT_CONFIG[chainId]; - const chainExecutor = createExecutorForChain( - ExtendedChainsConfigTestnet[chainId], - argv.mnemonic + const pipeline = new Pipeline( + chainId, + getPythInstantiateFileName( + chainId, + argv.contractVersion, + argv.deploy as DeploymentType + ) ); + const chainExecutor = createExecutorForChain(chainConfig, argv.mnemonic); + // add stages // 1 deploy artifact pipeline.addStage({ id: "deploy-pyth-code", executor: async () => { return chainExecutor.storeCode({ - contractBytes: - contractBytesDict[ - ExtendedChainsConfigTestnet[chainId].pythArtifactZipName - ], + contractBytes: contractBytesDict[contractConfig.pythArtifactZipName], }); }, }); @@ -106,14 +113,14 @@ async function run() { return chainExecutor.instantiateContract({ codeId: storeCodeRes.codeId, instMsg: getPythConfig({ - feeDenom: ExtendedChainsConfigTestnet[chainId].feeDenom, - wormholeChainId: - ExtendedChainsConfigTestnet[chainId].wormholeChainId, + feeDenom: contractConfig.feeDenom, + wormholeChainId: contractConfig.wormholeChainId, wormholeContract: getWormholeContractAddress( chainId, WORMHOLE_CONTRACT_VERSION, - false + argv.deploy as DeploymentType ), + deploymentType: argv.deploy as DeploymentType, }), label: "wormhole", }); @@ -138,50 +145,4 @@ async function run() { } } -function getPythConfig({ - feeDenom, - wormholeContract, - wormholeChainId, -}: { - feeDenom: string; - wormholeContract: string; - wormholeChainId: number; -}) { - return { - wormhole_contract: wormholeContract, - governance_source_index: 0, - governance_sequence_number: 0, - chain_id: wormholeChainId, - valid_time_period_secs: 60, - fee: { - amount: "1", - denom: feeDenom, - }, - // All contracts on any network are using mainnet data sources. - data_sources: [ - { - emitter: Buffer.from( - "6bb14509a612f01fbbc4cffeebd4bbfb492a86df717ebe92eb6df432a3f00a25", - "hex" - ).toString("base64"), - chain_id: 1, - }, - { - emitter: Buffer.from( - "f8cd23c2ab91237730770bbea08d61005cdda0984348f3f6eecb559638c0bba0", - "hex" - ).toString("base64"), - chain_id: 26, - }, - ], - governance_source: { - emitter: Buffer.from( - "5635979a221c34931e32620b9293a463065555ea71fe97cd6237ade875b12e9e", - "hex" - ).toString("base64"), - chain_id: 1, - }, - }; -} - run(); diff --git a/target_chains/cosmwasm/tools/src/test.ts b/target_chains/cosmwasm/tools/src/test.ts new file mode 100644 index 00000000..84960d36 --- /dev/null +++ b/target_chains/cosmwasm/tools/src/test.ts @@ -0,0 +1,112 @@ +import { + CHAINS_NETWORK_CONFIG, + createExecutorForChain, +} from "./chains-manager/chains"; +import yargs from "yargs"; +import { hideBin } from "yargs/helpers"; +import { Pipeline } from "./pipeline"; +import { PythWrapperExecutor, PythWrapperQuerier } from "./pyth-wrapper"; +import { + DeploymentType, + getChainIdsForEdgeDeployment, + getChainIdsForStableDeployment, + getPythContractAddress, + getTestPythContractFileName, +} from "./helper"; +import { PriceServiceConnection } from "@pythnetwork/price-service-client"; +import { CosmwasmQuerier } from "./chains-manager/chain-querier"; +const argv = yargs(hideBin(process.argv)) + .usage("USAGE: npm run test -- ") + .option("mnemonic", { + type: "string", + demandOption: "Please provide the mnemonic", + }) + .option("contract-version", { + type: "string", + description: `Please input the contract-version of the pyth contract.`, + default: "1.2.0", + }) + .option("deploy", { + type: "string", + desc: "test the following deployment type.", + choices: ["stable", "edge"], + demandOption: "Please provide the deployment type", + }) + .help() + .alias("help", "h") + .wrap(yargs.terminalWidth()) + .parseSync(); + +async function run() { + let chainIds; + if (argv.deploy === "stable") { + chainIds = getChainIdsForStableDeployment(); + } else { + chainIds = getChainIdsForEdgeDeployment(); + } + + for (let chainId of chainIds) { + let chainConfig = CHAINS_NETWORK_CONFIG[chainId]; + const pipeline = new Pipeline( + chainId, + getTestPythContractFileName( + chainId, + argv.contractVersion, + argv.deploy as DeploymentType + ) + ); + + const chainExecutor = createExecutorForChain(chainConfig, argv.mnemonic); + const pythExecutor = new PythWrapperExecutor(chainExecutor); + const chainQuerier = await CosmwasmQuerier.connect( + chainConfig.querierEndpoint + ); + const pythQuerier = new PythWrapperQuerier(chainQuerier); + + const priceServiceConnection = new PriceServiceConnection( + argv.deploy === "stable" + ? "https://xc-mainnet.pyth.network" + : "https://xc-testnet.pyth.network" + ); + + const priceFeedId = + argv.deploy === "stable" + ? "e62df6c8b4a85fe1a67db44dc12de5db330f7ac66b72dc658afedf0f4a415b43" + : "f9c0172ba10dfa4d19088d94f5bf61d3b54d5bd7483a322a982e1373ee8ea31b"; + + const pythContractAddr = getPythContractAddress( + chainId, + argv.contractVersion, + argv.deploy as DeploymentType + ); + + // add stages + // 1 push price update + pipeline.addStage({ + id: "push-price-update", + executor: async () => { + const vaas = await priceServiceConnection.getLatestVaas([priceFeedId]); + + const fund = await pythQuerier.getUpdateFee(pythContractAddr, vaas); + + return pythExecutor.executeUpdatePriceFeeds({ + contractAddr: pythContractAddr, + vaas, + fund, + }); + }, + }); + + // 2 fetch the updated price feed + pipeline.addStage({ + id: "fetch-price-feed-update", + executor: () => { + return pythQuerier.getPriceFeed(pythContractAddr, priceFeedId); + }, + }); + + await pipeline.run(); + } +} + +run(); diff --git a/target_chains/cosmwasm/tools/src/wormhole-stub.ts b/target_chains/cosmwasm/tools/src/wormhole-stub.ts index 0cc0042a..74773b6e 100644 --- a/target_chains/cosmwasm/tools/src/wormhole-stub.ts +++ b/target_chains/cosmwasm/tools/src/wormhole-stub.ts @@ -1,5 +1,5 @@ import { - ChainIdsTestnet, + CHAINS_NETWORK_CONFIG, createExecutorForChain, } from "./chains-manager/chains"; import yargs from "yargs"; @@ -10,8 +10,14 @@ import { StoreCodeResponse, } from "./chains-manager/chain-executor"; import { Pipeline } from "./pipeline"; -import { getWormholeFileName, hexToBase64 } from "./helper"; -import { ExtendedChainsConfigTestnet } from "./extended-chain-config"; +import { + DeploymentType, + getChainIdsForEdgeDeployment, + getChainIdsForStableDeployment, + getWormholeFileName, + hexToBase64, +} from "./helper"; +import { getWormholeConfig, CHAINS_CONTRACT_CONFIG } from "./configs"; const argv = yargs(hideBin(process.argv)) .usage("USAGE: npm run wormhole-stub -- ") .option("mnemonic", { @@ -24,21 +30,18 @@ const argv = yargs(hideBin(process.argv)) There should be a compiled code at the path - "../wormhole-stub/artifacts/wormhole-\${contract-version}.wasm"`, default: "2.14.9", }) - .option("chain-id", { + .option("deploy", { type: "string", - choices: ChainIdsTestnet, - }) - .option("mainnet", { - type: "boolean", - desc: "Execute this script for mainnet networks. THIS WILL BE ADDED IN FUTURE", - default: false, + desc: "Execute this script for the given deployment type.", + choices: ["stable", "edge"], + demandOption: "Please provide the deployment type", }) .help() .alias("help", "h") .wrap(yargs.terminalWidth()) .parseSync(); -const VAA_MAINNET_UPGRADES = { +const STABLE_VAA_UPGRADES = { GUARDIAN_SET_UPGRADE_1_VAA: "010000000001007ac31b282c2aeeeb37f3385ee0de5f8e421d30b9e5ae8ba3d4375c1c77a86e77159bb697d9c456d6f8c02d22a94b1279b65b0d6a9957e7d3857423845ac758e300610ac1d2000000030001000000000000000000000000000000000000000000000000000000000000000400000000000005390000000000000000000000000000000000000000000000000000000000436f7265020000000000011358cc3ae5c097b213ce3c81979e1b9f9570746aa5ff6cb952589bde862c25ef4392132fb9d4a42157114de8460193bdf3a2fcf81f86a09765f4762fd1107a0086b32d7a0977926a205131d8731d39cbeb8c82b2fd82faed2711d59af0f2499d16e726f6b211b39756c042441be6d8650b69b54ebe715e234354ce5b4d348fb74b958e8966e2ec3dbd4958a7cdeb5f7389fa26941519f0863349c223b73a6ddee774a3bf913953d695260d88bc1aa25a4eee363ef0000ac0076727b35fbea2dac28fee5ccb0fea768eaf45ced136b9d9e24903464ae889f5c8a723fc14f93124b7c738843cbb89e864c862c38cddcccf95d2cc37a4dc036a8d232b48f62cdd4731412f4890da798f6896a3331f64b48c12d1d57fd9cbe7081171aa1be1d36cafe3867910f99c09e347899c19c38192b6e7387ccd768277c17dab1b7a5027c0b3cf178e21ad2e77ae06711549cfbb1f9c7a9d8096e85e1487f35515d02a92753504a8d75471b9f49edb6fbebc898f403e4773e95feb15e80c9a99c8348d", GUARDIAN_SET_UPGRADE_2_VAA: @@ -53,19 +56,25 @@ async function run() { // get the wormhole code const contractBytes = readFileSync(wasmFilePath); - let chainIds = argv.chainId === undefined ? ChainIdsTestnet : [argv.chainId]; + let chainIds; + if (argv.deploy === "stable") { + chainIds = getChainIdsForStableDeployment(); + } else { + chainIds = getChainIdsForEdgeDeployment(); + } + for (let chainId of chainIds) { + let contractConfig = CHAINS_CONTRACT_CONFIG[chainId]; + let chainConfig = CHAINS_NETWORK_CONFIG[chainId]; + let pipelineStoreFilePath = getWormholeFileName( chainId, argv.contractVersion, - argv.mainnet + argv.deploy as DeploymentType ); const pipeline = new Pipeline(chainId, pipelineStoreFilePath); - const chainExecutor = createExecutorForChain( - ExtendedChainsConfigTestnet[chainId], - argv.mnemonic - ); + const chainExecutor = createExecutorForChain(chainConfig, argv.mnemonic); // add stages // 1 deploy artifact @@ -88,7 +97,11 @@ async function run() { return chainExecutor.instantiateContract({ codeId: storeCodeRes.codeId, - instMsg: getWormholeConfig(ExtendedChainsConfigTestnet[chainId]), + instMsg: getWormholeConfig({ + feeDenom: contractConfig.feeDenom, + wormholeChainId: contractConfig.wormholeChainId, + deploymentType: argv.deploy as DeploymentType, + }), label: "wormhole", }); }, @@ -108,45 +121,28 @@ async function run() { }, }); - // 4 vaa upgrades for guardian set - Object.keys(VAA_MAINNET_UPGRADES).forEach((id) => { - pipeline.addStage({ - id, - executor: (getResultOfPastStage) => { - const instantiateContractRes: InstantiateContractResponse = - getResultOfPastStage("instantiate-contract"); + // 4 vaa upgrades for guardian set for mainnet sources only + if (argv.deploy === "stable") + Object.keys(STABLE_VAA_UPGRADES).forEach((id) => { + pipeline.addStage({ + id, + executor: (getResultOfPastStage) => { + const instantiateContractRes: InstantiateContractResponse = + getResultOfPastStage("instantiate-contract"); - return chainExecutor.executeContract({ - contractAddr: instantiateContractRes.contractAddr, - msg: { - // @ts-ignore - submit_v_a_a: { vaa: hexToBase64(VAA_MAINNET_UPGRADES[id]) }, - }, - }); - }, + return chainExecutor.executeContract({ + contractAddr: instantiateContractRes.contractAddr, + msg: { + // @ts-ignore + submit_v_a_a: { vaa: hexToBase64(VAA_MAINNET_UPGRADES[id]) }, + }, + }); + }, + }); }); - }); await pipeline.run(); } } -interface ReqWormholeConfig { - feeDenom: string; - wormholeChainId: number; -} -function getWormholeConfig({ feeDenom, wormholeChainId }: ReqWormholeConfig) { - return { - chain_id: wormholeChainId, - fee_denom: feeDenom, - gov_chain: 1, - gov_address: "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQ=", - guardian_set_expirity: 86400, - initial_guardian_set: { - addresses: [{ bytes: "WMw65cCXshPOPIGXnhuflXB0aqU=" }], - expiration_time: 0, - }, - }; -} - run(); diff --git a/target_chains/cosmwasm/tools/store/edge/instantiate-pyth/injective_testnet-1.2.0.json b/target_chains/cosmwasm/tools/store/edge/instantiate-pyth/injective_testnet-1.2.0.json new file mode 100644 index 00000000..f36b2a24 --- /dev/null +++ b/target_chains/cosmwasm/tools/store/edge/instantiate-pyth/injective_testnet-1.2.0.json @@ -0,0 +1,22 @@ +{ + "deploy-pyth-code": { + "status": "fulfilled", + "result": { + "txHash": "98A1B62C8BAC210199EE846EB24FC1D5A0A51D98660DDFCC638C09A6A17472AE", + "codeId": 1334 + } + }, + "instantiate-contract": { + "status": "fulfilled", + "result": { + "txHash": "A52159524B70297968F1FEFE54BBB395034D055624D9A7089A5E1AD633F555C6", + "contractAddr": "inj1rsw2p7dp4ezu02a6h0d026c5qh3vx79raal6pq" + } + }, + "set-own-admin": { + "status": "fulfilled", + "result": { + "txHash": "D1235A3BCB49F98E6211BE565A1C9351673D67DC5A1C4C5B31F36D732CCE8DCE" + } + } +} diff --git a/target_chains/cosmwasm/tools/store/edge/instantiate-pyth/juno_testnet-1.2.0.json b/target_chains/cosmwasm/tools/store/edge/instantiate-pyth/juno_testnet-1.2.0.json new file mode 100644 index 00000000..4cd04b08 --- /dev/null +++ b/target_chains/cosmwasm/tools/store/edge/instantiate-pyth/juno_testnet-1.2.0.json @@ -0,0 +1,22 @@ +{ + "deploy-pyth-code": { + "status": "fulfilled", + "result": { + "codeId": 1888, + "txHash": "76869C7ACD433D74783668D7459957AF708A408E3C93E89BF6E18D045F420190" + } + }, + "instantiate-contract": { + "status": "fulfilled", + "result": { + "contractAddr": "juno1jh89jkvvh8yfcxrt79p9d34el3ds8f845tvlvn6hpy6d5nwnn58srhadyy", + "txHash": "8C7E3551437A324278261CBFD25FD10998A71D642B0F7EDE57B2D6AC62BE5219" + } + }, + "set-own-admin": { + "status": "fulfilled", + "result": { + "txHash": "51ECDC4927B50E33F3AFF86C457E7ABC6F79FD41F36F9E26B3370BB261F83759" + } + } +} diff --git a/target_chains/cosmwasm/tools/store/edge/instantiate-pyth/neutron_testnet_pion_1-1.2.0.json b/target_chains/cosmwasm/tools/store/edge/instantiate-pyth/neutron_testnet_pion_1-1.2.0.json new file mode 100644 index 00000000..80ba1b10 --- /dev/null +++ b/target_chains/cosmwasm/tools/store/edge/instantiate-pyth/neutron_testnet_pion_1-1.2.0.json @@ -0,0 +1,22 @@ +{ + "deploy-pyth-code": { + "status": "fulfilled", + "result": { + "codeId": 473, + "txHash": "73EFB113F0AA5D4C7DC98E96F1452E5DCC1C8C43F335CADEB7351777F0D7F7F1" + } + }, + "instantiate-contract": { + "status": "fulfilled", + "result": { + "contractAddr": "neutron1e52nk064un8kad6z6xw8vu9uhp699wcdqkkve2qhpdsya6tqp69qys4xcz", + "txHash": "67DDA90AE2515DA518F4AD6CC99A0770BA303DBCEDF530187E570AFFEC12EC0D" + } + }, + "set-own-admin": { + "status": "fulfilled", + "result": { + "txHash": "913A34B58BF1276401ACFF66F05DD0CAD74F1FD9261FB1563FE7FFE34F29E8BB" + } + } +} diff --git a/target_chains/cosmwasm/tools/store/edge/instantiate-pyth/osmosis_testnet_4-1.2.0.json b/target_chains/cosmwasm/tools/store/edge/instantiate-pyth/osmosis_testnet_4-1.2.0.json new file mode 100644 index 00000000..9f75cf5b --- /dev/null +++ b/target_chains/cosmwasm/tools/store/edge/instantiate-pyth/osmosis_testnet_4-1.2.0.json @@ -0,0 +1,22 @@ +{ + "deploy-pyth-code": { + "status": "fulfilled", + "result": { + "codeId": 7133, + "txHash": "AE36A4CAB335E9D1EF7E721F82FCAEC6A41E864886642FE3BAE5C93A692E0E91" + } + }, + "instantiate-contract": { + "status": "fulfilled", + "result": { + "contractAddr": "osmo13uelnx8ly3gc3l6sp7chsp23y025vmg73cw4lln6efm84h9ehl2q6j847p", + "txHash": "099841FD973C8E5C03973175585332B606F22B00A23C3BE023B51B66A043BAD8" + } + }, + "set-own-admin": { + "status": "fulfilled", + "result": { + "txHash": "3FD23762917EA5084D71B01A9158A732BEDA6D9ADD42EB52F18B8EF26B9CA957" + } + } +} diff --git a/target_chains/cosmwasm/tools/store/edge/instantiate-pyth/osmosis_testnet_5-1.2.0.json b/target_chains/cosmwasm/tools/store/edge/instantiate-pyth/osmosis_testnet_5-1.2.0.json new file mode 100644 index 00000000..0a5ff021 --- /dev/null +++ b/target_chains/cosmwasm/tools/store/edge/instantiate-pyth/osmosis_testnet_5-1.2.0.json @@ -0,0 +1,22 @@ +{ + "deploy-pyth-code": { + "status": "fulfilled", + "result": { + "codeId": 214, + "txHash": "435D94FBBF4523CAF79386C2B73E0C723947DF15ECF61C5AE96422B1C288840D" + } + }, + "instantiate-contract": { + "status": "fulfilled", + "result": { + "contractAddr": "osmo14tkdsu8x3adqsldcx2h88ez6vt4f5z566mkgxaq696ztext2xxxquq5u6v", + "txHash": "81DA00CB7165CF03A937F4806FADC212E34F2132F89769C8382D9780E67F0B6C" + } + }, + "set-own-admin": { + "status": "fulfilled", + "result": { + "txHash": "61429384488D4850C3B4A26A576364D33EA0641B3A8CDF966FB03509E9B6ADDB" + } + } +} diff --git a/target_chains/cosmwasm/tools/store/edge/instantiate-pyth/sei_testnet_atlantic_2-1.2.0.json b/target_chains/cosmwasm/tools/store/edge/instantiate-pyth/sei_testnet_atlantic_2-1.2.0.json new file mode 100644 index 00000000..58ef31a4 --- /dev/null +++ b/target_chains/cosmwasm/tools/store/edge/instantiate-pyth/sei_testnet_atlantic_2-1.2.0.json @@ -0,0 +1,6 @@ +{ + "deploy-pyth-code": { + "status": "rejected", + "reason": {} + } +} diff --git a/target_chains/cosmwasm/tools/store/edge/test-contracts/injective_testnet-1.2.0.json b/target_chains/cosmwasm/tools/store/edge/test-contracts/injective_testnet-1.2.0.json new file mode 100644 index 00000000..7423c45b --- /dev/null +++ b/target_chains/cosmwasm/tools/store/edge/test-contracts/injective_testnet-1.2.0.json @@ -0,0 +1,34 @@ +{ + "push-price-update": { + "status": "rejected", + "reason": { + "code": 2, + "metadata": { + "headersMap": { + "date": ["Mon, 22 May 2023 14:18:22 GMT"], + "content-type": ["application/grpc-web+proto"], + "transfer-encoding": ["chunked"], + "connection": ["close"], + "set-cookie": [ + "chain-cookie=897b26a087ddf13b95194a034c704cf7; Expires=Wed, 24-May-23 14:18:22 GMT; Max-Age=172800; Path=/; Secure; HttpOnly" + ], + "access-control-expose-headers": [ + "X-Cosmos-Block-Height, Grpc-Status, Grpc-Message, Grpc-Status-Details-Bin, Date, Vary, Content-Type, grpc-status, grpc-message" + ], + "grpc-message": [ + "failed to execute message; message index: 0: dispatch: submessages: unauthorized Pyth price relay [!injective!labs/wasmd@v0.30.0-inj-1/x/wasm/keeper/keeper.go:1238] With gas wanted: '30000000' and gas used: '326963'" + ], + "grpc-status": ["2"], + "grpc-status-details-bin": [ + "CAIS2AFmYWlsZWQgdG8gZXhlY3V0ZSBtZXNzYWdlOyBtZXNzYWdlIGluZGV4OiAwOiBkaXNwYXRjaDogc3VibWVzc2FnZXM6IHVuYXV0aG9yaXplZCBQeXRoIHByaWNlIHJlbGF5IFshaW5qZWN0aXZlIWxhYnMvd2FzbWRAdjAuMzAuMC1pbmotMS94L3dhc20va2VlcGVyL2tlZXBlci5nbzoxMjM4XSBXaXRoIGdhcyB3YW50ZWQ6ICczMDAwMDAwMCcgYW5kIGdhcyB1c2VkOiAnMzI2OTYzJyAacAoodHlwZS5nb29nbGVhcGlzLmNvbS9nb29nbGUucnBjLkVycm9ySW5mbxJECh11bmF1dGhvcml6ZWQgUHl0aCBwcmljZSByZWxheRoTCglDb2Rlc3BhY2USBm9yYWNsZRoOCghBQkNJQ29kZRICMzU" + ], + "vary": ["Origin, Origin"], + "x-cosmos-block-height": ["11702504"], + "strict-transport-security": ["max-age=15724800; includeSubDomains"], + "access-control-allow-origin": ["*"], + "access-control-allow-credentials": ["true"] + } + } + } + } +} diff --git a/target_chains/cosmwasm/tools/store/edge/test-contracts/osmosis_testnet_4-1.2.0.json b/target_chains/cosmwasm/tools/store/edge/test-contracts/osmosis_testnet_4-1.2.0.json new file mode 100644 index 00000000..849259e0 --- /dev/null +++ b/target_chains/cosmwasm/tools/store/edge/test-contracts/osmosis_testnet_4-1.2.0.json @@ -0,0 +1,28 @@ +{ + "push-price-update": { + "status": "fulfilled", + "result": { + "txHash": "ED580159C0393A11223C2CC1C51200D0BDC9EB28E22C5DB28AA5934761248F78" + } + }, + "fetch-price-feed-update": { + "status": "fulfilled", + "result": { + "price_feed": { + "id": "f9c0172ba10dfa4d19088d94f5bf61d3b54d5bd7483a322a982e1373ee8ea31b", + "price": { + "price": "2690892219934", + "conf": "640219934", + "expo": -8, + "publish_time": 1684765098 + }, + "ema_price": { + "price": "2687619200000", + "conf": "644806510", + "expo": -8, + "publish_time": 1684765098 + } + } + } + } +} diff --git a/target_chains/cosmwasm/tools/store/edge/test-contracts/osmosis_testnet_5-1.2.0.json b/target_chains/cosmwasm/tools/store/edge/test-contracts/osmosis_testnet_5-1.2.0.json new file mode 100644 index 00000000..bd1ae921 --- /dev/null +++ b/target_chains/cosmwasm/tools/store/edge/test-contracts/osmosis_testnet_5-1.2.0.json @@ -0,0 +1,28 @@ +{ + "push-price-update": { + "status": "fulfilled", + "result": { + "txHash": "570218013CF48B72BB00E5DF8349EF3967962C399B2659FFA36663C6D97CFF4B" + } + }, + "fetch-price-feed-update": { + "status": "fulfilled", + "result": { + "price_feed": { + "id": "f9c0172ba10dfa4d19088d94f5bf61d3b54d5bd7483a322a982e1373ee8ea31b", + "price": { + "price": "2691128116226", + "conf": "783518657", + "expo": -8, + "publish_time": 1684765109 + }, + "ema_price": { + "price": "2687631700000", + "conf": "644643440", + "expo": -8, + "publish_time": 1684765109 + } + } + } + } +} diff --git a/target_chains/cosmwasm/tools/store/stable/instantiate-pyth/injective_testnet-1.2.0.json b/target_chains/cosmwasm/tools/store/stable/instantiate-pyth/injective_testnet-1.2.0.json new file mode 100644 index 00000000..ece7ef31 --- /dev/null +++ b/target_chains/cosmwasm/tools/store/stable/instantiate-pyth/injective_testnet-1.2.0.json @@ -0,0 +1,22 @@ +{ + "deploy-pyth-code": { + "status": "fulfilled", + "result": { + "txHash": "152C096B601252279BCBB9FB15D6B6E4C0FFF2A4E428F24C8F47B86BBFB757BA", + "codeId": 1333 + } + }, + "instantiate-contract": { + "status": "fulfilled", + "result": { + "txHash": "B9B18667E75A21D82A4684FEDE8DAB57BC4575E19EAB8A5D6FAC8F7D816D064D", + "contractAddr": "inj1228a0hxh6pnu6mnwmwvxus2lufwetnqrhz9hk9" + } + }, + "set-own-admin": { + "status": "fulfilled", + "result": { + "txHash": "13F148074A7D0D392C77A4A71F8E25BF6C2592A216392E2BA909915E74B67FAA" + } + } +} diff --git a/target_chains/cosmwasm/tools/store/stable/instantiate-pyth/juno_testnet-1.2.0.json b/target_chains/cosmwasm/tools/store/stable/instantiate-pyth/juno_testnet-1.2.0.json new file mode 100644 index 00000000..89de53e1 --- /dev/null +++ b/target_chains/cosmwasm/tools/store/stable/instantiate-pyth/juno_testnet-1.2.0.json @@ -0,0 +1,22 @@ +{ + "deploy-pyth-code": { + "status": "fulfilled", + "result": { + "codeId": 1887, + "txHash": "7295D9B243928F66B786C74FAC622533F68B5C19F7B1F1C701BCFF3E33268383" + } + }, + "instantiate-contract": { + "status": "fulfilled", + "result": { + "contractAddr": "juno16uf644hk8ttekqkv9mjc0rmk5a7jeg84h4kfuj67e6y54c0up6yqpa3v9t", + "txHash": "B2F15C9CDE960B405A3843ABA535A91FB95FC43823E7D2B15C4EDBEE2F333FE9" + } + }, + "set-own-admin": { + "status": "fulfilled", + "result": { + "txHash": "EFA1BE55168369371B6C4852011D8AFE9B1C557AE3D92D6C9C9B3CA0CE2DD122" + } + } +} diff --git a/target_chains/cosmwasm/tools/store/stable/instantiate-pyth/neutron_testnet_pion_1-1.2.0.json b/target_chains/cosmwasm/tools/store/stable/instantiate-pyth/neutron_testnet_pion_1-1.2.0.json new file mode 100644 index 00000000..6f756f69 --- /dev/null +++ b/target_chains/cosmwasm/tools/store/stable/instantiate-pyth/neutron_testnet_pion_1-1.2.0.json @@ -0,0 +1,22 @@ +{ + "deploy-pyth-code": { + "status": "fulfilled", + "result": { + "codeId": 472, + "txHash": "00A7125012E7B5ECE6DB5938DC177B37A37C0AEC42B08D3D5A7B3CC9C1A2161D" + } + }, + "instantiate-contract": { + "status": "fulfilled", + "result": { + "contractAddr": "neutron1r02wenxmllx8avqqd2nh4fa40ps6ka0vawl4ushvk7kllgq6de3q060zat", + "txHash": "283DC501A8860BF203D9B97D90FE0E894CE38A54749FB8F04B0FFA35F2385521" + } + }, + "set-own-admin": { + "status": "fulfilled", + "result": { + "txHash": "DD8756593547B35BDEDB6A66EAB25D1CD03B6D7494F5449291DD766A7D925E57" + } + } +} diff --git a/target_chains/cosmwasm/tools/store/stable/instantiate-pyth/osmosis_testnet_4-1.2.0.json b/target_chains/cosmwasm/tools/store/stable/instantiate-pyth/osmosis_testnet_4-1.2.0.json new file mode 100644 index 00000000..1cb3adb2 --- /dev/null +++ b/target_chains/cosmwasm/tools/store/stable/instantiate-pyth/osmosis_testnet_4-1.2.0.json @@ -0,0 +1,22 @@ +{ + "deploy-pyth-code": { + "status": "fulfilled", + "result": { + "codeId": 7132, + "txHash": "63B8EBA9DB096D34D0A20EACA201F11C11CCD8CAF8FDCA1C54C6EC3C9096676E" + } + }, + "instantiate-contract": { + "status": "fulfilled", + "result": { + "contractAddr": "osmo1jzrpy80uzhypjpg9r88dshqy8slmcfenwgem2n2acgd55zdgk07sm2w0ar", + "txHash": "BA8844E42D412FB07AA752086674A991112500F6DA0799454C731BCAC9E5F6A7" + } + }, + "set-own-admin": { + "status": "fulfilled", + "result": { + "txHash": "C9508A2252269E7863D10980FA4309ECFD0BEF7F9D138ABD80ABE7523ABCB833" + } + } +} diff --git a/target_chains/cosmwasm/tools/store/stable/instantiate-pyth/osmosis_testnet_5-1.2.0.json b/target_chains/cosmwasm/tools/store/stable/instantiate-pyth/osmosis_testnet_5-1.2.0.json new file mode 100644 index 00000000..3639c439 --- /dev/null +++ b/target_chains/cosmwasm/tools/store/stable/instantiate-pyth/osmosis_testnet_5-1.2.0.json @@ -0,0 +1,22 @@ +{ + "deploy-pyth-code": { + "status": "fulfilled", + "result": { + "codeId": 213, + "txHash": "667B97258DE10844A41FDA7B773DABE680FF3A272027F82C3FF8F94B9198ED27" + } + }, + "instantiate-contract": { + "status": "fulfilled", + "result": { + "contractAddr": "osmo1cskn9mhyj4f3e5t0vcuujvug4pte7qzcmmfqyncckhy82zar6feq5chter", + "txHash": "EA7B5ED27B9331AFAF835AB1FDA6F0F5AD291923EE9EF2FE05FC2221E542CF70" + } + }, + "set-own-admin": { + "status": "fulfilled", + "result": { + "txHash": "4B2C516AEE584AB30E821FD898FA5AF7B709F8AEFBEFD186AFD5969178059643" + } + } +} diff --git a/target_chains/cosmwasm/tools/store/stable/instantiate-pyth/sei_testnet_atlantic_2-1.2.0.json b/target_chains/cosmwasm/tools/store/stable/instantiate-pyth/sei_testnet_atlantic_2-1.2.0.json new file mode 100644 index 00000000..9335214f --- /dev/null +++ b/target_chains/cosmwasm/tools/store/stable/instantiate-pyth/sei_testnet_atlantic_2-1.2.0.json @@ -0,0 +1,10 @@ +{ + "deploy-pyth-code": { + "status": "rejected", + "reason": { + "code": 5, + "codespace": "sdk", + "log": "" + } + } +} diff --git a/target_chains/cosmwasm/tools/store/stable/test-contracts/injective_testnet-1.2.0.json b/target_chains/cosmwasm/tools/store/stable/test-contracts/injective_testnet-1.2.0.json new file mode 100644 index 00000000..73250da8 --- /dev/null +++ b/target_chains/cosmwasm/tools/store/stable/test-contracts/injective_testnet-1.2.0.json @@ -0,0 +1,34 @@ +{ + "push-price-update": { + "status": "rejected", + "reason": { + "code": 2, + "metadata": { + "headersMap": { + "date": ["Mon, 22 May 2023 14:19:12 GMT"], + "content-type": ["application/grpc-web+proto"], + "transfer-encoding": ["chunked"], + "connection": ["close"], + "set-cookie": [ + "chain-cookie=26cc53620be2cd8c5e20599b6cee03e1; Expires=Wed, 24-May-23 14:19:12 GMT; Max-Age=172800; Path=/; Secure; HttpOnly" + ], + "access-control-expose-headers": [ + "Vary, Grpc-Status-Details-Bin, Date, Content-Type, X-Cosmos-Block-Height, Grpc-Status, Grpc-Message, grpc-status, grpc-message" + ], + "grpc-message": [ + "failed to execute message; message index: 0: dispatch: submessages: unauthorized Pyth price relay [!injective!labs/wasmd@v0.30.0-inj-1/x/wasm/keeper/keeper.go:1238] With gas wanted: '30000000' and gas used: '456932'" + ], + "grpc-status": ["2"], + "grpc-status-details-bin": [ + "CAIS2AFmYWlsZWQgdG8gZXhlY3V0ZSBtZXNzYWdlOyBtZXNzYWdlIGluZGV4OiAwOiBkaXNwYXRjaDogc3VibWVzc2FnZXM6IHVuYXV0aG9yaXplZCBQeXRoIHByaWNlIHJlbGF5IFshaW5qZWN0aXZlIWxhYnMvd2FzbWRAdjAuMzAuMC1pbmotMS94L3dhc20va2VlcGVyL2tlZXBlci5nbzoxMjM4XSBXaXRoIGdhcyB3YW50ZWQ6ICczMDAwMDAwMCcgYW5kIGdhcyB1c2VkOiAnNDU2OTMyJyAacAoodHlwZS5nb29nbGVhcGlzLmNvbS9nb29nbGUucnBjLkVycm9ySW5mbxJECh11bmF1dGhvcml6ZWQgUHl0aCBwcmljZSByZWxheRoTCglDb2Rlc3BhY2USBm9yYWNsZRoOCghBQkNJQ29kZRICMzU" + ], + "vary": ["Origin, Origin"], + "x-cosmos-block-height": ["11702525"], + "strict-transport-security": ["max-age=15724800; includeSubDomains"], + "access-control-allow-origin": ["*"], + "access-control-allow-credentials": ["true"] + } + } + } + } +} diff --git a/target_chains/cosmwasm/tools/store/stable/test-contracts/osmosis_testnet_4-1.2.0.json b/target_chains/cosmwasm/tools/store/stable/test-contracts/osmosis_testnet_4-1.2.0.json new file mode 100644 index 00000000..7a669b1c --- /dev/null +++ b/target_chains/cosmwasm/tools/store/stable/test-contracts/osmosis_testnet_4-1.2.0.json @@ -0,0 +1,28 @@ +{ + "push-price-update": { + "status": "fulfilled", + "result": { + "txHash": "3FCC45CA1B82CA05BDDBE4BB528DCDB354CBC599F973B08F514A16437342EA8B" + } + }, + "fetch-price-feed-update": { + "status": "fulfilled", + "result": { + "price_feed": { + "id": "e62df6c8b4a85fe1a67db44dc12de5db330f7ac66b72dc658afedf0f4a415b43", + "price": { + "price": "2692904856472", + "conf": "789206669", + "expo": -8, + "publish_time": 1684765152 + }, + "ema_price": { + "price": "2687021600000", + "conf": "646106260", + "expo": -8, + "publish_time": 1684765152 + } + } + } + } +} diff --git a/target_chains/cosmwasm/tools/store/stable/test-contracts/osmosis_testnet_5-1.2.0.json b/target_chains/cosmwasm/tools/store/stable/test-contracts/osmosis_testnet_5-1.2.0.json new file mode 100644 index 00000000..f9dece0a --- /dev/null +++ b/target_chains/cosmwasm/tools/store/stable/test-contracts/osmosis_testnet_5-1.2.0.json @@ -0,0 +1,28 @@ +{ + "push-price-update": { + "status": "fulfilled", + "result": { + "txHash": "82EEEF5980B69EC8A5DC86B3E0C8E936DAF2EC428F14C1B3FDC5D0DF8E05866A" + } + }, + "fetch-price-feed-update": { + "status": "fulfilled", + "result": { + "price_feed": { + "id": "e62df6c8b4a85fe1a67db44dc12de5db330f7ac66b72dc658afedf0f4a415b43", + "price": { + "price": "2693155000000", + "conf": "741500000", + "expo": -8, + "publish_time": 1684765163 + }, + "ema_price": { + "price": "2687039700000", + "conf": "646255300", + "expo": -8, + "publish_time": 1684765163 + } + } + } + } +} diff --git a/target_chains/cosmwasm/tools/testnet/instantiate-pyth/injective-1.2.0.json b/target_chains/cosmwasm/tools/testnet/instantiate-pyth/injective-1.2.0.json deleted file mode 100644 index fefac659..00000000 --- a/target_chains/cosmwasm/tools/testnet/instantiate-pyth/injective-1.2.0.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "deploy-pyth-code": { - "status": "fulfilled", - "result": { - "txHash": "193319C684AB2D1CA0681F051D987A2112027A87A8F9BB75C938AF51B65E6F9B", - "codeId": 1138 - } - }, - "instantiate-contract": { - "status": "fulfilled", - "result": { - "txHash": "5B8D14C4AA0D75C42681F6F1E68F4DD4DF49EB5B3D5DD97DF421B5C89F878A16", - "contractAddr": "inj1yzx0wdn6t7xrjdpgztnrraq57nw2zxhstr97xw" - } - }, - "set-own-admin": { - "status": "fulfilled", - "result": { - "txHash": "FDEC7C27C8B2AB1148C7AFEFD8AEB8D64F5119CFA70898803A0F88C56AE1A64F" - } - } -} diff --git a/target_chains/cosmwasm/tools/testnet/instantiate-pyth/juno-1.2.0.json b/target_chains/cosmwasm/tools/testnet/instantiate-pyth/juno-1.2.0.json deleted file mode 100644 index 7e9e4903..00000000 --- a/target_chains/cosmwasm/tools/testnet/instantiate-pyth/juno-1.2.0.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "deploy-pyth-code": { - "status": "fulfilled", - "result": { - "codeId": 1807, - "txHash": "92123EFAEC260CAF9141AEE163CA4185C410EE82E4387AED2D95BA0C9F2068D1" - } - }, - "instantiate-contract": { - "status": "fulfilled", - "result": { - "contractAddr": "juno1ygyhu0zn69zm0354nzpd7zrp5xs9vpkqcuk7kfneyghrpa87msmqeskxqa", - "txHash": "09CC1174E8816F8628E2F17887CB718766E3B1032A4173A85682BF278A1DB53D" - } - }, - "set-own-admin": { - "status": "fulfilled", - "result": { - "txHash": "042B4697E5CAFCB73C8EC5514C9A8E52CC3BD96BC645DD47F07030C5B075A545" - } - } -} diff --git a/target_chains/cosmwasm/tools/testnet/instantiate-pyth/neutron_pion_1-1.2.0.json b/target_chains/cosmwasm/tools/testnet/instantiate-pyth/neutron_pion_1-1.2.0.json deleted file mode 100644 index 16c4a5ba..00000000 --- a/target_chains/cosmwasm/tools/testnet/instantiate-pyth/neutron_pion_1-1.2.0.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "deploy-pyth-code": { - "status": "fulfilled", - "result": { - "codeId": 245, - "txHash": "23783BB7AE1D66EA132B25C505B9E15F4E899D58EA8A57545C62BBB50DC40F9D" - } - }, - "instantiate-contract": { - "status": "fulfilled", - "result": { - "contractAddr": "neutron1zpn7yhxqx2f0c6cpmp3fr42yafupz9elglvgdss2300c847ph0hsgurhlj", - "txHash": "24372E431DA7DD46DCFCABA1E18E6C8427A03EE2D6BE9DB4E700906FEEF333FC" - } - }, - "set-own-admin": { - "status": "fulfilled", - "result": { - "txHash": "A604787CA8E32079B1A05CE5BDED1183E46102860E1A5A924A1A15B9932947BC" - } - } -} diff --git a/target_chains/cosmwasm/tools/testnet/instantiate-pyth/osmosis_4-1.2.0.json b/target_chains/cosmwasm/tools/testnet/instantiate-pyth/osmosis_4-1.2.0.json deleted file mode 100644 index 79c8fb4a..00000000 --- a/target_chains/cosmwasm/tools/testnet/instantiate-pyth/osmosis_4-1.2.0.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "deploy-pyth-code": { - "status": "fulfilled", - "result": { - "codeId": 6957, - "txHash": "BEA793ECF41BE43AFD43254D4241C6D2C9124271371A52D1856116EE68B953E3" - } - }, - "instantiate-contract": { - "status": "fulfilled", - "result": { - "contractAddr": "osmo1xws8v2yv50v0spn90yr9fe9zx8zxfppl3syn38zw59npvp8dd70sutnvsm", - "txHash": "C2BE424676D9680CFA8AE1C3DFD09E489D4D65A2A37EA0C5D311BFB21DF39A4A" - } - }, - "set-own-admin": { - "status": "fulfilled", - "result": { - "txHash": "8500646587F80EEE7E066263236DB4C01D4F41EF7BD6F0029542B18771CA03FD" - } - } -} diff --git a/target_chains/cosmwasm/tools/testnet/instantiate-pyth/osmosis_5-1.2.0.json b/target_chains/cosmwasm/tools/testnet/instantiate-pyth/osmosis_5-1.2.0.json deleted file mode 100644 index 07848fc3..00000000 --- a/target_chains/cosmwasm/tools/testnet/instantiate-pyth/osmosis_5-1.2.0.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "deploy-pyth-code": { - "status": "fulfilled", - "result": { - "codeId": 60, - "txHash": "4F4C940801C122C4F25DBF4E5BFC513859C8EBAE596E2225E9274C724A1C29BE" - } - }, - "instantiate-contract": { - "status": "fulfilled", - "result": { - "contractAddr": "osmo12u2vqdecdte84kg6c3d40nwzjsya59hsj048n687m9q3t6wdmqgsq6zrlx", - "txHash": "8793156BE964DCF2631F2EE4E6C3D9FF9E037ACD89ABB3DA3B3242766CA689E7" - } - }, - "set-own-admin": { - "status": "fulfilled", - "result": { - "txHash": "4E329EE9AE8F63DFC5C876573D5EA66063C875B4591B13555855937FE57B31B6" - } - } -} diff --git a/target_chains/cosmwasm/tools/testnet/instantiate-pyth/sei_atlantic_2-1.2.0.json b/target_chains/cosmwasm/tools/testnet/instantiate-pyth/sei_atlantic_2-1.2.0.json deleted file mode 100644 index db0a9412..00000000 --- a/target_chains/cosmwasm/tools/testnet/instantiate-pyth/sei_atlantic_2-1.2.0.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "deploy-pyth-code": { - "status": "fulfilled", - "result": { - "codeId": 370, - "txHash": "C6290D3455B244DD9B8503E5F219EECA29DB7B750B3FFC36CE07C7002743F522" - } - }, - "instantiate-contract": { - "status": "fulfilled", - "result": { - "contractAddr": "sei1977nnu5jqatteqgve8tx7nzu9y7eh6cvq0e4g6xjx8tf5wm4nkmsfljunh", - "txHash": "D0ACC86A5098E70F6DCA8408EE41C3E774836F2C2796DADBEE5DAC70D74582DD" - } - }, - "set-own-admin": { - "status": "fulfilled", - "result": { - "txHash": "5C5ACED6A47A32BB1990656FBC4960BCB12847CEC32C0BC61F44D2DB07B3E07B" - } - } -} diff --git a/target_chains/cosmwasm/wormhole-stub/edge/injective_testnet-2.14.9.json b/target_chains/cosmwasm/wormhole-stub/edge/injective_testnet-2.14.9.json new file mode 100644 index 00000000..c478f7f6 --- /dev/null +++ b/target_chains/cosmwasm/wormhole-stub/edge/injective_testnet-2.14.9.json @@ -0,0 +1,22 @@ +{ + "deploy-wormhole-code": { + "status": "fulfilled", + "result": { + "txHash": "6FCD437FE0EBB28614022E0FC3E34D3322D200FB08518CC761D8AC2C11619141", + "codeId": 1331 + } + }, + "instantiate-contract": { + "status": "fulfilled", + "result": { + "txHash": "8BB15D28C0534467DF4C66AB9B8A075584A823E810386BBDBBA5A80A935280AF", + "contractAddr": "inj1hglkee95shfsl5xxky26hdqxj0mqp54lh7xm59" + } + }, + "set-own-admin": { + "status": "fulfilled", + "result": { + "txHash": "734C4200684D83BB84AA96168C310CFA4B130CD8410C3A9F9BF60CCDE6F26F84" + } + } +} diff --git a/target_chains/cosmwasm/wormhole-stub/edge/juno_testnet-2.14.9.json b/target_chains/cosmwasm/wormhole-stub/edge/juno_testnet-2.14.9.json new file mode 100644 index 00000000..dc24ee06 --- /dev/null +++ b/target_chains/cosmwasm/wormhole-stub/edge/juno_testnet-2.14.9.json @@ -0,0 +1,22 @@ +{ + "deploy-wormhole-code": { + "status": "fulfilled", + "result": { + "codeId": 1885, + "txHash": "32BDB4863384BC2FA3AEF2F9D72AD0F8B92296862409CC934AEFF4003A255E87" + } + }, + "instantiate-contract": { + "status": "fulfilled", + "result": { + "contractAddr": "juno1g9xhl5jzhlm6lqc2earxkzyazwl2cshr5cnemxtjy0le64s4w22skukkxj", + "txHash": "A69B6651EEB76E41F5D5884EDAA7EC43925750B4A277D27ED2E53359465F482B" + } + }, + "set-own-admin": { + "status": "fulfilled", + "result": { + "txHash": "791389480F1CBBD7777F859F300065E8A2F75048A09A615605723263A98C7D8A" + } + } +} diff --git a/target_chains/cosmwasm/wormhole-stub/edge/neutron_testnet_pion_1-2.14.9.json b/target_chains/cosmwasm/wormhole-stub/edge/neutron_testnet_pion_1-2.14.9.json new file mode 100644 index 00000000..ba11a35c --- /dev/null +++ b/target_chains/cosmwasm/wormhole-stub/edge/neutron_testnet_pion_1-2.14.9.json @@ -0,0 +1,22 @@ +{ + "deploy-wormhole-code": { + "status": "fulfilled", + "result": { + "codeId": 470, + "txHash": "BDD4AEB11E02B22B22624BDD98301BDA057192AF666A73B4D8090D41FB43474D" + } + }, + "instantiate-contract": { + "status": "fulfilled", + "result": { + "contractAddr": "neutron1nxs2ajn4ejrggfuvqczfx4txghrendcpy3526avg2tsngjktedtspgla8t", + "txHash": "40E62B2FDC59CFEAFC22762B6142158394811FBEFEBAC3C493031FC9C138180F" + } + }, + "set-own-admin": { + "status": "fulfilled", + "result": { + "txHash": "E197367F00F2EA5EB2B209A29C73E9A5731E41289C392ACF60750753EF7F6558" + } + } +} diff --git a/target_chains/cosmwasm/wormhole-stub/edge/osmosis_testnet_4-2.14.9.json b/target_chains/cosmwasm/wormhole-stub/edge/osmosis_testnet_4-2.14.9.json new file mode 100644 index 00000000..b3ebb51d --- /dev/null +++ b/target_chains/cosmwasm/wormhole-stub/edge/osmosis_testnet_4-2.14.9.json @@ -0,0 +1,22 @@ +{ + "deploy-wormhole-code": { + "status": "fulfilled", + "result": { + "codeId": 7130, + "txHash": "692DAB9B4EFE3F94C7D4A80488CF783CB1E889D4D928008027CAF63C1804FC41" + } + }, + "instantiate-contract": { + "status": "fulfilled", + "result": { + "contractAddr": "osmo1yh0fe3vzk97kktt9r8h460nye55c2freayx4w62dt3hmw987y4ussurxew", + "txHash": "1D930C3C434902EBFE7E2C21E5AD31C216EEEF2907846CEADCF701A3B0365892" + } + }, + "set-own-admin": { + "status": "fulfilled", + "result": { + "txHash": "766B58D3F8235E1D88212C5721440616026630A7497E1CC9F7D3C999A90FD8D6" + } + } +} diff --git a/target_chains/cosmwasm/wormhole-stub/edge/osmosis_testnet_5-2.14.9.json b/target_chains/cosmwasm/wormhole-stub/edge/osmosis_testnet_5-2.14.9.json new file mode 100644 index 00000000..30be5a6f --- /dev/null +++ b/target_chains/cosmwasm/wormhole-stub/edge/osmosis_testnet_5-2.14.9.json @@ -0,0 +1,22 @@ +{ + "deploy-wormhole-code": { + "status": "fulfilled", + "result": { + "codeId": 210, + "txHash": "6C1B94D25A47DA90D61D553E8C52D55290FAAD9C56029748B272C5E438BCD591" + } + }, + "instantiate-contract": { + "status": "fulfilled", + "result": { + "contractAddr": "osmo19ah8ak7rgmds40te22xnz7zsdmx5twjulv3sypqm79skkl2ajm4skuhwmf", + "txHash": "2833D3B3FF4D3A78D5157F2F9B6F5A71515113439E95183A2F151E94843EBF92" + } + }, + "set-own-admin": { + "status": "fulfilled", + "result": { + "txHash": "FC58312A9043611CDD5EFA96478244DB4A14667C50AC16C08B6CDB0BB15FAA73" + } + } +} diff --git a/target_chains/cosmwasm/wormhole-stub/edge/sei_atlantic_testnet_2-2.14.9.json b/target_chains/cosmwasm/wormhole-stub/edge/sei_atlantic_testnet_2-2.14.9.json new file mode 100644 index 00000000..b0bef7c5 --- /dev/null +++ b/target_chains/cosmwasm/wormhole-stub/edge/sei_atlantic_testnet_2-2.14.9.json @@ -0,0 +1,10 @@ +{ + "deploy-wormhole-code": { + "status": "rejected", + "reason": { + "code": 5, + "codespace": "sdk", + "log": "" + } + } +} diff --git a/target_chains/cosmwasm/wormhole-stub/stable/injective_testnet-2.14.9.json b/target_chains/cosmwasm/wormhole-stub/stable/injective_testnet-2.14.9.json new file mode 100644 index 00000000..e4a2c2cb --- /dev/null +++ b/target_chains/cosmwasm/wormhole-stub/stable/injective_testnet-2.14.9.json @@ -0,0 +1,40 @@ +{ + "deploy-wormhole-code": { + "status": "fulfilled", + "result": { + "txHash": "FE81072106D8DDA388804B8A1A590AD8796A45AC83B63120CFE5673F7F15EF49", + "codeId": 1332 + } + }, + "instantiate-contract": { + "status": "fulfilled", + "result": { + "txHash": "343906935EEC0C1B4E1F63BA379EE77B52588CE99E6961A682B2004554AB7108", + "contractAddr": "inj17sy3vx5dfeva9wx33d09yqdwruntpccnjyw0hj" + } + }, + "set-own-admin": { + "status": "fulfilled", + "result": { + "txHash": "BA69843DA903712167D709E136F5AE967D0D04401603C4FCB23A72A502FCFD18" + } + }, + "GUARDIAN_SET_UPGRADE_1_VAA": { + "status": "fulfilled", + "result": { + "txHash": "CDB601D4153C63B415908FEAB5D80BF2A3A4B06118FFCB9B922E6AA811375A9E" + } + }, + "GUARDIAN_SET_UPGRADE_2_VAA": { + "status": "fulfilled", + "result": { + "txHash": "80CE6312F486757DBA3E54F2A411C7F05F65BED4715A54F1C141A8F30DA442A5" + } + }, + "GUARDIAN_SET_UPGRADE_3_VAA": { + "status": "fulfilled", + "result": { + "txHash": "4A10072F131CEAA521C194A266948053E59AC31775228A1EBD16A1F97CD54D59" + } + } +} diff --git a/target_chains/cosmwasm/wormhole-stub/stable/juno_testnet-2.14.9.json b/target_chains/cosmwasm/wormhole-stub/stable/juno_testnet-2.14.9.json new file mode 100644 index 00000000..d2c32916 --- /dev/null +++ b/target_chains/cosmwasm/wormhole-stub/stable/juno_testnet-2.14.9.json @@ -0,0 +1,40 @@ +{ + "deploy-wormhole-code": { + "status": "fulfilled", + "result": { + "codeId": 1886, + "txHash": "C8528EE8A90148BDEF78F1F5E9E1AFBACC009E1922DBEBD0C2FA5808BBD90DD8" + } + }, + "instantiate-contract": { + "status": "fulfilled", + "result": { + "contractAddr": "juno1h7m0xwgu4qh0nrthahpydxzw7klvyd5w8d7jjl675p944ds7jr4sf3ta4l", + "txHash": "A09236DA89A9C0BE7C83A0DD3410D29985E139459635460B24CA60023BAA7B3D" + } + }, + "set-own-admin": { + "status": "fulfilled", + "result": { + "txHash": "9B5A30599102D811858E8891A71EC9A6266A2449666657B4F8CBDBBD9EE3028A" + } + }, + "GUARDIAN_SET_UPGRADE_1_VAA": { + "status": "fulfilled", + "result": { + "txHash": "EF9E6459A6D977F927397F5D897DB053DF76C45911FC3D769B30BD66085994C2" + } + }, + "GUARDIAN_SET_UPGRADE_2_VAA": { + "status": "fulfilled", + "result": { + "txHash": "6537ACE56F769CE9053739C6D99C8754ADA195B59A883649354D13BE4EF82332" + } + }, + "GUARDIAN_SET_UPGRADE_3_VAA": { + "status": "fulfilled", + "result": { + "txHash": "CE6AD3DB1086C3589EB770AAD2ECCA02157802BAF367F3CFDC81515C2461F9D6" + } + } +} diff --git a/target_chains/cosmwasm/wormhole-stub/stable/neutron_testnet_pion_1-2.14.9.json b/target_chains/cosmwasm/wormhole-stub/stable/neutron_testnet_pion_1-2.14.9.json new file mode 100644 index 00000000..4a4480f6 --- /dev/null +++ b/target_chains/cosmwasm/wormhole-stub/stable/neutron_testnet_pion_1-2.14.9.json @@ -0,0 +1,40 @@ +{ + "deploy-wormhole-code": { + "status": "fulfilled", + "result": { + "codeId": 471, + "txHash": "B9040626F0F295AB29B5158356EA9FEC0287F47A3B9AA0BA4F92DF087BA95271" + } + }, + "instantiate-contract": { + "status": "fulfilled", + "result": { + "contractAddr": "neutron1wtuuak4yt4vyhtv7gt4xnv0m8zfakad5lnz6r7dx8alyydu0sgns67kmvy", + "txHash": "6364F32E86326919C760AC5DE8C69CA753B7A830C4A2138F65B3847138971F4D" + } + }, + "set-own-admin": { + "status": "fulfilled", + "result": { + "txHash": "1D05FAC3DA7980F7CB28F9A99881DD630A4F3E028C03423B7D2A12127C58739A" + } + }, + "GUARDIAN_SET_UPGRADE_1_VAA": { + "status": "fulfilled", + "result": { + "txHash": "B6AAA6F13F33901A107A45643C57B75114F807C921A00B3BA277BADA3361F598" + } + }, + "GUARDIAN_SET_UPGRADE_2_VAA": { + "status": "fulfilled", + "result": { + "txHash": "796009ED6F910F29EAF153E493913AB1487BB2EE9BB6C75659E2236115FFC06C" + } + }, + "GUARDIAN_SET_UPGRADE_3_VAA": { + "status": "fulfilled", + "result": { + "txHash": "8C46D4BD36312D34F599ED71CFB62B635B96BCAEA21BDF75C29807D5CC9AF8BD" + } + } +} diff --git a/target_chains/cosmwasm/wormhole-stub/stable/osmosis_testnet_4-2.14.9.json b/target_chains/cosmwasm/wormhole-stub/stable/osmosis_testnet_4-2.14.9.json new file mode 100644 index 00000000..4d2d3fb9 --- /dev/null +++ b/target_chains/cosmwasm/wormhole-stub/stable/osmosis_testnet_4-2.14.9.json @@ -0,0 +1,40 @@ +{ + "deploy-wormhole-code": { + "status": "fulfilled", + "result": { + "codeId": 7131, + "txHash": "165CBD8DE1680C42C99B7E508383AF9A6441182469FE17B071D944DBBCFE250D" + } + }, + "instantiate-contract": { + "status": "fulfilled", + "result": { + "contractAddr": "osmo1lcv8tazwtf00rs3zlpdp5a7dlcw2zvsmxacvfdpdxwf242e8nhfscvrwdg", + "txHash": "601E0DF159B92E1AB6184D430AE329BF7988E6FEB08170671DC30EB80D091031" + } + }, + "set-own-admin": { + "status": "fulfilled", + "result": { + "txHash": "77FBC16D529BA8E064E283EFA387E3DFF7730028A1AF05E1AC7ECA280F8F6209" + } + }, + "GUARDIAN_SET_UPGRADE_1_VAA": { + "status": "fulfilled", + "result": { + "txHash": "3A8DC5F03AC31C7E8DE20889B2515E60A1938BC8F374A2F935B8EBD2612CE7B8" + } + }, + "GUARDIAN_SET_UPGRADE_2_VAA": { + "status": "fulfilled", + "result": { + "txHash": "176C79E3192FAD3BC6C72A74948CFB962F90AAED2F28B25CCE4B777642DBDF94" + } + }, + "GUARDIAN_SET_UPGRADE_3_VAA": { + "status": "fulfilled", + "result": { + "txHash": "9336F2FCA6E94BEAEF99A166517EB7E8AC7698882F07942804B15174BAFF6CF0" + } + } +} diff --git a/target_chains/cosmwasm/wormhole-stub/stable/osmosis_testnet_5-2.14.9.json b/target_chains/cosmwasm/wormhole-stub/stable/osmosis_testnet_5-2.14.9.json new file mode 100644 index 00000000..6b9c2d64 --- /dev/null +++ b/target_chains/cosmwasm/wormhole-stub/stable/osmosis_testnet_5-2.14.9.json @@ -0,0 +1,40 @@ +{ + "deploy-wormhole-code": { + "status": "fulfilled", + "result": { + "codeId": 211, + "txHash": "5D5EECA973F0707D47596DFD5C6CD50D43CB73FA87AD760BA32842A5DC8D1219" + } + }, + "instantiate-contract": { + "status": "fulfilled", + "result": { + "contractAddr": "osmo1llum0y8zc4h2f0rhcdn63xje4mrkdljrve9l40lun9lpeyu2l7cq4phaw6", + "txHash": "FC446A15972BE20201582C9569EBA91E0B705C168A70C31A0AF49B8521F2E7AE" + } + }, + "set-own-admin": { + "status": "fulfilled", + "result": { + "txHash": "586F2E0AAD1465DDAE2A2BCFEB50A17DBB8E1F93A927A2D8F0AB4E01F3CCE037" + } + }, + "GUARDIAN_SET_UPGRADE_1_VAA": { + "status": "fulfilled", + "result": { + "txHash": "3091E097418924C4800F482DAC11701F82CD0D041EE8CEF632E648E71313A882" + } + }, + "GUARDIAN_SET_UPGRADE_2_VAA": { + "status": "fulfilled", + "result": { + "txHash": "0028F2D365230E4ED2E3CAF0EB57ADBFB2B22CF28B1FEA18521FC678EB950B7C" + } + }, + "GUARDIAN_SET_UPGRADE_3_VAA": { + "status": "fulfilled", + "result": { + "txHash": "C753B360348D133F484FD4FEA53BA53B5CFC88EB96B6513E8D8659A986AAEC9D" + } + } +} diff --git a/target_chains/cosmwasm/wormhole-stub/stable/sei_testnet_atlantic_2-2.14.9.json b/target_chains/cosmwasm/wormhole-stub/stable/sei_testnet_atlantic_2-2.14.9.json new file mode 100644 index 00000000..6223f707 --- /dev/null +++ b/target_chains/cosmwasm/wormhole-stub/stable/sei_testnet_atlantic_2-2.14.9.json @@ -0,0 +1,6 @@ +{ + "deploy-wormhole-code": { + "status": "rejected", + "reason": {} + } +} diff --git a/target_chains/cosmwasm/wormhole-stub/testnet/injective-2.14.9.json b/target_chains/cosmwasm/wormhole-stub/testnet/injective-2.14.9.json deleted file mode 100644 index e6af30ee..00000000 --- a/target_chains/cosmwasm/wormhole-stub/testnet/injective-2.14.9.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "deploy-wormhole-code": { - "status": "fulfilled", - "result": { - "txHash": "609E6EFFD1C191FA69157BC124CD15B0448E30A11AA65D36CF8BE66666127828", - "codeId": 1116 - } - }, - "instantiate-contract": { - "status": "fulfilled", - "result": { - "txHash": "6408D6691CF40E3C13062F12FD65E3599722A8FDBD3664852BB44DC739C57B9A", - "contractAddr": "inj1ks8v2tvx2vsqxx7sgckl9h7rxga60tuvgezpps" - } - }, - "set-own-admin": { - "status": "fulfilled", - "result": { - "txHash": "5B31A48AEF4250FAA09117EF63E49E81B6EFBFAC1B1C6AEFF80265434A70DD7D" - } - }, - "GUARDIAN_SET_UPGRADE_1_VAA": { - "status": "fulfilled", - "result": { - "txHash": "C68250F924EF5E97DA190EBEEFA550CDACC8E6F51B280AC47E7569025DE35534" - } - }, - "GUARDIAN_SET_UPGRADE_2_VAA": { - "status": "fulfilled", - "result": { - "txHash": "C320BDBD719DFD5B1074AB901C4A64B209C5F882B90D8AD785D28E6C5EE4C05F" - } - }, - "GUARDIAN_SET_UPGRADE_3_VAA": { - "status": "fulfilled", - "result": { - "txHash": "C20DD672BABB67868FC53E2EAF1113AFBBE718365211259D2338F746C37513F5" - } - } -} diff --git a/target_chains/cosmwasm/wormhole-stub/testnet/juno-2.14.9.json b/target_chains/cosmwasm/wormhole-stub/testnet/juno-2.14.9.json deleted file mode 100644 index 46883c8f..00000000 --- a/target_chains/cosmwasm/wormhole-stub/testnet/juno-2.14.9.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "deploy-wormhole-code": { - "status": "fulfilled", - "result": { - "codeId": 1806, - "txHash": "F7B066A9B667F4E66F9FEF5D2EDF6E997645AE99018F261AA9B03C0B86E5EEEA" - } - }, - "instantiate-contract": { - "status": "fulfilled", - "result": { - "contractAddr": "juno1ar2pvs0p2a67fcg0x26paq0zckqs9fjxmfcwuy8hvvam68g24kdsh6pt52", - "txHash": "C922ABBADD9E2042DDE4DE88F9F30B41AFE53D41DD29FA8714F492735422BEB9" - } - }, - "set-own-admin": { - "status": "fulfilled", - "result": { - "txHash": "F7720D2F24481BD718881B5C7394948ECEDB0A59DAD884E15164A51AF1F7BD9F" - } - }, - "GUARDIAN_SET_UPGRADE_1_VAA": { - "status": "fulfilled", - "result": { - "txHash": "1EE0886A74FF1A76D1552209085FC345294CDE7300BBFD4D32423FA1D275E971" - } - }, - "GUARDIAN_SET_UPGRADE_2_VAA": { - "status": "fulfilled", - "result": { - "txHash": "6809F305AC6ED188BD00C390CA6737D0A5F36BA39D8ED8504F181810671A1E20" - } - }, - "GUARDIAN_SET_UPGRADE_3_VAA": { - "status": "fulfilled", - "result": { - "txHash": "8B09ED936129EDBC7FC19B00A292BCF9B9FF0819028E039C68B861F60DC94A6C" - } - } -} diff --git a/target_chains/cosmwasm/wormhole-stub/testnet/neutron_pion_1-2.14.9.json b/target_chains/cosmwasm/wormhole-stub/testnet/neutron_pion_1-2.14.9.json deleted file mode 100644 index e5fd7b03..00000000 --- a/target_chains/cosmwasm/wormhole-stub/testnet/neutron_pion_1-2.14.9.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "deploy-wormhole-code": { - "status": "fulfilled", - "result": { - "codeId": 244, - "txHash": "C8F04CFACC75C28862F3E2A6D08F5F9B869268F09B9D792EBD6C4EC8BC8F36DE" - } - }, - "instantiate-contract": { - "status": "fulfilled", - "result": { - "contractAddr": "neutron17xlvf3f82tklvzpveam56n96520pdrxfgpralyhf3nq7f33uvgzqrgegc7", - "txHash": "8456CC89F7253998E0A22AD5F037574682315F332C661AC357AF927FDFF489B0" - } - }, - "set-own-admin": { - "status": "fulfilled", - "result": { - "txHash": "B9188160725B5282D11DB83F1AC28F88879A4C03AF7B6F178EA44BD07BB76805" - } - }, - "GUARDIAN_SET_UPGRADE_1_VAA": { - "status": "fulfilled", - "result": { - "txHash": "6ACF2A42CEE311F5D2C980AE8CD90D0DC92330EDA940E49BEDBB7C9A8FE2802F" - } - }, - "GUARDIAN_SET_UPGRADE_2_VAA": { - "status": "fulfilled", - "result": { - "txHash": "621914F52BC5BED6BF5F4D6966B8FDF7BDA4E552D1A69AA4BE78FA0C7C5500AC" - } - }, - "GUARDIAN_SET_UPGRADE_3_VAA": { - "status": "fulfilled", - "result": { - "txHash": "4ED3C3AF3223030E2BBB9068767C1E8C60B7D7E5895BDE586F0E07CAA649A05C" - } - } -} diff --git a/target_chains/cosmwasm/wormhole-stub/testnet/osmosis_4-2.14.9.json b/target_chains/cosmwasm/wormhole-stub/testnet/osmosis_4-2.14.9.json deleted file mode 100644 index 1bf0c9b8..00000000 --- a/target_chains/cosmwasm/wormhole-stub/testnet/osmosis_4-2.14.9.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "deploy-wormhole-code": { - "status": "fulfilled", - "result": { - "codeId": 6949, - "txHash": "504970A0B21933FCE9BA22E2819AEEC643E7DBFA230C7BEA2E8A068522605E65" - } - }, - "instantiate-contract": { - "status": "fulfilled", - "result": { - "contractAddr": "osmo18njur8dzzq6lm5dd6n2td94jgmnywt0j9es2ymxpa0zyy7jrwwuq4v8arc", - "txHash": "E8B11F851BF79448129D1F75D67B9020A794E9DA9686B56EDC458FFC338D69B1" - } - }, - "set-own-admin": { - "status": "fulfilled", - "result": { - "txHash": "CACD7F3608E915AC629B399C63EE2C595583AE76418949847B43795208F656EE" - } - }, - "GUARDIAN_SET_UPGRADE_1_VAA": { - "status": "fulfilled", - "result": { - "txHash": "068EF47F42D6A1D44EFD4100B91CCE5A5050F505A088567271F5B6689A224EE5" - } - }, - "GUARDIAN_SET_UPGRADE_2_VAA": { - "status": "fulfilled", - "result": { - "txHash": "AA7D06318A6945F1519A8C7DAD75141BCBC21C1F7E800B48C8045AAF1BF8A887" - } - }, - "GUARDIAN_SET_UPGRADE_3_VAA": { - "status": "fulfilled", - "result": { - "txHash": "0C67CABFC942171919425A1D8A64AB40D4FF5FC49667D0B6B161704DB9C22E0C" - } - } -} diff --git a/target_chains/cosmwasm/wormhole-stub/testnet/osmosis_5-2.14.9.json b/target_chains/cosmwasm/wormhole-stub/testnet/osmosis_5-2.14.9.json deleted file mode 100644 index 32758ec6..00000000 --- a/target_chains/cosmwasm/wormhole-stub/testnet/osmosis_5-2.14.9.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "deploy-wormhole-code": { - "status": "fulfilled", - "result": { - "codeId": 58, - "txHash": "48375A885AE7047D38C4001C4F16F8852E4971F7E761108075AC4BD447A05AFB" - } - }, - "instantiate-contract": { - "status": "fulfilled", - "result": { - "contractAddr": "osmo1224ksv5ckfcuz2geeqfpdu2u3uf706y5fx8frtgz6egmgy0hkxxqtgad95", - "txHash": "B5A7FDC5220C05D446BBB9207F0DDA8C8C7FEB1DBF11127993D014C20FAF0CFA" - } - }, - "set-own-admin": { - "status": "fulfilled", - "result": { - "txHash": "E4CA160348165532DBE7B43C116A801E78FE77122928DB9F9D4DB41514F53F53" - } - }, - "GUARDIAN_SET_UPGRADE_1_VAA": { - "status": "fulfilled", - "result": { - "txHash": "0C75CE16C91F32A902E43A6326B63800DA5182EFC52AA245E101C6374E3671B1" - } - }, - "GUARDIAN_SET_UPGRADE_2_VAA": { - "status": "fulfilled", - "result": { - "txHash": "F58EF5AC1A1941362339A2355F2A2DD44BF46522C37E3D60602C0E731B36F0B6" - } - }, - "GUARDIAN_SET_UPGRADE_3_VAA": { - "status": "fulfilled", - "result": { - "txHash": "59984BB3216E6A7D44501B11EE1F51735E9DE9C8D24D87343B9DDB480F3B5ED3" - } - } -} diff --git a/target_chains/cosmwasm/wormhole-stub/testnet/sei_atlantic_2-2.14.9.json b/target_chains/cosmwasm/wormhole-stub/testnet/sei_atlantic_2-2.14.9.json deleted file mode 100644 index 8e9daf65..00000000 --- a/target_chains/cosmwasm/wormhole-stub/testnet/sei_atlantic_2-2.14.9.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "deploy-wormhole-code": { - "status": "fulfilled", - "result": { - "codeId": 369, - "txHash": "240C71EE74A1C676A054FD6F6E81CC46701103EF8CAB3A431ACFC18042B0AC09" - } - }, - "instantiate-contract": { - "status": "fulfilled", - "result": { - "contractAddr": "sei1tu7w5lxsckpa4ahd4umra0k02zyd7eq79j7zxk8e3ds8evlejywqrtsl6a", - "txHash": "72FA96116275D66D8CF83BCD955E837FDB9CBA085CF0D57EC6FA30C20F106E0B" - } - }, - "set-own-admin": { - "status": "fulfilled", - "result": { - "txHash": "3BFF9026BCAF0B08C1A6FDE3F26D051860D21CCCC1DF28D9A09D0C9F570815A0" - } - }, - "GUARDIAN_SET_UPGRADE_1_VAA": { - "status": "fulfilled", - "result": { - "txHash": "CED60F9D4502BF3FC369048B404DF437349323C5786DF8D1D8E6FDDDBC70E855" - } - }, - "GUARDIAN_SET_UPGRADE_2_VAA": { - "status": "fulfilled", - "result": { - "txHash": "A7A5CDDBE806530830B006D1E90F8C152BF4DE50AFC1567EA209FCB0854334C1" - } - }, - "GUARDIAN_SET_UPGRADE_3_VAA": { - "status": "fulfilled", - "result": { - "txHash": "F0C189FDCB03F26568BDA7597C94235C92197D0B1C5591CCD6510F374DF9480D" - } - } -}