terra: upgrade scripts (#3753)
* terra: updates RPC URL * terra: fixes fee estimation on bytecode upload * terra: fixes `verify` script * terra: updates README commands and instructions * terra: updates governance upgrade generation * terra: adds instructions to submit governance VAA through `worm`
This commit is contained in:
parent
e98bb64436
commit
d75fcdf66e
|
@ -157,7 +157,7 @@ case "$chain_name" in
|
||||||
chain=3
|
chain=3
|
||||||
# This is not technically the explorer, but terra finder does not show
|
# This is not technically the explorer, but terra finder does not show
|
||||||
# information about code ids, so this is the best we can do.
|
# information about code ids, so this is the best we can do.
|
||||||
explorer="https://lcd.terra.dev/terra/wasm/v1beta1/codes/"
|
explorer="https://terra-classic-lcd.publicnode.com/cosmwasm/wasm/v1/code/"
|
||||||
;;
|
;;
|
||||||
bsc)
|
bsc)
|
||||||
chain=4
|
chain=4
|
||||||
|
@ -521,7 +521,7 @@ elif [ "$chain_name" = "terra" ]; then
|
||||||
|
|
||||||
\`\`\`shell
|
\`\`\`shell
|
||||||
# $module
|
# $module
|
||||||
wormhole/terra$ ./verify -n mainnet -c $chain_name -w $(terra_artifact) -i $terra_code_id
|
wormhole/terra$ ./verify -n mainnet $(terra_artifact) $terra_code_id
|
||||||
\`\`\`
|
\`\`\`
|
||||||
EOF
|
EOF
|
||||||
elif [ "$chain_name" = "aptos" ]; then
|
elif [ "$chain_name" = "aptos" ]; then
|
||||||
|
|
|
@ -69,8 +69,16 @@ wormhole/terra $ make deploy/token_bridge
|
||||||
```
|
```
|
||||||
|
|
||||||
For each deployed contract, you will get a code id for that relevant
|
For each deployed contract, you will get a code id for that relevant
|
||||||
contract for the deployment, make note of these so you can use them in
|
contract for the deployment. The code id will be written to a network specific file
|
||||||
the next step for on-chain verification.
|
that you can read to execute further steps like contract verification.
|
||||||
|
The deployment prints the name of this file.
|
||||||
|
|
||||||
|
### Instantiation
|
||||||
|
|
||||||
|
The deployment script currently does not instantiate a new live contract but rather only uploads the bytecode.
|
||||||
|
This is all that is needed to upgrade existing contracts.
|
||||||
|
|
||||||
|
To bootstrap a new instance of the contract you may need to modify the deployment slightly.
|
||||||
|
|
||||||
## Verify On-Chain
|
## Verify On-Chain
|
||||||
|
|
||||||
|
@ -106,20 +114,24 @@ on-chain bytecode with the locally compiled bytecode.
|
||||||
### Mainnet
|
### Mainnet
|
||||||
|
|
||||||
Upgrades on mainnet have to go through governance. Once the code is deployed in
|
Upgrades on mainnet have to go through governance. Once the code is deployed in
|
||||||
the previous step, an unsigned governance VAA can be generated
|
the previous step, an unsigned governance VAA can be generated from the root of the repository:
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
./generate_governance -m token_bridge -c 59614 > token-bridge-upgrade-59614.prototxt
|
token_bridge_id=$(cat token_bridge-code-id-mainnet.txt)
|
||||||
|
./scripts/contract-upgrade-governance.sh --module token_bridge --chain terra --address $token_bridge_id > "token-bridge-upgrade-${token_bridge_id}.prototxt"
|
||||||
```
|
```
|
||||||
|
|
||||||
This will write to the `token-bridge-upgrade-59614.prototxt` file, which can
|
Supposing that the token bridge code id is 59614,
|
||||||
|
this will write to the `token-bridge-upgrade-59614.prototxt` file, which can
|
||||||
now be shared with the guardians to vote on.
|
now be shared with the guardians to vote on.
|
||||||
|
|
||||||
Once the guardians have reached quorum, the VAA may be submitted from any
|
Once the guardians have reached quorum, the VAA may be submitted from any
|
||||||
funded wallet: TODO - make this easier and more unified
|
funded wallet with `worm` CLI:
|
||||||
|
|
||||||
``` sh
|
``` sh
|
||||||
node main.js terra execute_governance_vaa <signed VAA (hex)> --rpc "https://lcd.terra.dev" --chain_id "columbus-5" --mnemonic "..." --token_bridge "terra10nmmwe8r3g99a9newtqa7a75xfgs2e8z87r2sf"
|
export TERRA_MNEMONIC="..."
|
||||||
|
# Note that the chain should be inferred from the governance VAA
|
||||||
|
worm submit --network mainnet <signed VAA (hex without 0x prefix)> --rpc "https://terra-classic-lcd.publicnode.com"
|
||||||
```
|
```
|
||||||
|
|
||||||
### Testnet
|
### Testnet
|
||||||
|
|
|
@ -10,7 +10,7 @@ import axios from "axios";
|
||||||
import yargs from "yargs";
|
import yargs from "yargs";
|
||||||
import {hideBin} from "yargs/helpers";
|
import {hideBin} from "yargs/helpers";
|
||||||
|
|
||||||
export const TERRA_GAS_PRICES_URL = "https://fcd.terra.dev/v1/txs/gas_prices";
|
export const TERRA_GAS_PRICES_URL = "https://terra-classic-fcd.publicnode.com/v1/txs/gas_prices";
|
||||||
|
|
||||||
const argv = yargs(hideBin(process.argv))
|
const argv = yargs(hideBin(process.argv))
|
||||||
.option('network', {
|
.option('network', {
|
||||||
|
@ -38,7 +38,7 @@ const artifact = argv.artifact;
|
||||||
const terra_host =
|
const terra_host =
|
||||||
argv.network === "mainnet"
|
argv.network === "mainnet"
|
||||||
? {
|
? {
|
||||||
URL: "https://lcd.terra.dev",
|
URL: "https://terra-classic-lcd.publicnode.com",
|
||||||
chainID: "columbus-5",
|
chainID: "columbus-5",
|
||||||
name: "mainnet",
|
name: "mainnet",
|
||||||
}
|
}
|
||||||
|
@ -73,7 +73,7 @@ try {
|
||||||
mnemonic: argv['private-key']
|
mnemonic: argv['private-key']
|
||||||
}))
|
}))
|
||||||
}
|
}
|
||||||
await wallet.sequence();
|
const sequence = await wallet.sequence();
|
||||||
|
|
||||||
/* Deploy artifacts */
|
/* Deploy artifacts */
|
||||||
|
|
||||||
|
@ -87,9 +87,12 @@ const store_code = new MsgStoreCode(
|
||||||
);
|
);
|
||||||
|
|
||||||
const feeEstimate = await lcd.tx.estimateFee(
|
const feeEstimate = await lcd.tx.estimateFee(
|
||||||
wallet.key.accAddress,
|
[{
|
||||||
[store_code],
|
sequenceNumber: sequence,
|
||||||
|
publicKey: wallet.key.publicKey
|
||||||
|
}],
|
||||||
{
|
{
|
||||||
|
msgs: [store_code],
|
||||||
memo: "",
|
memo: "",
|
||||||
feeDenoms,
|
feeDenoms,
|
||||||
gasPrices,
|
gasPrices,
|
||||||
|
|
|
@ -10,7 +10,7 @@
|
||||||
"license": "ISC",
|
"license": "ISC",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@cosmjs/encoding": "^0.26.2",
|
"@cosmjs/encoding": "^0.26.2",
|
||||||
"@terra-money/terra.js": "^3.1.3",
|
"@terra-money/terra.js": "^3.1.10",
|
||||||
"dotenv": "^16.0.0",
|
"dotenv": "^16.0.0",
|
||||||
"ethers": "^5.4.4",
|
"ethers": "^5.4.4",
|
||||||
"yargs": "^17.0.1"
|
"yargs": "^17.0.1"
|
||||||
|
@ -19,6 +19,17 @@
|
||||||
"@types/node": "^20.10.4"
|
"@types/node": "^20.10.4"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/@classic-terra/terra.proto": {
|
||||||
|
"version": "1.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@classic-terra/terra.proto/-/terra.proto-1.1.0.tgz",
|
||||||
|
"integrity": "sha512-bYhQG5LUaGF0KPRY9hYT/HEcd1QExZPQd6zLV/rQkCe/eDxfwFRLzZHpaaAdfWoAAZjsRWqJbUCqCg7gXBbJpw==",
|
||||||
|
"dependencies": {
|
||||||
|
"@improbable-eng/grpc-web": "^0.14.1",
|
||||||
|
"google-protobuf": "^3.17.3",
|
||||||
|
"long": "^4.0.0",
|
||||||
|
"protobufjs": "~6.11.2"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/@cosmjs/encoding": {
|
"node_modules/@cosmjs/encoding": {
|
||||||
"version": "0.26.6",
|
"version": "0.26.6",
|
||||||
"resolved": "https://registry.npmjs.org/@cosmjs/encoding/-/encoding-0.26.6.tgz",
|
"resolved": "https://registry.npmjs.org/@cosmjs/encoding/-/encoding-0.26.6.tgz",
|
||||||
|
@ -793,25 +804,14 @@
|
||||||
"resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz",
|
||||||
"integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw=="
|
"integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw=="
|
||||||
},
|
},
|
||||||
"node_modules/@terra-money/legacy.proto": {
|
|
||||||
"name": "@terra-money/terra.proto",
|
|
||||||
"version": "0.1.7",
|
|
||||||
"resolved": "https://registry.npmjs.org/@terra-money/terra.proto/-/terra.proto-0.1.7.tgz",
|
|
||||||
"integrity": "sha512-NXD7f6pQCulvo6+mv6MAPzhOkUzRjgYVuHZE/apih+lVnPG5hDBU0rRYnOGGofwvKT5/jQoOENnFn/gioWWnyQ==",
|
|
||||||
"dependencies": {
|
|
||||||
"google-protobuf": "^3.17.3",
|
|
||||||
"long": "^4.0.0",
|
|
||||||
"protobufjs": "~6.11.2"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/@terra-money/terra.js": {
|
"node_modules/@terra-money/terra.js": {
|
||||||
"version": "3.1.3",
|
"version": "3.1.10",
|
||||||
"resolved": "https://registry.npmjs.org/@terra-money/terra.js/-/terra.js-3.1.3.tgz",
|
"resolved": "https://registry.npmjs.org/@terra-money/terra.js/-/terra.js-3.1.10.tgz",
|
||||||
"integrity": "sha512-80HU5WXrqf3hZTo2GRhIycH17A+SkLD6afbu8MynMDGGD/A861F3zVv6NQ/Z7PWQGHxgddZEK/A0UQ2uK/xfHg==",
|
"integrity": "sha512-MqR16LjTUyVD4HnEavP1iBW0c1roCoRHH/E1x9P44pXzgtv2wsMeP+2un4Bnck4Nkv/46Xvy/BSKiY90ll3BKA==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@terra-money/legacy.proto": "npm:@terra-money/terra.proto@^0.1.7",
|
"@classic-terra/terra.proto": "^1.1.0",
|
||||||
"@terra-money/terra.proto": "~2.0.0",
|
"@terra-money/terra.proto": "^2.1.0",
|
||||||
"axios": "^0.26.1",
|
"axios": "^0.27.2",
|
||||||
"bech32": "^2.0.0",
|
"bech32": "^2.0.0",
|
||||||
"bip32": "^2.0.6",
|
"bip32": "^2.0.6",
|
||||||
"bip39": "^3.0.3",
|
"bip39": "^3.0.3",
|
||||||
|
@ -822,16 +822,16 @@
|
||||||
"secp256k1": "^4.0.2",
|
"secp256k1": "^4.0.2",
|
||||||
"tmp": "^0.2.1",
|
"tmp": "^0.2.1",
|
||||||
"utf-8-validate": "^5.0.5",
|
"utf-8-validate": "^5.0.5",
|
||||||
"ws": "^7.5.5"
|
"ws": "^7.5.9"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=14"
|
"node": ">=14"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@terra-money/terra.proto": {
|
"node_modules/@terra-money/terra.proto": {
|
||||||
"version": "2.0.0",
|
"version": "2.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/@terra-money/terra.proto/-/terra.proto-2.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/@terra-money/terra.proto/-/terra.proto-2.1.0.tgz",
|
||||||
"integrity": "sha512-ZjyFOFUzrGn8IwzGIgr1OJFcPSsQoz/XAfoSKThJx+OjJA7CLhdcz51+5h7ehNfb+qB9wr7aNME0h24wu9D4SQ==",
|
"integrity": "sha512-rhaMslv3Rkr+QsTQEZs64FKA4QlfO0DfQHaR6yct/EovenMkibDEQ63dEL6yJA6LCaEQGYhyVB9JO9pTUA8ybw==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@improbable-eng/grpc-web": "^0.14.1",
|
"@improbable-eng/grpc-web": "^0.14.1",
|
||||||
"google-protobuf": "^3.17.3",
|
"google-protobuf": "^3.17.3",
|
||||||
|
@ -879,12 +879,18 @@
|
||||||
"url": "https://github.com/chalk/ansi-styles?sponsor=1"
|
"url": "https://github.com/chalk/ansi-styles?sponsor=1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/asynckit": {
|
||||||
|
"version": "0.4.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
|
||||||
|
"integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="
|
||||||
|
},
|
||||||
"node_modules/axios": {
|
"node_modules/axios": {
|
||||||
"version": "0.26.1",
|
"version": "0.27.2",
|
||||||
"resolved": "https://registry.npmjs.org/axios/-/axios-0.26.1.tgz",
|
"resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz",
|
||||||
"integrity": "sha512-fPwcX4EvnSHuInCMItEhAGnaSEXRBjtzh9fOtsE6E1G6p7vl7edEeZe11QHf18+6+9gR5PbKV/sGKNaD8YaMeA==",
|
"integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"follow-redirects": "^1.14.8"
|
"follow-redirects": "^1.14.9",
|
||||||
|
"form-data": "^4.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/balanced-match": {
|
"node_modules/balanced-match": {
|
||||||
|
@ -1059,6 +1065,17 @@
|
||||||
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
|
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
|
||||||
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
|
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
|
||||||
},
|
},
|
||||||
|
"node_modules/combined-stream": {
|
||||||
|
"version": "1.0.8",
|
||||||
|
"resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
|
||||||
|
"integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
|
||||||
|
"dependencies": {
|
||||||
|
"delayed-stream": "~1.0.0"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">= 0.8"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/concat-map": {
|
"node_modules/concat-map": {
|
||||||
"version": "0.0.1",
|
"version": "0.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
|
||||||
|
@ -1094,6 +1111,14 @@
|
||||||
"resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.3.1.tgz",
|
"resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.3.1.tgz",
|
||||||
"integrity": "sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ=="
|
"integrity": "sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ=="
|
||||||
},
|
},
|
||||||
|
"node_modules/delayed-stream": {
|
||||||
|
"version": "1.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
|
||||||
|
"integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
|
||||||
|
"engines": {
|
||||||
|
"node": ">=0.4.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/dotenv": {
|
"node_modules/dotenv": {
|
||||||
"version": "16.0.0",
|
"version": "16.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.0.tgz",
|
||||||
|
@ -1182,9 +1207,9 @@
|
||||||
"integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw=="
|
"integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw=="
|
||||||
},
|
},
|
||||||
"node_modules/follow-redirects": {
|
"node_modules/follow-redirects": {
|
||||||
"version": "1.15.3",
|
"version": "1.15.5",
|
||||||
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.3.tgz",
|
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.5.tgz",
|
||||||
"integrity": "sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==",
|
"integrity": "sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw==",
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
"type": "individual",
|
"type": "individual",
|
||||||
|
@ -1200,6 +1225,19 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/form-data": {
|
||||||
|
"version": "4.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz",
|
||||||
|
"integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==",
|
||||||
|
"dependencies": {
|
||||||
|
"asynckit": "^0.4.0",
|
||||||
|
"combined-stream": "^1.0.8",
|
||||||
|
"mime-types": "^2.1.12"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">= 6"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/fs.realpath": {
|
"node_modules/fs.realpath": {
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
|
||||||
|
@ -1319,6 +1357,25 @@
|
||||||
"safe-buffer": "^5.1.2"
|
"safe-buffer": "^5.1.2"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/mime-db": {
|
||||||
|
"version": "1.52.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
|
||||||
|
"integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
|
||||||
|
"engines": {
|
||||||
|
"node": ">= 0.6"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/mime-types": {
|
||||||
|
"version": "2.1.35",
|
||||||
|
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
|
||||||
|
"integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
|
||||||
|
"dependencies": {
|
||||||
|
"mime-db": "1.52.0"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">= 0.6"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/minimalistic-assert": {
|
"node_modules/minimalistic-assert": {
|
||||||
"version": "1.0.1",
|
"version": "1.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz",
|
||||||
|
@ -1693,6 +1750,17 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
"@classic-terra/terra.proto": {
|
||||||
|
"version": "1.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@classic-terra/terra.proto/-/terra.proto-1.1.0.tgz",
|
||||||
|
"integrity": "sha512-bYhQG5LUaGF0KPRY9hYT/HEcd1QExZPQd6zLV/rQkCe/eDxfwFRLzZHpaaAdfWoAAZjsRWqJbUCqCg7gXBbJpw==",
|
||||||
|
"requires": {
|
||||||
|
"@improbable-eng/grpc-web": "^0.14.1",
|
||||||
|
"google-protobuf": "^3.17.3",
|
||||||
|
"long": "^4.0.0",
|
||||||
|
"protobufjs": "~6.11.2"
|
||||||
|
}
|
||||||
|
},
|
||||||
"@cosmjs/encoding": {
|
"@cosmjs/encoding": {
|
||||||
"version": "0.26.6",
|
"version": "0.26.6",
|
||||||
"resolved": "https://registry.npmjs.org/@cosmjs/encoding/-/encoding-0.26.6.tgz",
|
"resolved": "https://registry.npmjs.org/@cosmjs/encoding/-/encoding-0.26.6.tgz",
|
||||||
|
@ -2154,24 +2222,14 @@
|
||||||
"resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz",
|
||||||
"integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw=="
|
"integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw=="
|
||||||
},
|
},
|
||||||
"@terra-money/legacy.proto": {
|
|
||||||
"version": "npm:@terra-money/terra.proto@0.1.7",
|
|
||||||
"resolved": "https://registry.npmjs.org/@terra-money/terra.proto/-/terra.proto-0.1.7.tgz",
|
|
||||||
"integrity": "sha512-NXD7f6pQCulvo6+mv6MAPzhOkUzRjgYVuHZE/apih+lVnPG5hDBU0rRYnOGGofwvKT5/jQoOENnFn/gioWWnyQ==",
|
|
||||||
"requires": {
|
|
||||||
"google-protobuf": "^3.17.3",
|
|
||||||
"long": "^4.0.0",
|
|
||||||
"protobufjs": "~6.11.2"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"@terra-money/terra.js": {
|
"@terra-money/terra.js": {
|
||||||
"version": "3.1.3",
|
"version": "3.1.10",
|
||||||
"resolved": "https://registry.npmjs.org/@terra-money/terra.js/-/terra.js-3.1.3.tgz",
|
"resolved": "https://registry.npmjs.org/@terra-money/terra.js/-/terra.js-3.1.10.tgz",
|
||||||
"integrity": "sha512-80HU5WXrqf3hZTo2GRhIycH17A+SkLD6afbu8MynMDGGD/A861F3zVv6NQ/Z7PWQGHxgddZEK/A0UQ2uK/xfHg==",
|
"integrity": "sha512-MqR16LjTUyVD4HnEavP1iBW0c1roCoRHH/E1x9P44pXzgtv2wsMeP+2un4Bnck4Nkv/46Xvy/BSKiY90ll3BKA==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"@terra-money/legacy.proto": "npm:@terra-money/terra.proto@^0.1.7",
|
"@classic-terra/terra.proto": "^1.1.0",
|
||||||
"@terra-money/terra.proto": "~2.0.0",
|
"@terra-money/terra.proto": "^2.1.0",
|
||||||
"axios": "^0.26.1",
|
"axios": "^0.27.2",
|
||||||
"bech32": "^2.0.0",
|
"bech32": "^2.0.0",
|
||||||
"bip32": "^2.0.6",
|
"bip32": "^2.0.6",
|
||||||
"bip39": "^3.0.3",
|
"bip39": "^3.0.3",
|
||||||
|
@ -2182,13 +2240,13 @@
|
||||||
"secp256k1": "^4.0.2",
|
"secp256k1": "^4.0.2",
|
||||||
"tmp": "^0.2.1",
|
"tmp": "^0.2.1",
|
||||||
"utf-8-validate": "^5.0.5",
|
"utf-8-validate": "^5.0.5",
|
||||||
"ws": "^7.5.5"
|
"ws": "^7.5.9"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@terra-money/terra.proto": {
|
"@terra-money/terra.proto": {
|
||||||
"version": "2.0.0",
|
"version": "2.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/@terra-money/terra.proto/-/terra.proto-2.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/@terra-money/terra.proto/-/terra.proto-2.1.0.tgz",
|
||||||
"integrity": "sha512-ZjyFOFUzrGn8IwzGIgr1OJFcPSsQoz/XAfoSKThJx+OjJA7CLhdcz51+5h7ehNfb+qB9wr7aNME0h24wu9D4SQ==",
|
"integrity": "sha512-rhaMslv3Rkr+QsTQEZs64FKA4QlfO0DfQHaR6yct/EovenMkibDEQ63dEL6yJA6LCaEQGYhyVB9JO9pTUA8ybw==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"@improbable-eng/grpc-web": "^0.14.1",
|
"@improbable-eng/grpc-web": "^0.14.1",
|
||||||
"google-protobuf": "^3.17.3",
|
"google-protobuf": "^3.17.3",
|
||||||
|
@ -2227,12 +2285,18 @@
|
||||||
"color-convert": "^2.0.1"
|
"color-convert": "^2.0.1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"asynckit": {
|
||||||
|
"version": "0.4.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
|
||||||
|
"integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="
|
||||||
|
},
|
||||||
"axios": {
|
"axios": {
|
||||||
"version": "0.26.1",
|
"version": "0.27.2",
|
||||||
"resolved": "https://registry.npmjs.org/axios/-/axios-0.26.1.tgz",
|
"resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz",
|
||||||
"integrity": "sha512-fPwcX4EvnSHuInCMItEhAGnaSEXRBjtzh9fOtsE6E1G6p7vl7edEeZe11QHf18+6+9gR5PbKV/sGKNaD8YaMeA==",
|
"integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"follow-redirects": "^1.14.8"
|
"follow-redirects": "^1.14.9",
|
||||||
|
"form-data": "^4.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"balanced-match": {
|
"balanced-match": {
|
||||||
|
@ -2387,6 +2451,14 @@
|
||||||
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
|
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
|
||||||
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
|
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
|
||||||
},
|
},
|
||||||
|
"combined-stream": {
|
||||||
|
"version": "1.0.8",
|
||||||
|
"resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
|
||||||
|
"integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
|
||||||
|
"requires": {
|
||||||
|
"delayed-stream": "~1.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"concat-map": {
|
"concat-map": {
|
||||||
"version": "0.0.1",
|
"version": "0.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
|
||||||
|
@ -2422,6 +2494,11 @@
|
||||||
"resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.3.1.tgz",
|
"resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.3.1.tgz",
|
||||||
"integrity": "sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ=="
|
"integrity": "sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ=="
|
||||||
},
|
},
|
||||||
|
"delayed-stream": {
|
||||||
|
"version": "1.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
|
||||||
|
"integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ=="
|
||||||
|
},
|
||||||
"dotenv": {
|
"dotenv": {
|
||||||
"version": "16.0.0",
|
"version": "16.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.0.tgz",
|
||||||
|
@ -2494,9 +2571,19 @@
|
||||||
"integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw=="
|
"integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw=="
|
||||||
},
|
},
|
||||||
"follow-redirects": {
|
"follow-redirects": {
|
||||||
"version": "1.15.3",
|
"version": "1.15.5",
|
||||||
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.3.tgz",
|
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.5.tgz",
|
||||||
"integrity": "sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q=="
|
"integrity": "sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw=="
|
||||||
|
},
|
||||||
|
"form-data": {
|
||||||
|
"version": "4.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz",
|
||||||
|
"integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==",
|
||||||
|
"requires": {
|
||||||
|
"asynckit": "^0.4.0",
|
||||||
|
"combined-stream": "^1.0.8",
|
||||||
|
"mime-types": "^2.1.12"
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"fs.realpath": {
|
"fs.realpath": {
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
|
@ -2599,6 +2686,19 @@
|
||||||
"safe-buffer": "^5.1.2"
|
"safe-buffer": "^5.1.2"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"mime-db": {
|
||||||
|
"version": "1.52.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
|
||||||
|
"integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg=="
|
||||||
|
},
|
||||||
|
"mime-types": {
|
||||||
|
"version": "2.1.35",
|
||||||
|
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
|
||||||
|
"integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
|
||||||
|
"requires": {
|
||||||
|
"mime-db": "1.52.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"minimalistic-assert": {
|
"minimalistic-assert": {
|
||||||
"version": "1.0.1",
|
"version": "1.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz",
|
||||||
|
|
|
@ -11,7 +11,7 @@
|
||||||
"license": "ISC",
|
"license": "ISC",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@cosmjs/encoding": "^0.26.2",
|
"@cosmjs/encoding": "^0.26.2",
|
||||||
"@terra-money/terra.js": "^3.1.3",
|
"@terra-money/terra.js": "^3.1.10",
|
||||||
"dotenv": "^16.0.0",
|
"dotenv": "^16.0.0",
|
||||||
"ethers": "^5.4.4",
|
"ethers": "^5.4.4",
|
||||||
"yargs": "^17.0.1"
|
"yargs": "^17.0.1"
|
||||||
|
|
|
@ -9,7 +9,7 @@ usage="Usage:
|
||||||
-h show this help text
|
-h show this help text
|
||||||
-n set the network (mainnet, testnet, devnet. defaults to \$NETWORK if set)"
|
-n set the network (mainnet, testnet, devnet. defaults to \$NETWORK if set)"
|
||||||
|
|
||||||
network=$NETWORK
|
network=${NETWORK:-""}
|
||||||
while getopts ':hn:' option; do
|
while getopts ':hn:' option; do
|
||||||
case "$option" in
|
case "$option" in
|
||||||
h) echo "$usage"
|
h) echo "$usage"
|
||||||
|
@ -31,7 +31,7 @@ shift $((OPTIND - 1))
|
||||||
|
|
||||||
|
|
||||||
case "$network" in
|
case "$network" in
|
||||||
mainnet) url="https://lcd.terra.dev";;
|
mainnet) url="https://terra-classic-lcd.publicnode.com";;
|
||||||
testnet) url="https://bombay-lcd.terra.dev";;
|
testnet) url="https://bombay-lcd.terra.dev";;
|
||||||
devnet) url="http://localhost:1317";;
|
devnet) url="http://localhost:1317";;
|
||||||
*) printf "Network not set. Specify with -n\n" >&2
|
*) printf "Network not set. Specify with -n\n" >&2
|
||||||
|
@ -45,7 +45,8 @@ obj_file=$1
|
||||||
code_id=$2
|
code_id=$2
|
||||||
|
|
||||||
|
|
||||||
hash1=`curl "$url"/terra/wasm/v1beta1/codes/"$code_id" --silent | jq '.code_info.code_hash' -r | base64 -d | hexdump -v -e '/1 "%02x" '`
|
hash1uppercased=`curl "$url"/cosmwasm/wasm/v1/code/"$code_id" --silent | jq '.code_info.data_hash' -r`
|
||||||
|
hash1=${hash1uppercased,,}
|
||||||
hash2=`sha256sum $obj_file | cut -f1 -d' '`
|
hash2=`sha256sum $obj_file | cut -f1 -d' '`
|
||||||
|
|
||||||
echo "Deployed bytecode hash (on $network):"
|
echo "Deployed bytecode hash (on $network):"
|
||||||
|
|
Loading…
Reference in New Issue