-
Notifications
You must be signed in to change notification settings - Fork 207
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Co-authored-by: vish-stride <[email protected]>
- Loading branch information
Showing
8 changed files
with
547 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
# Connecting to Mainnet | ||
## Dependency | ||
* The fleet must be up and running for the host since we need the websocket endpoint | ||
|
||
## Setup | ||
* Ensure you have dockernet setup properly including all submodules up to date and the `STRIDE_ADMIN_MNEMONIC` enviornment variable set | ||
* Fund three hot wallets and set the mnemonics as environment variables (`HOT_WALLET_1_MNEMONIC`, `HOT_WALLET_2_MNEMONIC`, `HOT_WALLET_3_MNEMONIC`) | ||
* They all must have a non-zero balance on the host | ||
* Wallet #1 should have enough to fund each liquid stake | ||
* Wallet #2 and Wallet #3 only need enough to relay on the host (~1 native token) | ||
* Update the variables at the top of `start.sh` | ||
|
||
## Start Stride Local | ||
* Build stride and the relayers | ||
``` | ||
make build-docker build=srh | ||
``` | ||
* Start a local stride and setup all the commands needed to test the flow | ||
``` | ||
bash scripts/local-to-mainnet/start.sh | ||
``` | ||
|
||
## Walk through Flow | ||
* Step through the commands in `commands.sh` one by one and copy them into the terminal | ||
* In the future, we can automate this more but since this interacts with mainnet, I think it's safer to run these manually for now |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,92 @@ | ||
############################################ | ||
### WARNING: THIS FILE IS AUTOGENERATED. ### | ||
### ANY CHANGES WILL BE OVERWRITTEN. ### | ||
############################################ | ||
#### SETUP HOT WALLET (Only needs to be run once) | ||
echo "$HOT_WALLET_1_MNEMONIC" | build/osmosisd keys add hot --recover --keyring-backend test | ||
|
||
|
||
#### START RELAYERS | ||
# Create connections and channels | ||
docker-compose run --rm relayer-host rly transact link stride-host | ||
# (OR) If the go relayer isn't working, use hermes (you'll have to add the connections to the relayer config though in `scripts/state/relayer`) | ||
# docker-compose run --rm hermes hermes create connection --a-chain osmosis-1 --b-chain local-test-7 | ||
# docker-compose run --rm hermes hermes create channel --a-chain local-test-7 --a-connection connection-0 --a-port transfer --b-port transfer | ||
|
||
# Get channel ID created on the host | ||
build/strided --home scripts/state/stride1 q ibc channel channels | ||
transfer_channel=$(build/strided --home scripts/state/stride1 q ibc channel channels | grep channel-0 -A 4 | grep counterparty -A 1 | grep channel | awk '{print $2}') && echo $transfer_channel | ||
|
||
# Start Hermes Relayer | ||
docker-compose up -d hermes | ||
docker-compose logs -f hermes | sed -r -u "s/\x1B\[([0-9]{1,3}(;[0-9]{1,2})?)?[mGK]//g" >> scripts/logs/hermes.log 2>&1 & | ||
|
||
# Configure the Go Relayer to only run ICQ | ||
sed -i -E "s|rule: \"\"|rule: allowlist|g" scripts/state/relayer/config/config.yaml | ||
|
||
# Start Go Relayer (for ICQ) | ||
docker-compose up -d relayer-host | ||
docker-compose logs -f relayer-host | sed -r -u "s/\x1B\[([0-9]{1,3}(;[0-9]{1,2})?)?[mGK]//g" >> scripts/logs/relayer.log 2>&1 & | ||
|
||
|
||
#### REGISTER HOST | ||
# IBC Transfer from HOST to stride (from relayer account) | ||
build/osmosisd tx ibc-transfer transfer transfer $transfer_channel stride1u20df3trc2c2zdhm8qvh2hdjx9ewh00sv6eyy8 4000000uosmo --from hot --chain-id osmosis-1 -y --keyring-backend test --node http://osmo-fleet-direct.main.stridenet.co:26657 | ||
|
||
# Confirm funds were recieved on stride and get IBC denom | ||
build/strided --home scripts/state/stride1 q bank balances stride1u20df3trc2c2zdhm8qvh2hdjx9ewh00sv6eyy8 | ||
|
||
# Register host zone | ||
IBC_DENOM=$(build/strided --home scripts/state/stride1 q bank balances stride1u20df3trc2c2zdhm8qvh2hdjx9ewh00sv6eyy8 | grep ibc | awk '{print $2}' | tr -d '"') && echo $IBC_DENOM | ||
build/strided --home scripts/state/stride1 tx stakeibc register-host-zone \ | ||
connection-0 uosmo osmo $IBC_DENOM channel-0 1 \ | ||
--from admin --gas 1000000 -y | ||
|
||
# Add validator | ||
build/strided --home scripts/state/stride1 tx stakeibc add-validator osmosis-1 imperator osmovaloper1083svrca4t350mphfv9x45wq9asrs60c6rv0j5 10 5 --chain-id local-test-7 --keyring-backend test --from admin -y | ||
|
||
|
||
#### FLOW | ||
## Go Through Flow | ||
# Liquid stake (then wait and LS again) | ||
build/strided --home scripts/state/stride1 tx stakeibc liquid-stake 1000000 uosmo --keyring-backend test --from admin -y --chain-id local-test-7 -y | ||
|
||
# Confirm stTokens, StakedBal, and Redemption Rate | ||
build/strided --home scripts/state/stride1 q bank balances stride1u20df3trc2c2zdhm8qvh2hdjx9ewh00sv6eyy8 | ||
build/strided --home scripts/state/stride1 q stakeibc list-host-zone | ||
|
||
# Redeem | ||
build/strided --home scripts/state/stride1 tx stakeibc redeem-stake 1000 osmosis-1 osmo1c37n9aywapx2v0s6vk2yedydkkhq65zz38jfnc --from admin --keyring-backend test --chain-id local-test-7 -y | ||
|
||
# Confirm stTokens and StakedBal | ||
build/strided --home scripts/state/stride1 q bank balances stride1u20df3trc2c2zdhm8qvh2hdjx9ewh00sv6eyy8 | ||
build/strided --home scripts/state/stride1 q stakeibc list-host-zone | ||
|
||
# Add another validator | ||
build/strided --home scripts/state/stride1 tx stakeibc add-validator osmosis-1 imperator osmovaloper1083svrca4t350mphfv9x45wq9asrs60c6rv0j5 10 5 --chain-id local-test-7 --keyring-backend test --from admin -y | ||
|
||
# Liquid stake and confirm the stake was split 50/50 between the validators | ||
build/strided --home scripts/state/stride1 tx stakeibc liquid-stake 1000000 uosmo --keyring-backend test --from admin -y --chain-id local-test-7 -y | ||
|
||
# Change validator weights | ||
build/strided --home scripts/state/stride1 tx stakeibc change-validator-weight osmosis-1 osmovaloper1t8qckan2yrygq7kl9apwhzfalwzgc2429p8f0s 1 --from admin -y | ||
build/strided --home scripts/state/stride1 tx stakeibc change-validator-weight osmosis-1-1 osmovaloper1083svrca4t350mphfv9x45wq9asrs60c6rv0j5 49 --from admin -y | ||
|
||
# LS and confirm delegation aligned with new weights | ||
build/strided --home scripts/state/stride1 tx stakeibc liquid-stake 1000000 ujuno --keyring-backend test --from admin -y --chain-id local-test-7 -y | ||
|
||
# Call rebalance to and confirm new delegations | ||
build/strided --home scripts/state/stride1 tx stakeibc rebalance-validators osmosis-1 5 --from admin | ||
|
||
# Clear balances | ||
fee_address=$(build/strided --home scripts/state/stride1 q stakeibc show-host-zone osmosis-1 | grep feeAccount -A 1 | grep address | awk '{print $2}') && echo $fee_address | ||
balance=$(build/strided --home scripts/state/stride1 q bank balances $fee_address | grep amount | awk '{print $3}' | tr -d '"') && echo $balance | ||
build/strided --home scripts/state/stride1 tx stakeibc clear-balance osmosis-1 $balance $transfer_channel --from admin | ||
|
||
# Update delegations (just submit this query and confirm the ICQ callback displays in the stride logs) | ||
# Must be submitted in ICQ window | ||
build/strided --home scripts/state/stride1 tx stakeibc update-delegation osmosis-1 osmovaloper1t8qckan2yrygq7kl9apwhzfalwzgc2429p8f0s --from admin -y | ||
|
||
#### MISC | ||
# If a channel closes, restore it with: | ||
build/strided --home scripts/state/stride1 tx stakeibc restore-interchain-account osmosis-1 {DELEGATION | WITHDRAWAL | FEE | REDEMPTION} --from admin |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,110 @@ | ||
#!/bin/bash | ||
|
||
set -eu | ||
SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) | ||
|
||
STRIDE_CHAIN_ID="$1" | ||
STATE=$SCRIPT_DIR/../state | ||
KEYS_LOGS=$SCRIPT_DIR/../logs/keys.log | ||
|
||
# CHAIN PARAMS | ||
BLOCK_TIME='5s' | ||
STRIDE_DAY_EPOCH_DURATION="120s" | ||
STRIDE_EPOCH_EPOCH_DURATION="120s" | ||
MAX_DEPOSIT_PERIOD="30s" | ||
VOTING_PERIOD="30s" | ||
INITIAL_ANNUAL_PROVISIONS="10000000000000.000000000000000000" | ||
VAL_TOKENS=5000000000000 | ||
STAKE_TOKENS=5000000000 | ||
ADMIN_TOKENS=1000000000 | ||
PEER_PORT=26656 | ||
RPC_PORT=26657 | ||
VAL_PREFIX=val | ||
DENOM=ustrd | ||
|
||
NODE_NAME="stride1" | ||
STRIDE_VAL_MNEMONIC="close soup mirror crew erode defy knock trigger gather eyebrow tent farm gym gloom base lemon sleep weekend rich forget diagram hurt prize fly" | ||
HERMES_MNEMONIC="alter old invest friend relief slot swear pioneer syrup economy vendor tray focus hedgehog artist legend antenna hair almost donkey spice protect sustain increase" | ||
RELAYER_MNEMONIC="pride narrow breeze fitness sign bounce dose smart squirrel spell length federal replace coral lunar thunder vital push nuclear crouch fun accident hood need" | ||
|
||
STRIDE_ADMIN_ACCT=admin | ||
STRIDE_VAL_ACCT=val1 | ||
HERMES_ACCT=hrly1 | ||
RELAYER_ACCT=rly1 | ||
|
||
CMD="$SCRIPT_DIR/../../build/strided --home $SCRIPT_DIR/../state/stride1" | ||
|
||
echo "Initializing Stride chain..." | ||
|
||
# Create a state directory for the current node and initialize the chain | ||
mkdir -p $STATE/$NODE_NAME | ||
$CMD init STRIDE --chain-id $STRIDE_CHAIN_ID --overwrite &> /dev/null | ||
|
||
# Update node networking configuration | ||
config_toml="${STATE}/${NODE_NAME}/config/config.toml" | ||
client_toml="${STATE}/${NODE_NAME}/config/client.toml" | ||
app_toml="${STATE}/${NODE_NAME}/config/app.toml" | ||
genesis_json="${STATE}/${NODE_NAME}/config/genesis.json" | ||
|
||
sed -i -E "s|cors_allowed_origins = \[\]|cors_allowed_origins = [\"\*\"]|g" $config_toml | ||
sed -i -E "s|127.0.0.1|0.0.0.0|g" $config_toml | ||
sed -i -E "s|timeout_commit = \"5s\"|timeout_commit = \"${BLOCK_TIME}\"|g" $config_toml | ||
sed -i -E "s|prometheus = false|prometheus = true|g" $config_toml | ||
|
||
sed -i -E "s|minimum-gas-prices = \".*\"|minimum-gas-prices = \"0${DENOM}\"|g" $app_toml | ||
sed -i -E '/\[api\]/,/^enable = .*$/ s/^enable = .*$/enable = true/' $app_toml | ||
sed -i -E 's|unsafe-cors = .*|unsafe-cors = true|g' $app_toml | ||
|
||
sed -i -E "s|chain-id = \"\"|chain-id = \"${STRIDE_CHAIN_ID}\"|g" $client_toml | ||
sed -i -E "s|keyring-backend = \"os\"|keyring-backend = \"test\"|g" $client_toml | ||
sed -i -E "s|node = \".*\"|node = \"tcp://localhost:$RPC_PORT\"|g" $client_toml | ||
|
||
sed -i -E "s|\"stake\"|\"${DENOM}\"|g" $genesis_json | ||
|
||
# Get the endpoint and node ID | ||
node_id=$($CMD tendermint show-node-id)@$NODE_NAME:$PEER_PORT | ||
echo "Node ID: $node_id" | ||
|
||
# add a validator account | ||
echo "$STRIDE_VAL_MNEMONIC" | $CMD keys add $STRIDE_VAL_ACCT --recover --keyring-backend=test >> $KEYS_LOGS 2>&1 | ||
VAL_ADDR=$($CMD keys show $STRIDE_VAL_ACCT --keyring-backend test -a) | ||
# Add this account to the current node | ||
$CMD add-genesis-account ${VAL_ADDR} ${VAL_TOKENS}${DENOM} | ||
# actually set this account as a validator on the current node | ||
$CMD gentx $STRIDE_VAL_ACCT ${STAKE_TOKENS}${DENOM} --chain-id $STRIDE_CHAIN_ID --keyring-backend test &> /dev/null | ||
|
||
# Cleanup from seds | ||
rm -rf ${client_toml}-E | ||
rm -rf ${genesis_json}-E | ||
rm -rf ${app_toml}-E | ||
|
||
# add Hermes and ICQ relayer accounts on Stride | ||
echo "$HERMES_MNEMONIC" | $CMD keys add $HERMES_ACCT --recover --keyring-backend=test >> $KEYS_LOGS 2>&1 | ||
echo "$RELAYER_MNEMONIC" | $CMD keys add $RELAYER_ACCT --recover --keyring-backend=test >> $KEYS_LOGS 2>&1 | ||
HERMES_ADDRESS=$($CMD keys show $HERMES_ACCT --keyring-backend test -a) | ||
RELAYER_ADDRESS=$($CMD keys show $RELAYER_ACCT --keyring-backend test -a) | ||
|
||
# give relayer accounts token balances | ||
$CMD add-genesis-account ${HERMES_ADDRESS} ${VAL_TOKENS}${DENOM} | ||
$CMD add-genesis-account ${RELAYER_ADDRESS} ${VAL_TOKENS}${DENOM} | ||
|
||
# add the stride admin account | ||
echo "$STRIDE_ADMIN_MNEMONIC" | $CMD keys add $STRIDE_ADMIN_ACCT --recover --keyring-backend=test >> $KEYS_LOGS 2>&1 | ||
STRIDE_ADMIN_ADDRESS=$($CMD keys show $STRIDE_ADMIN_ACCT --keyring-backend test -a) | ||
$CMD add-genesis-account ${STRIDE_ADMIN_ADDRESS} ${ADMIN_TOKENS}${DENOM} | ||
|
||
# now we process gentx txs on the main node | ||
$CMD collect-gentxs &> /dev/null | ||
|
||
# wipe out the persistent peers for the main node (these are incorrectly autogenerated for each validator during collect-gentxs) | ||
sed -i -E "s|persistent_peers = .*|persistent_peers = \"\"|g" $config_toml | ||
|
||
# update params | ||
jq '(.app_state.epochs.epochs[] | select(.identifier=="day") ).duration = $epochLen' --arg epochLen $STRIDE_DAY_EPOCH_DURATION $genesis_json > json.tmp && mv json.tmp $genesis_json | ||
jq '(.app_state.epochs.epochs[] | select(.identifier=="stride_epoch") ).duration = $epochLen' --arg epochLen $STRIDE_EPOCH_EPOCH_DURATION $genesis_json > json.tmp && mv json.tmp $genesis_json | ||
jq '.app_state.gov.deposit_params.max_deposit_period = $newVal' --arg newVal "$MAX_DEPOSIT_PERIOD" $genesis_json > json.tmp && mv json.tmp $genesis_json | ||
jq '.app_state.gov.voting_params.voting_period = $newVal' --arg newVal "$VOTING_PERIOD" $genesis_json > json.tmp && mv json.tmp $genesis_json | ||
|
||
# Cleanup from seds | ||
rm -rf ${config_toml}-E | ||
rm -rf ${genesis_json}-E |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,91 @@ | ||
#!/bin/bash | ||
|
||
set -eu | ||
SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) | ||
|
||
STRIDE_CHAIN_ID=local-test-7 | ||
HOST_CHAIN_ID=osmosis-1 | ||
HOST_ENDPOINT=osmo-fleet-direct.main.stridenet.co | ||
HOST_ACCOUNT_PREFIX=osmo | ||
HOST_DENOM=uosmo | ||
HOST_BINARY=build/osmosisd | ||
HOST_VAL_NAME_1=imperator | ||
HOST_VAL_ADDRESS_1=osmovaloper1t8qckan2yrygq7kl9apwhzfalwzgc2429p8f0s | ||
HOST_VAL_NAME_2=notional | ||
HOST_VAL_ADDRESS_2=osmovaloper1083svrca4t350mphfv9x45wq9asrs60c6rv0j5 | ||
HOT_WALLET_ADDRESS=osmo1c37n9aywapx2v0s6vk2yedydkkhq65zz38jfnc | ||
|
||
STATE=$SCRIPT_DIR/../state | ||
STRIDE_LOGS=$SCRIPT_DIR/../logs/stride.log | ||
|
||
HERMES_STRIDE_MNEMONIC="alter old invest friend relief slot swear pioneer syrup economy vendor tray focus hedgehog artist legend antenna hair almost donkey spice protect sustain increase" | ||
RELAYER_STRIDE_MNEMONIC="pride narrow breeze fitness sign bounce dose smart squirrel spell length federal replace coral lunar thunder vital push nuclear crouch fun accident hood need" | ||
|
||
# cleanup any stale state | ||
make stop-docker | ||
rm -rf $STATE $SCRIPT_DIR/../logs/*.log $SCRIPT_DIR/../logs/temp | ||
mkdir -p $SCRIPT_DIR/../logs | ||
|
||
# Start stride | ||
sh ${SCRIPT_DIR}/init_stride.sh $STRIDE_CHAIN_ID | ||
|
||
docker-compose up -d stride1 | ||
docker-compose logs -f stride1 | sed -r -u "s/\x1B\[([0-9]{1,3}(;[0-9]{1,2})?)?[mGK]//g" > $STRIDE_LOGS 2>&1 & | ||
|
||
printf "Waiting for Stride to start..." | ||
( tail -f -n0 $STRIDE_LOGS & ) | grep -q "finalizing commit of block" | ||
echo "Done" | ||
|
||
# Setup relayers | ||
mkdir -p $STATE/hermes | ||
mkdir -p $STATE/relayer/config | ||
HERMES_CONFIG_FILE="$STATE/hermes/config.toml" | ||
RELAYER_CONFIG_FILE="$STATE/relayer/config/config.yaml" | ||
cp ${SCRIPT_DIR}/templates/hermes_config.toml $HERMES_CONFIG_FILE | ||
cp ${SCRIPT_DIR}/templates/relayer_config.yaml $RELAYER_CONFIG_FILE | ||
|
||
# Update relayer templates | ||
sed -i -E "s|STRIDE_CHAIN_ID|$STRIDE_CHAIN_ID|g" $HERMES_CONFIG_FILE | ||
sed -i -E "s|HOST_CHAIN_ID|$HOST_CHAIN_ID|g" $HERMES_CONFIG_FILE | ||
sed -i -E "s|HOST_ENDPOINT|$HOST_ENDPOINT|g" $HERMES_CONFIG_FILE | ||
sed -i -E "s|HOST_ACCOUNT_PREFIX|$HOST_ACCOUNT_PREFIX|g" $HERMES_CONFIG_FILE | ||
sed -i -E "s|HOST_DENOM|$HOST_DENOM|g" $HERMES_CONFIG_FILE | ||
|
||
sed -i -E "s|STRIDE_CHAIN_ID|$STRIDE_CHAIN_ID|g" $RELAYER_CONFIG_FILE | ||
sed -i -E "s|HOST_CHAIN_ID|$HOST_CHAIN_ID|g" $RELAYER_CONFIG_FILE | ||
sed -i -E "s|HOST_ENDPOINT|$HOST_ENDPOINT|g" $RELAYER_CONFIG_FILE | ||
sed -i -E "s|HOST_ACCOUNT_PREFIX|$HOST_ACCOUNT_PREFIX|g" $RELAYER_CONFIG_FILE | ||
sed -i -E "s|HOST_DENOM|$HOST_DENOM|g" $RELAYER_CONFIG_FILE | ||
|
||
echo "Adding Hermes keys" | ||
HERMES_CMD="$SCRIPT_DIR/../../build/hermes/release/hermes --config $STATE/hermes/config.toml" | ||
TMP_MNEMONICS=$STATE/mnemonic.txt | ||
echo "$HERMES_STRIDE_MNEMONIC" > $TMP_MNEMONICS | ||
$HERMES_CMD keys add --key-name hrly1 --chain $STRIDE_CHAIN_ID --mnemonic-file $TMP_MNEMONICS --overwrite | ||
echo "$HOT_WALLET_2_MNEMONIC" > $TMP_MNEMONICS | ||
$HERMES_CMD keys add --key-name hrly2 --chain $HOST_CHAIN_ID --mnemonic-file $TMP_MNEMONICS --overwrite | ||
rm -f $TMP_MNEMONICS | ||
|
||
echo "Adding Relayer keys" | ||
RELAYER_CMD="$SCRIPT_DIR/../../build/relayer --home $STATE/relayer" | ||
$RELAYER_CMD keys restore stride rly1 "$RELAYER_STRIDE_MNEMONIC" | ||
$RELAYER_CMD keys restore host rly2 "$HOT_WALLET_3_MNEMONIC" | ||
|
||
# Update commands template | ||
COMMANDS_FILE=${SCRIPT_DIR}/commands.sh | ||
cp ${SCRIPT_DIR}/templates/commands.sh $COMMANDS_FILE | ||
sed -i -E '1s/^/############################################\n### WARNING: THIS FILE IS AUTOGENERATED. ###\n### ANY CHANGES WILL BE OVERWRITTEN. ###\n############################################\n/' $COMMANDS_FILE | ||
sed -i -E "s|STRIDE_CHAIN_ID|$STRIDE_CHAIN_ID|g" $COMMANDS_FILE | ||
sed -i -E "s|HOST_CHAIN_ID|$HOST_CHAIN_ID|g" $COMMANDS_FILE | ||
sed -i -E "s|HOST_BINARY|$HOST_BINARY|g" $COMMANDS_FILE | ||
sed -i -E "s|HOST_DENOM|$HOST_DENOM|g" $COMMANDS_FILE | ||
sed -i -E "s|HOST_ACCOUNT_PREFIX|$HOST_ACCOUNT_PREFIX|g" $COMMANDS_FILE | ||
sed -i -E "s|HOST_ENDPOINT|$HOST_ENDPOINT|g" $COMMANDS_FILE | ||
sed -i -E "s|HOST_VAL_NAME_1|$HOST_VAL_NAME_1|g" $COMMANDS_FILE | ||
sed -i -E "s|HOST_VAL_NAME_2|$HOST_VAL_NAME_2|g" $COMMANDS_FILE | ||
sed -i -E "s|HOST_VAL_ADDRESS_1|$HOST_VAL_ADDRESS_1|g" $COMMANDS_FILE | ||
sed -i -E "s|HOST_VAL_ADDRESS_2|$HOST_VAL_ADDRESS_2|g" $COMMANDS_FILE | ||
sed -i -E "s|HOT_WALLET_ADDRESS|$HOT_WALLET_ADDRESS|g" $COMMANDS_FILE | ||
|
||
rm -f $COMMANDS_FILE-E | ||
echo "Done" |
Oops, something went wrong.