[cosmwasm] chain ids for pyth mainnet, pyth testnet stable, and pyth testnet edge feeds (#822)
* add chainids * chain ids * wormhole, instantiate, and test * update chain structure * update test script * update chain id guidelines * if brackets * correct test arguments
This commit is contained in:
parent
4f67343323
commit
fbcb8a14f6
|
@ -1,6 +1,19 @@
|
||||||
import { CHAINS as WORMHOLE_CHAINS } from "@certusone/wormhole-sdk";
|
import { CHAINS as WORMHOLE_CHAINS } from "@certusone/wormhole-sdk";
|
||||||
|
|
||||||
export { 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 = {
|
export const RECEIVER_CHAINS = {
|
||||||
cronos: 60001,
|
cronos: 60001,
|
||||||
kcc: 60002,
|
kcc: 60002,
|
||||||
|
@ -14,10 +27,18 @@ export const RECEIVER_CHAINS = {
|
||||||
meter: 60010,
|
meter: 60010,
|
||||||
mantle: 60011,
|
mantle: 60011,
|
||||||
conflux_espace: 60012,
|
conflux_espace: 60012,
|
||||||
sei: 60013,
|
|
||||||
|
// for cosmos
|
||||||
|
injective_testnet: 60013,
|
||||||
osmosis: 60014,
|
osmosis: 60014,
|
||||||
neutron: 60015,
|
osmosis_testnet_4: 60015,
|
||||||
juno: 60016,
|
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
|
// If there is any overlapping value the receiver chain will replace the wormhole
|
||||||
|
|
|
@ -28,7 +28,8 @@
|
||||||
"node-downloader-helper": "^2.1.7",
|
"node-downloader-helper": "^2.1.7",
|
||||||
"osmojs": "^13.0.0-rc.7-i-alpha",
|
"osmojs": "^13.0.0-rc.7-i-alpha",
|
||||||
"rimraf": "^5.0.0",
|
"rimraf": "^5.0.0",
|
||||||
"yargs": "^17.0.1"
|
"yargs": "^17.0.1",
|
||||||
|
"@pythnetwork/price-service-client": "*"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@types/adm-zip": "^0.5.0",
|
"@types/adm-zip": "^0.5.0",
|
||||||
|
|
|
@ -12,27 +12,26 @@ export enum ChainType {
|
||||||
// CHAINNAME{_OPTIONAL-IDENTIFIER}
|
// CHAINNAME{_OPTIONAL-IDENTIFIER}
|
||||||
// ENUM Value should be of the form:
|
// ENUM Value should be of the form:
|
||||||
// chainname{_optional-identifier}
|
// 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",
|
INJECTIVE = "injective",
|
||||||
OSMOSIS_4 = "osmosis_4",
|
OSMOSIS = "osmosis",
|
||||||
OSMOSIS_5 = "osmosis_5",
|
|
||||||
SEI_ATLANTIC_2 = "sei_atlantic_2",
|
|
||||||
NEUTRON_PION_1 = "neutron_pion_1",
|
|
||||||
JUNO = "juno",
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export const ChainIdsTestnet = Object.values(ChainIdTestnet);
|
export const ChainIds = Object.values(ChainId);
|
||||||
|
|
||||||
// TODO: ADD MAINNET IDs IN FUTURE
|
export type ChainNetworkConfig =
|
||||||
// export enum ChainIdMainnet {
|
|
||||||
// INJECTIVE = "injective",
|
|
||||||
// }
|
|
||||||
|
|
||||||
export type ChainConfig =
|
|
||||||
| {
|
| {
|
||||||
// usually the chain name
|
// usually the chain name
|
||||||
// osmosis, injective
|
// osmosis, injective
|
||||||
chainId: ChainIdTestnet;
|
chainId: ChainId;
|
||||||
chainType: ChainType.INJECTIVE;
|
chainType: ChainType.INJECTIVE;
|
||||||
|
|
||||||
// endpoints to create executor and querier for a particular chain
|
// endpoints to create executor and querier for a particular chain
|
||||||
|
@ -42,7 +41,7 @@ export type ChainConfig =
|
||||||
| {
|
| {
|
||||||
// usually the chain name
|
// usually the chain name
|
||||||
// osmosis, injective
|
// osmosis, injective
|
||||||
chainId: ChainIdTestnet;
|
chainId: ChainId;
|
||||||
chainType: ChainType.COSMWASM;
|
chainType: ChainType.COSMWASM;
|
||||||
|
|
||||||
// endpoints to create executor and querier for a particular chain
|
// endpoints to create executor and querier for a particular chain
|
||||||
|
@ -58,60 +57,76 @@ export type ChainConfig =
|
||||||
gasPrice: string;
|
gasPrice: string;
|
||||||
};
|
};
|
||||||
|
|
||||||
export const ChainsConfigTestnet: Record<ChainIdTestnet, ChainConfig> = {
|
export const CHAINS_NETWORK_CONFIG: Record<ChainId, ChainNetworkConfig> = {
|
||||||
[ChainIdTestnet.INJECTIVE]: {
|
[ChainId.INJECTIVE_TESTNET]: {
|
||||||
chainId: ChainIdTestnet.INJECTIVE,
|
chainId: ChainId.INJECTIVE_TESTNET,
|
||||||
chainType: ChainType.INJECTIVE,
|
chainType: ChainType.INJECTIVE,
|
||||||
querierEndpoint: "https://k8s.testnet.tm.injective.network:443",
|
querierEndpoint: "https://k8s.testnet.tm.injective.network:443",
|
||||||
executorEndpoint: "https://k8s.testnet.chain.grpc-web.injective.network",
|
executorEndpoint: "https://k8s.testnet.chain.grpc-web.injective.network",
|
||||||
},
|
},
|
||||||
[ChainIdTestnet.OSMOSIS_5]: {
|
[ChainId.OSMOSIS_TESTNET_5]: {
|
||||||
chainId: ChainIdTestnet.OSMOSIS_5,
|
chainId: ChainId.OSMOSIS_TESTNET_5,
|
||||||
chainType: ChainType.COSMWASM,
|
chainType: ChainType.COSMWASM,
|
||||||
executorEndpoint: "https://rpc.osmotest5.osmosis.zone/",
|
executorEndpoint: "https://rpc.osmotest5.osmosis.zone/",
|
||||||
querierEndpoint: "https://rpc.osmotest5.osmosis.zone/",
|
querierEndpoint: "https://rpc.osmotest5.osmosis.zone/",
|
||||||
prefix: "osmo",
|
prefix: "osmo",
|
||||||
gasPrice: "0.025uosmo",
|
gasPrice: "0.025uosmo",
|
||||||
},
|
},
|
||||||
[ChainIdTestnet.OSMOSIS_4]: {
|
[ChainId.OSMOSIS_TESTNET_4]: {
|
||||||
chainId: ChainIdTestnet.OSMOSIS_4,
|
chainId: ChainId.OSMOSIS_TESTNET_4,
|
||||||
chainType: ChainType.COSMWASM,
|
chainType: ChainType.COSMWASM,
|
||||||
executorEndpoint: "https://rpc-test.osmosis.zone:443",
|
executorEndpoint: "https://rpc-test.osmosis.zone:443",
|
||||||
querierEndpoint: "https://rpc-test.osmosis.zone:443",
|
querierEndpoint: "https://rpc-test.osmosis.zone:443",
|
||||||
prefix: "osmo",
|
prefix: "osmo",
|
||||||
gasPrice: "0.025uosmo",
|
gasPrice: "0.025uosmo",
|
||||||
},
|
},
|
||||||
[ChainIdTestnet.SEI_ATLANTIC_2]: {
|
[ChainId.SEI_TESTNET_ATLANTIC_2]: {
|
||||||
chainId: ChainIdTestnet.SEI_ATLANTIC_2,
|
chainId: ChainId.SEI_TESTNET_ATLANTIC_2,
|
||||||
chainType: ChainType.COSMWASM,
|
chainType: ChainType.COSMWASM,
|
||||||
executorEndpoint: "https://rpc.atlantic-2.seinetwork.io/",
|
executorEndpoint: "https://rpc.atlantic-2.seinetwork.io/",
|
||||||
querierEndpoint: "https://rpc.atlantic-2.seinetwork.io/",
|
querierEndpoint: "https://rpc.atlantic-2.seinetwork.io/",
|
||||||
prefix: "sei",
|
prefix: "sei",
|
||||||
gasPrice: "0.01usei",
|
gasPrice: "0.01usei",
|
||||||
},
|
},
|
||||||
[ChainIdTestnet.NEUTRON_PION_1]: {
|
[ChainId.NEUTRON_TESTNET_PION_1]: {
|
||||||
chainId: ChainIdTestnet.NEUTRON_PION_1,
|
chainId: ChainId.NEUTRON_TESTNET_PION_1,
|
||||||
chainType: ChainType.COSMWASM,
|
chainType: ChainType.COSMWASM,
|
||||||
executorEndpoint: "https://rpc.pion.rs-testnet.polypore.xyz/",
|
executorEndpoint: "https://rpc.pion.rs-testnet.polypore.xyz/",
|
||||||
querierEndpoint: "https://rpc.pion.rs-testnet.polypore.xyz/",
|
querierEndpoint: "https://rpc.pion.rs-testnet.polypore.xyz/",
|
||||||
prefix: "neutron",
|
prefix: "neutron",
|
||||||
gasPrice: "0.025untrn",
|
gasPrice: "0.025untrn",
|
||||||
},
|
},
|
||||||
[ChainIdTestnet.JUNO]: {
|
[ChainId.JUNO_TESTNET]: {
|
||||||
chainId: ChainIdTestnet.JUNO,
|
chainId: ChainId.JUNO_TESTNET,
|
||||||
chainType: ChainType.COSMWASM,
|
chainType: ChainType.COSMWASM,
|
||||||
executorEndpoint: "https://rpc.uni.junonetwork.io/",
|
executorEndpoint: "https://rpc.uni.junonetwork.io/",
|
||||||
querierEndpoint: "https://rpc.uni.junonetwork.io/",
|
querierEndpoint: "https://rpc.uni.junonetwork.io/",
|
||||||
prefix: "juno",
|
prefix: "juno",
|
||||||
gasPrice: "0.025ujunox",
|
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.
|
* This method will return an executor for given chainConfig.
|
||||||
*/
|
*/
|
||||||
export function createExecutorForChain(
|
export function createExecutorForChain(
|
||||||
chainConfig: ChainConfig,
|
chainConfig: ChainNetworkConfig,
|
||||||
mnemonic: string
|
mnemonic: string
|
||||||
): ChainExecutor {
|
): ChainExecutor {
|
||||||
const chainType = chainConfig.chainType;
|
const chainType = chainConfig.chainType;
|
||||||
|
|
|
@ -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, ChainContractConfig> = {
|
||||||
|
[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,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
}
|
|
@ -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],
|
|
||||||
},
|
|
||||||
};
|
|
|
@ -3,6 +3,31 @@ import { rimrafSync } from "rimraf";
|
||||||
import AdmZip from "adm-zip";
|
import AdmZip from "adm-zip";
|
||||||
import path from "path";
|
import path from "path";
|
||||||
import { DownloaderHelper } from "node-downloader-helper";
|
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
|
// 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
|
// 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";
|
export const WORMHOLE_CONTRACT_VERSION = "2.14.9";
|
||||||
|
|
||||||
// This method returns the file name which stores the deployment result for
|
// This method returns the file name which stores the deployment result for
|
||||||
// wormhole stub
|
// wormhole stub
|
||||||
export function getWormholeFileName(
|
export function getWormholeFileName(
|
||||||
chainId: string,
|
chainId: string,
|
||||||
version: string,
|
version: string,
|
||||||
mainnet: boolean
|
deploymentType: DeploymentType
|
||||||
): string {
|
): string {
|
||||||
const WORMHOLE_STORAGE_DIR = mainnet
|
const WORMHOLE_STORAGE_DIR = "../wormhole-stub/" + deploymentType;
|
||||||
? "../wormhole-stub/mainnet"
|
|
||||||
: "../wormhole-stub/testnet";
|
|
||||||
|
|
||||||
return `${WORMHOLE_STORAGE_DIR}/${chainId}-${version}.json`;
|
return `${WORMHOLE_STORAGE_DIR}/${chainId}-${version}.json`;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -94,9 +115,9 @@ export function getWormholeFileName(
|
||||||
export function getWormholeContractAddress(
|
export function getWormholeContractAddress(
|
||||||
chainId: string,
|
chainId: string,
|
||||||
version: string,
|
version: string,
|
||||||
mainnet: boolean
|
deploymentType: DeploymentType
|
||||||
): string {
|
): string {
|
||||||
let deployedFilePath = getWormholeFileName(chainId, version, mainnet);
|
let deployedFilePath = getWormholeFileName(chainId, version, deploymentType);
|
||||||
const wormholeContractAddress = JSON.parse(
|
const wormholeContractAddress = JSON.parse(
|
||||||
readFileSync(deployedFilePath).toString()
|
readFileSync(deployedFilePath).toString()
|
||||||
)["instantiate-contract"].result.contractAddr;
|
)["instantiate-contract"].result.contractAddr;
|
||||||
|
@ -110,6 +131,53 @@ export function getWormholeContractAddress(
|
||||||
return wormholeContractAddress;
|
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 {
|
export function hexToBase64(hex: string): string {
|
||||||
return Buffer.from(hex, "hex").toString("base64");
|
return Buffer.from(hex, "hex").toString("base64");
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import {
|
import {
|
||||||
ChainIdsTestnet,
|
|
||||||
createExecutorForChain,
|
createExecutorForChain,
|
||||||
|
CHAINS_NETWORK_CONFIG,
|
||||||
} from "./chains-manager/chains";
|
} from "./chains-manager/chains";
|
||||||
import yargs from "yargs";
|
import yargs from "yargs";
|
||||||
import { hideBin } from "yargs/helpers";
|
import { hideBin } from "yargs/helpers";
|
||||||
|
@ -10,16 +10,20 @@ import {
|
||||||
} from "./chains-manager/chain-executor";
|
} from "./chains-manager/chain-executor";
|
||||||
import { Pipeline } from "./pipeline";
|
import { Pipeline } from "./pipeline";
|
||||||
import {
|
import {
|
||||||
|
DeploymentType,
|
||||||
WORMHOLE_CONTRACT_VERSION,
|
WORMHOLE_CONTRACT_VERSION,
|
||||||
|
getChainIdsForEdgeDeployment,
|
||||||
|
getChainIdsForStableDeployment,
|
||||||
getContractBytesDict,
|
getContractBytesDict,
|
||||||
|
getPythInstantiateFileName,
|
||||||
getWormholeContractAddress,
|
getWormholeContractAddress,
|
||||||
} from "./helper";
|
} from "./helper";
|
||||||
import { ExtendedChainsConfigTestnet } from "./extended-chain-config";
|
|
||||||
import { sha256 } from "@cosmjs/crypto";
|
import { sha256 } from "@cosmjs/crypto";
|
||||||
import { CHECKSUM } from "./contract-checksum";
|
import { CHECKSUM } from "./contract-checksum";
|
||||||
|
import { CHAINS_CONTRACT_CONFIG, getPythConfig } from "./configs";
|
||||||
|
|
||||||
const argv = yargs(hideBin(process.argv))
|
const argv = yargs(hideBin(process.argv))
|
||||||
.usage("USAGE: npm run wormhole-stub -- <command>")
|
.usage("USAGE: npm run instantiate-pyth -- <command>")
|
||||||
.option("mnemonic", {
|
.option("mnemonic", {
|
||||||
type: "string",
|
type: "string",
|
||||||
demandOption: "Please provide the mnemonic",
|
demandOption: "Please provide the mnemonic",
|
||||||
|
@ -28,13 +32,11 @@ const argv = yargs(hideBin(process.argv))
|
||||||
type: "string",
|
type: "string",
|
||||||
demandOption: `Please input the contract-version of the pyth contract.`,
|
demandOption: `Please input the contract-version of the pyth contract.`,
|
||||||
})
|
})
|
||||||
.option("chain-id", {
|
.option("deploy", {
|
||||||
type: "string",
|
type: "string",
|
||||||
choices: ChainIdsTestnet,
|
desc: "Execute this script for the given networks.",
|
||||||
})
|
choices: ["edge", "stable"],
|
||||||
.option("mainnet", {
|
demandOption: "Please provide the deployment type",
|
||||||
type: "boolean",
|
|
||||||
desc: "Execute this script for mainnet networks. THIS WILL BE ADDED IN FUTURE",
|
|
||||||
})
|
})
|
||||||
.help()
|
.help()
|
||||||
.alias("help", "h")
|
.alias("help", "h")
|
||||||
|
@ -42,12 +44,17 @@ const argv = yargs(hideBin(process.argv))
|
||||||
.parseSync();
|
.parseSync();
|
||||||
|
|
||||||
async function run() {
|
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
|
// get the wasm code from github
|
||||||
let contractBytesDict = await getContractBytesDict(
|
let contractBytesDict = await getContractBytesDict(
|
||||||
Object.values(ExtendedChainsConfigTestnet).map(
|
chainIds.map(
|
||||||
({ pythArtifactZipName }) => pythArtifactZipName
|
(chainId) => CHAINS_CONTRACT_CONFIG[chainId].pythArtifactZipName
|
||||||
),
|
),
|
||||||
argv.contractVersion
|
argv.contractVersion
|
||||||
);
|
);
|
||||||
|
@ -70,28 +77,28 @@ async function run() {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
console.log();
|
|
||||||
|
|
||||||
let chainIds = argv.chainId === undefined ? ChainIdsTestnet : [argv.chainId];
|
|
||||||
for (let chainId of chainIds) {
|
for (let chainId of chainIds) {
|
||||||
let pipelineStoreFilePath = `${STORAGE_DIR}/${chainId}-${argv.contractVersion}.json`;
|
let chainConfig = CHAINS_NETWORK_CONFIG[chainId];
|
||||||
const pipeline = new Pipeline(chainId, pipelineStoreFilePath);
|
let contractConfig = CHAINS_CONTRACT_CONFIG[chainId];
|
||||||
|
|
||||||
const chainExecutor = createExecutorForChain(
|
const pipeline = new Pipeline(
|
||||||
ExtendedChainsConfigTestnet[chainId],
|
chainId,
|
||||||
argv.mnemonic
|
getPythInstantiateFileName(
|
||||||
|
chainId,
|
||||||
|
argv.contractVersion,
|
||||||
|
argv.deploy as DeploymentType
|
||||||
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
const chainExecutor = createExecutorForChain(chainConfig, argv.mnemonic);
|
||||||
|
|
||||||
// add stages
|
// add stages
|
||||||
// 1 deploy artifact
|
// 1 deploy artifact
|
||||||
pipeline.addStage({
|
pipeline.addStage({
|
||||||
id: "deploy-pyth-code",
|
id: "deploy-pyth-code",
|
||||||
executor: async () => {
|
executor: async () => {
|
||||||
return chainExecutor.storeCode({
|
return chainExecutor.storeCode({
|
||||||
contractBytes:
|
contractBytes: contractBytesDict[contractConfig.pythArtifactZipName],
|
||||||
contractBytesDict[
|
|
||||||
ExtendedChainsConfigTestnet[chainId].pythArtifactZipName
|
|
||||||
],
|
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
@ -106,14 +113,14 @@ async function run() {
|
||||||
return chainExecutor.instantiateContract({
|
return chainExecutor.instantiateContract({
|
||||||
codeId: storeCodeRes.codeId,
|
codeId: storeCodeRes.codeId,
|
||||||
instMsg: getPythConfig({
|
instMsg: getPythConfig({
|
||||||
feeDenom: ExtendedChainsConfigTestnet[chainId].feeDenom,
|
feeDenom: contractConfig.feeDenom,
|
||||||
wormholeChainId:
|
wormholeChainId: contractConfig.wormholeChainId,
|
||||||
ExtendedChainsConfigTestnet[chainId].wormholeChainId,
|
|
||||||
wormholeContract: getWormholeContractAddress(
|
wormholeContract: getWormholeContractAddress(
|
||||||
chainId,
|
chainId,
|
||||||
WORMHOLE_CONTRACT_VERSION,
|
WORMHOLE_CONTRACT_VERSION,
|
||||||
false
|
argv.deploy as DeploymentType
|
||||||
),
|
),
|
||||||
|
deploymentType: argv.deploy as DeploymentType,
|
||||||
}),
|
}),
|
||||||
label: "wormhole",
|
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();
|
run();
|
||||||
|
|
|
@ -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 -- <command>")
|
||||||
|
.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();
|
|
@ -1,5 +1,5 @@
|
||||||
import {
|
import {
|
||||||
ChainIdsTestnet,
|
CHAINS_NETWORK_CONFIG,
|
||||||
createExecutorForChain,
|
createExecutorForChain,
|
||||||
} from "./chains-manager/chains";
|
} from "./chains-manager/chains";
|
||||||
import yargs from "yargs";
|
import yargs from "yargs";
|
||||||
|
@ -10,8 +10,14 @@ import {
|
||||||
StoreCodeResponse,
|
StoreCodeResponse,
|
||||||
} from "./chains-manager/chain-executor";
|
} from "./chains-manager/chain-executor";
|
||||||
import { Pipeline } from "./pipeline";
|
import { Pipeline } from "./pipeline";
|
||||||
import { getWormholeFileName, hexToBase64 } from "./helper";
|
import {
|
||||||
import { ExtendedChainsConfigTestnet } from "./extended-chain-config";
|
DeploymentType,
|
||||||
|
getChainIdsForEdgeDeployment,
|
||||||
|
getChainIdsForStableDeployment,
|
||||||
|
getWormholeFileName,
|
||||||
|
hexToBase64,
|
||||||
|
} from "./helper";
|
||||||
|
import { getWormholeConfig, CHAINS_CONTRACT_CONFIG } from "./configs";
|
||||||
const argv = yargs(hideBin(process.argv))
|
const argv = yargs(hideBin(process.argv))
|
||||||
.usage("USAGE: npm run wormhole-stub -- <command>")
|
.usage("USAGE: npm run wormhole-stub -- <command>")
|
||||||
.option("mnemonic", {
|
.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"`,
|
There should be a compiled code at the path - "../wormhole-stub/artifacts/wormhole-\${contract-version}.wasm"`,
|
||||||
default: "2.14.9",
|
default: "2.14.9",
|
||||||
})
|
})
|
||||||
.option("chain-id", {
|
.option("deploy", {
|
||||||
type: "string",
|
type: "string",
|
||||||
choices: ChainIdsTestnet,
|
desc: "Execute this script for the given deployment type.",
|
||||||
})
|
choices: ["stable", "edge"],
|
||||||
.option("mainnet", {
|
demandOption: "Please provide the deployment type",
|
||||||
type: "boolean",
|
|
||||||
desc: "Execute this script for mainnet networks. THIS WILL BE ADDED IN FUTURE",
|
|
||||||
default: false,
|
|
||||||
})
|
})
|
||||||
.help()
|
.help()
|
||||||
.alias("help", "h")
|
.alias("help", "h")
|
||||||
.wrap(yargs.terminalWidth())
|
.wrap(yargs.terminalWidth())
|
||||||
.parseSync();
|
.parseSync();
|
||||||
|
|
||||||
const VAA_MAINNET_UPGRADES = {
|
const STABLE_VAA_UPGRADES = {
|
||||||
GUARDIAN_SET_UPGRADE_1_VAA:
|
GUARDIAN_SET_UPGRADE_1_VAA:
|
||||||
"010000000001007ac31b282c2aeeeb37f3385ee0de5f8e421d30b9e5ae8ba3d4375c1c77a86e77159bb697d9c456d6f8c02d22a94b1279b65b0d6a9957e7d3857423845ac758e300610ac1d2000000030001000000000000000000000000000000000000000000000000000000000000000400000000000005390000000000000000000000000000000000000000000000000000000000436f7265020000000000011358cc3ae5c097b213ce3c81979e1b9f9570746aa5ff6cb952589bde862c25ef4392132fb9d4a42157114de8460193bdf3a2fcf81f86a09765f4762fd1107a0086b32d7a0977926a205131d8731d39cbeb8c82b2fd82faed2711d59af0f2499d16e726f6b211b39756c042441be6d8650b69b54ebe715e234354ce5b4d348fb74b958e8966e2ec3dbd4958a7cdeb5f7389fa26941519f0863349c223b73a6ddee774a3bf913953d695260d88bc1aa25a4eee363ef0000ac0076727b35fbea2dac28fee5ccb0fea768eaf45ced136b9d9e24903464ae889f5c8a723fc14f93124b7c738843cbb89e864c862c38cddcccf95d2cc37a4dc036a8d232b48f62cdd4731412f4890da798f6896a3331f64b48c12d1d57fd9cbe7081171aa1be1d36cafe3867910f99c09e347899c19c38192b6e7387ccd768277c17dab1b7a5027c0b3cf178e21ad2e77ae06711549cfbb1f9c7a9d8096e85e1487f35515d02a92753504a8d75471b9f49edb6fbebc898f403e4773e95feb15e80c9a99c8348d",
|
"010000000001007ac31b282c2aeeeb37f3385ee0de5f8e421d30b9e5ae8ba3d4375c1c77a86e77159bb697d9c456d6f8c02d22a94b1279b65b0d6a9957e7d3857423845ac758e300610ac1d2000000030001000000000000000000000000000000000000000000000000000000000000000400000000000005390000000000000000000000000000000000000000000000000000000000436f7265020000000000011358cc3ae5c097b213ce3c81979e1b9f9570746aa5ff6cb952589bde862c25ef4392132fb9d4a42157114de8460193bdf3a2fcf81f86a09765f4762fd1107a0086b32d7a0977926a205131d8731d39cbeb8c82b2fd82faed2711d59af0f2499d16e726f6b211b39756c042441be6d8650b69b54ebe715e234354ce5b4d348fb74b958e8966e2ec3dbd4958a7cdeb5f7389fa26941519f0863349c223b73a6ddee774a3bf913953d695260d88bc1aa25a4eee363ef0000ac0076727b35fbea2dac28fee5ccb0fea768eaf45ced136b9d9e24903464ae889f5c8a723fc14f93124b7c738843cbb89e864c862c38cddcccf95d2cc37a4dc036a8d232b48f62cdd4731412f4890da798f6896a3331f64b48c12d1d57fd9cbe7081171aa1be1d36cafe3867910f99c09e347899c19c38192b6e7387ccd768277c17dab1b7a5027c0b3cf178e21ad2e77ae06711549cfbb1f9c7a9d8096e85e1487f35515d02a92753504a8d75471b9f49edb6fbebc898f403e4773e95feb15e80c9a99c8348d",
|
||||||
GUARDIAN_SET_UPGRADE_2_VAA:
|
GUARDIAN_SET_UPGRADE_2_VAA:
|
||||||
|
@ -53,19 +56,25 @@ async function run() {
|
||||||
// get the wormhole code
|
// get the wormhole code
|
||||||
const contractBytes = readFileSync(wasmFilePath);
|
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) {
|
for (let chainId of chainIds) {
|
||||||
|
let contractConfig = CHAINS_CONTRACT_CONFIG[chainId];
|
||||||
|
let chainConfig = CHAINS_NETWORK_CONFIG[chainId];
|
||||||
|
|
||||||
let pipelineStoreFilePath = getWormholeFileName(
|
let pipelineStoreFilePath = getWormholeFileName(
|
||||||
chainId,
|
chainId,
|
||||||
argv.contractVersion,
|
argv.contractVersion,
|
||||||
argv.mainnet
|
argv.deploy as DeploymentType
|
||||||
);
|
);
|
||||||
const pipeline = new Pipeline(chainId, pipelineStoreFilePath);
|
const pipeline = new Pipeline(chainId, pipelineStoreFilePath);
|
||||||
|
|
||||||
const chainExecutor = createExecutorForChain(
|
const chainExecutor = createExecutorForChain(chainConfig, argv.mnemonic);
|
||||||
ExtendedChainsConfigTestnet[chainId],
|
|
||||||
argv.mnemonic
|
|
||||||
);
|
|
||||||
|
|
||||||
// add stages
|
// add stages
|
||||||
// 1 deploy artifact
|
// 1 deploy artifact
|
||||||
|
@ -88,7 +97,11 @@ async function run() {
|
||||||
|
|
||||||
return chainExecutor.instantiateContract({
|
return chainExecutor.instantiateContract({
|
||||||
codeId: storeCodeRes.codeId,
|
codeId: storeCodeRes.codeId,
|
||||||
instMsg: getWormholeConfig(ExtendedChainsConfigTestnet[chainId]),
|
instMsg: getWormholeConfig({
|
||||||
|
feeDenom: contractConfig.feeDenom,
|
||||||
|
wormholeChainId: contractConfig.wormholeChainId,
|
||||||
|
deploymentType: argv.deploy as DeploymentType,
|
||||||
|
}),
|
||||||
label: "wormhole",
|
label: "wormhole",
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
@ -108,8 +121,9 @@ async function run() {
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
// 4 vaa upgrades for guardian set
|
// 4 vaa upgrades for guardian set for mainnet sources only
|
||||||
Object.keys(VAA_MAINNET_UPGRADES).forEach((id) => {
|
if (argv.deploy === "stable")
|
||||||
|
Object.keys(STABLE_VAA_UPGRADES).forEach((id) => {
|
||||||
pipeline.addStage({
|
pipeline.addStage({
|
||||||
id,
|
id,
|
||||||
executor: (getResultOfPastStage) => {
|
executor: (getResultOfPastStage) => {
|
||||||
|
@ -131,22 +145,4 @@ async function 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();
|
run();
|
||||||
|
|
|
@ -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"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -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"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -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"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -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"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -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"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"deploy-pyth-code": {
|
||||||
|
"status": "rejected",
|
||||||
|
"reason": {}
|
||||||
|
}
|
||||||
|
}
|
|
@ -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"]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -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
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -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
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -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"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -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"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -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"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -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"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -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"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,10 @@
|
||||||
|
{
|
||||||
|
"deploy-pyth-code": {
|
||||||
|
"status": "rejected",
|
||||||
|
"reason": {
|
||||||
|
"code": 5,
|
||||||
|
"codespace": "sdk",
|
||||||
|
"log": ""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -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"]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -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
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -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
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -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"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -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"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -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"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -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"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -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"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -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"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -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"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -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"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -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"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -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"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -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"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,10 @@
|
||||||
|
{
|
||||||
|
"deploy-wormhole-code": {
|
||||||
|
"status": "rejected",
|
||||||
|
"reason": {
|
||||||
|
"code": 5,
|
||||||
|
"codespace": "sdk",
|
||||||
|
"log": ""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -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"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -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"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -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"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -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"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -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"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"deploy-wormhole-code": {
|
||||||
|
"status": "rejected",
|
||||||
|
"reason": {}
|
||||||
|
}
|
||||||
|
}
|
|
@ -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"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -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"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -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"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -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"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -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"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -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"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
Loading…
Reference in New Issue