| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- 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);
|