pyth-crosschain/contract_manager/scripts/deploy_cosmwasm.ts

47 lines
1.2 KiB
TypeScript

import yargs from "yargs";
import { hideBin } from "yargs/helpers";
import { CosmWasmChain } from "../src/chains";
import { CosmWasmPriceFeedContract } from "../src/contracts/cosmwasm";
import { DefaultStore } from "../src/store";
import { COMMON_DEPLOY_OPTIONS } from "./common";
const parser = yargs(hideBin(process.argv))
.scriptName("deploy_cosmwasm.ts")
.usage(
"Usage: $0 --code <path/to/artifact.wasm> --private-key <private-key> --chain <chain>"
)
.options({
code: {
type: "string",
demandOption: true,
desc: "Path to the artifact .wasm file",
},
"private-key": COMMON_DEPLOY_OPTIONS["private-key"],
chain: {
type: "string",
demandOption: true,
desc: "Chain to upload the code on. Can be one of the chains available in the store",
},
wormholeContract: {
type: "string",
demandOption: true,
desc: "Wormhole contract address deployed on this chain",
},
});
async function main() {
const argv = await parser.argv;
const { code, wormholeContract } = argv;
console.log(
await CosmWasmPriceFeedContract.deploy(
DefaultStore.chains[argv.chain] as CosmWasmChain,
wormholeContract,
argv["private-key"],
code
)
);
}
main();