Skip to content

Commit

Permalink
Merge branch 'MX-15222-sovereign-chain-simulator' into MX-15222-actua…
Browse files Browse the repository at this point in the history
…l-sovereign-chain-simulator
  • Loading branch information
axenteoctavian committed May 20, 2024
2 parents 365ae5a + f438637 commit 8cb867d
Show file tree
Hide file tree
Showing 19 changed files with 1,175 additions and 0 deletions.
55 changes: 55 additions & 0 deletions scripts/testnet/sovereignBridge/config/common.snippets.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
deployMainChainContractsAndSetupObserver() {
deployEsdtSafeContract

deployFeeMarketContract

setFeeMarketAddress

disableFeeMarketContract

unpauseEsdtSafeContract

setGenesisContract

updateSovereignConfig

prepareObserver
}

sovereignDeploy() {
updateNotifierNotarizationRound

../config.sh

deployMultisigVerifierContract

setEsdtSafeAddress

updateAndStartBridgeService

../sovereignStart.sh

deployObserver

setMultisigAddress

setSovereignBridgeAddress

getFundsInAddressSovereign

setFeeMarketAddressSovereign

disableFeeMarketContractSovereign

unpauseEsdtSafeContractSovereign
}

stopAndCleanSovereign() {
../stop.sh

screen -S sovereignBridgeService -X kill

../clean.sh

stopObserver
}
55 changes: 55 additions & 0 deletions scripts/testnet/sovereignBridge/config/configs.cfg
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
#============ OWNER ==============

WALLET="~/wallet.pem"
WALLET_ADDRESS=erd1

#============ WASM FILES ==============

ESDT_SAFE_WASM="~/contracts/esdt-safe.wasm"
FEE_MARKET_WASM="~/contracts/fee-market.wasm"
MULTISIG_VERIFIER_WASM="~/contracts/multisigverifier.wasm"

#=========== CHAIN SPECIFIC CONSTANTS ===========
ESDT_SYSTEM_SC_ADDRESS=erd1qqqqqqqqqqqqqqqpqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqzllls8a5w6u
ESDT_ISSUE_COST=50000000000000000

PROXY=https://testnet-gateway.multiversx.com
CHAIN_ID=T
PRICE_AGGREGATOR_ADDRESS=erd1qqqqqqqqqqqqqpgqfsfcrxnlym0fjlnuvus2dmlz6ju9cpsfexks8wq4d4
WEGLD_TOKEN_ID=WEGLD-a28c59
USDC_TOKEN_ID=USDC-350c4e

PROXY_SOVEREIGN=http://localhost:7950
CHAIN_ID_SOVEREIGN=local-testnet

#============ ESDT SAFE DEPLOY ARGUMENTS ==============

MIN_VALID_SIGNERS=0
INITIATOR_ADDRESS=erd1qyu5wthldzr8wx5c9ucg8kjagg0jfs53s8nr3zpz3hypefsdd8ssycr6th
SIGNERS=

#============ ISSUE MAIN CHAIN TOKEN SETTINGS ==============

TOKEN_TICKER=TKN
TOKEN_DISPLAY_NAME=Token
NR_DECIMALS=18
INITIAL_SUPPLY=111222333

#============ MAIN CHAIN TOKEN TO DEPOSIT ==============

DEPOSIT_TOKEN_IDENTIFIER=
DEPOSIT_TOKEN_NR_DECIMALS=18
DEPOSIT_TOKEN_AMOUNT_TO_TRANSFER=123

#============ ISSUE SOVEREIGN TOKEN SETTINGS ==============

TOKEN_TICKER_SOVEREIGN=SVN
TOKEN_DISPLAY_NAME_SOVEREIGN=SovToken
NR_DECIMALS_SOVEREIGN=18
INITIAL_SUPPLY_SOVEREIGN=333222111

#============ SOVEREIGN TOKEN TO DEPOSIT ==============

DEPOSIT_TOKEN_IDENTIFIER_SOVEREIGN=
DEPOSIT_TOKEN_NR_DECIMALS_SOVEREIGN=18
DEPOSIT_TOKEN_AMOUNT_TO_TRANSFER_SOVEREIGN=321
168 changes: 168 additions & 0 deletions scripts/testnet/sovereignBridge/config/esdt-safe.snippets.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,168 @@
ESDT_SAFE_ADDRESS=$(mxpy data load --partition=${CHAIN_ID} --key=address-esdt-safe-contract)
ESDT_SAFE_ADDRESS_SOVEREIGN=$(mxpy data load --partition=sovereign --key=address-esdt-safe-contract)

deployEsdtSafeContract() {
mxpy --verbose contract deploy \
--bytecode=$(eval echo ${ESDT_SAFE_WASM}) \
--pem=${WALLET} \
--proxy=${PROXY} \
--chain=${CHAIN_ID} \
--gas-limit=200000000 \
--arguments \
false \
${MIN_VALID_SIGNERS} \
${INITIATOR_ADDRESS} \
${SIGNERS} \
--outfile="${SCRIPT_PATH}/deploy-esdt-safe.interaction.json" \
--recall-nonce \
--wait-result \
--send || return

local TX_STATUS=$(mxpy data parse --file="${SCRIPT_PATH}/deploy-esdt-safe.interaction.json" --expression="data['transactionOnNetwork']['status']")
if [ "$TX_STATUS" != "success" ]; then
echo "Transaction was not successful"
return
fi

local ADDRESS=$(mxpy data parse --file="${SCRIPT_PATH}/deploy-esdt-safe.interaction.json" --expression="data['contractAddress']")
mxpy data store --partition=${CHAIN_ID} --key=address-esdt-safe-contract --value=${ADDRESS}
ESDT_SAFE_ADDRESS=$(mxpy data load --partition=${CHAIN_ID} --key=address-esdt-safe-contract)
echo -e "ESDT Safe contract: ${ADDRESS}"

local SOVEREIGN_CONTRACT_ADDRESS=$(computeFirstSovereignContractAddress)
mxpy data store --partition=sovereign --key=address-esdt-safe-contract --value=${SOVEREIGN_CONTRACT_ADDRESS}
ESDT_SAFE_ADDRESS_SOVEREIGN=$(mxpy data load --partition=sovereign --key=address-esdt-safe-contract)
echo -e "ESDT Safe sovereign contract: ${SOVEREIGN_CONTRACT_ADDRESS}"
}

upgradeEsdtSafeContract() {
mxpy --verbose contract upgrade ${ESDT_SAFE_ADDRESS} \
--bytecode=$(eval echo ${ESDT_SAFE_WASM}) \
--pem=${WALLET} \
--proxy=${PROXY} \
--chain=${CHAIN_ID} \
--gas-limit=200000000 \
--outfile="${SCRIPT_PATH}/upgrade-esdt-safe.interaction.json" \
--recall-nonce \
--wait-result \
--send || return

local TX_STATUS=$(mxpy data parse --file="${SCRIPT_PATH}/upgrade-esdt-safe.interaction.json" --expression="data['transactionOnNetwork']['status']")
if [ "$TX_STATUS" != "success" ]; then
echo "Transaction was not successful"
return
fi
}

pauseEsdtSafeContract() {
pauseEsdtSafeContractCall ${ESDT_SAFE_ADDRESS} ${PROXY} ${CHAIN_ID}
}
pauseEsdtSafeContractSovereign() {
pauseEsdtSafeContractCall ${ESDT_SAFE_ADDRESS_SOVEREIGN} ${PROXY_SOVEREIGN} ${CHAIN_ID_SOVEREIGN}
}
pauseEsdtSafeContractCall() {
if [ $# -lt 3 ]; then
echo "Usage: $0 <arg1> <arg2> <arg3>"
exit 1
fi

local ADDRESS=$1
local URL=$2
local CHAIN=$3

mxpy --verbose contract call ${ADDRESS} \
--pem=${WALLET} \
--proxy=${URL} \
--chain=${CHAIN} \
--gas-limit=10000000 \
--function="pause" \
--recall-nonce \
--wait-result \
--send || return
}

unpauseEsdtSafeContract() {
unpauseEsdtSafeContractCall ${ESDT_SAFE_ADDRESS} ${PROXY} ${CHAIN_ID}
}
unpauseEsdtSafeContractSovereign() {
unpauseEsdtSafeContractCall ${ESDT_SAFE_ADDRESS_SOVEREIGN} ${PROXY_SOVEREIGN} ${CHAIN_ID_SOVEREIGN}
}
unpauseEsdtSafeContractCall() {
if [ $# -lt 3 ]; then
echo "Usage: $0 <arg1> <arg2> <arg3>"
exit 1
fi

local ADDRESS=$1
local URL=$2
local CHAIN=$3

mxpy --verbose contract call ${ADDRESS} \
--pem=${WALLET} \
--proxy=${URL} \
--chain=${CHAIN} \
--gas-limit=10000000 \
--function="unpause" \
--recall-nonce \
--wait-result \
--send || return
}

setFeeMarketAddress() {
setFeeMarketAddressCall ${ESDT_SAFE_ADDRESS} ${FEE_MARKET_ADDRESS} ${PROXY} ${CHAIN_ID}
}
setFeeMarketAddressSovereign() {
setFeeMarketAddressCall ${ESDT_SAFE_ADDRESS_SOVEREIGN} ${FEE_MARKET_ADDRESS_SOVEREIGN} ${PROXY_SOVEREIGN} ${CHAIN_ID_SOVEREIGN}
}
setFeeMarketAddressCall() {
if [ $# -lt 4 ]; then
echo "Usage: $0 <arg1> <arg2> <arg3> <arg4>"
exit 1
fi

local ESDT_SAFE_CONTRACT_ADDRESS=$1
local FEE_MARKET_CONTRACT_ADDRESS=$2
local URL=$3
local CHAIN=$4

mxpy --verbose contract call ${ESDT_SAFE_CONTRACT_ADDRESS} \
--pem=${WALLET} \
--proxy=${URL} \
--chain=${CHAIN} \
--gas-limit=10000000 \
--function="setFeeMarketAddress" \
--arguments ${FEE_MARKET_CONTRACT_ADDRESS} \
--recall-nonce \
--wait-result \
--send || return
}

setMultisigAddress() {
checkVariables ESDT_SAFE_ADDRESS MULTISIG_VERIFIER_ADDRESS || return

mxpy --verbose contract call ${ESDT_SAFE_ADDRESS} \
--pem=${WALLET} \
--proxy=${PROXY} \
--chain=${CHAIN_ID} \
--gas-limit=10000000 \
--function="setMultisigAddress" \
--arguments ${MULTISIG_VERIFIER_ADDRESS} \
--recall-nonce \
--wait-result \
--send || return
}

setSovereignBridgeAddress() {
checkVariables ESDT_SAFE_ADDRESS ESDT_SAFE_ADDRESS_SOVEREIGN || return

mxpy --verbose contract call ${ESDT_SAFE_ADDRESS} \
--pem=${WALLET} \
--proxy=${PROXY} \
--chain=${CHAIN_ID} \
--gas-limit=10000000 \
--function="setSovereignBridgeAddress" \
--arguments ${ESDT_SAFE_ADDRESS_SOVEREIGN} \
--recall-nonce \
--wait-result \
--send || return
}
Loading

0 comments on commit 8cb867d

Please sign in to comment.