wormhole/cosmwasm/deployment/terra2/tools/migrate_testnet.js

74 lines
1.4 KiB
JavaScript

import { LCDClient, MnemonicKey } from "@terra-money/terra.js";
import {
MsgMigrateContract,
} from "@terra-money/terra.js";
import axios from "axios";
import yargs from "yargs";
import { hideBin } from "yargs/helpers";
export const TERRA_GAS_PRICES_URL = "https://fcd.terra.dev/v1/txs/gas_prices";
const argv = yargs(hideBin(process.argv))
.option('code_id', {
description: 'Which code id to upgrade to',
type: 'number',
})
.option('mnemonic', {
description: 'Mnemonic (private key)',
type: 'string',
required: true
})
.option('contract', {
description: 'Contract to upgrade',
type: 'string',
required: true
})
.help()
.alias('help', 'h').argv;
/* Set up terra client & wallet */
const terra_host = {
URL: "https://bombay-lcd.terra.dev",
chainID: "bombay-12",
name: "testnet",
};
const lcd = new LCDClient(terra_host);
const feeDenoms = ["uluna"];
const gasPrices = await axios
.get(TERRA_GAS_PRICES_URL)
.then((result) => result.data);
const wallet = lcd.wallet(
new MnemonicKey({
mnemonic: argv.mnemonic
})
);
await wallet.sequence();
/* Do upgrade */
const tx = await wallet.createAndSignTx({
msgs: [
new MsgMigrateContract(
wallet.key.accAddress,
argv.contract,
argv.code_id,
{
"action": ""
},
{ uluna: 1000 }
),
],
memo: "",
feeDenoms,
gasPrices,
});
const rs = await lcd.tx.broadcast(tx);
console.log(rs);