Install dependencies
forge install
Update submodule
git submodule update
Build
forge build
Test
forge test -vvvv
- deploy 0xBfc0B179da8551C8cf62460B93e40071C5ef131D
- setSrcChainId
- addCaller(VaultCrossChainManager)
- addChainIdMapping: native ChianId to Layerzero ChainId
- setTrustedRemote
- transfer native token to Contract
- deploy 0x2558B46b5a31d0C3d221d9f13f14275eD6C6FdCA
- setSrcChainId
- addCaller(LedgerCrossChainManager)
- addChainIdMapping: native ChianId to Layerzero ChainId
- setTrustedRemote
- transfer native token to Contract
- deploy 0x095d45c24687e87C6832E8d1C90fa755C16BA382
- setChainId
- setLedger
- setCrossChainRelay
- setVaultCrossChainManager(chainId, address)
- deploy 0x4B4E25e461d8Cdc9333196Bc2A27527f3cFc3209
- setChainId
- setVault
- setCrossChainRelay
- setLedgerCrossChainManager(chainId, address)
forge script script/ledger/DeployProxyLedger.s.sol -f $ORDERLY_NETWORK --json --broadcast
forge script script/ledger/UpgradeLedger.s.sol -f $ORDERLY_NETWORK --json --broadcast
forge script script/ledger/UpgradeOperatorManager.s.sol -f $ORDERLY_NETWORK --json --broadcast
forge script script/ledger/UpgradeFeeManager.s.sol -f $ORDERLY_NETWORK --json --broadcast
forge script script/ledger/UpgradeVaultManager.s.sol -f $ORDERLY_NETWORK --json --broadcast
forge script script/ledger/UpgradeMarketManager.s.sol -f $ORDERLY_NETWORK --json --broadcast
forge script script/vault/DeployProxyVault.s.sol -f $VAULT_NETWORK --json --broadcast
forge script script/vault/UpgradeVault.s.sol -f $VAULT_NETWORK --json --broadcast
forge script script/vault/StartDeposit.s.sol -f $VAULT_NETWORK --json --broadcast
VAULT_RELAY_ADDRESS="0xc8E38C1Fd1422f49DB592BAe619080EA5Deb50e0"
VAULT_CROSS_CHAIN_MANAGER_ADDRESS="0xC0136Ae389F2AB4b1517c0bF9488Cc13d0546090"
VAULT_PROXY_ADMIN="0x873c120b42C80D528389d85cEA9d4dC0197974aD"
TEST_USDC_ADDRESS="0x1826B75e2ef249173FC735149AE4B8e9ea10abff"
VAULT_ADDRESS="0x523Ab490B15803d6Ba60dC95F1579536F95edD4e"
LEDGER_RELAY_ADDRESS="0x2521750f89bEb11C53a3646D45073bef33312a91"
LEDGER_CROSS_CHAIN_MANAGER_ADDRESS="0xa6814dF691F6fDAD1573cCC5103A712056E1a27c"
LEDGER_PROXY_ADMIN="0xD9094Ea3AEEEc98af007325d37459E92027D92b4"
OPERATOR_MANAGER_ADDRESS="0x7831C3587388bdC4b037E4F01C82Edd1d4edCA99"
VAULT_MANAGER_ADDRESS="0xEbA7BEf0AF268f60fA572B7FDa286f876Ad44BEb"
LEDGER_ADDRESS="0xB3b86341E796684A7D33Ca102703b85BDE5925b6"
FEE_MANAGER_ADDRESS="0x3bF7fbf5B61DEFC9ee26972AfB1a4A4977b6A2fd"
MARKET_MANAGER_ADDRESS="0x21759c38A7047d73Fe77db5693f12Dc4F51f81Ff"
- cross-chain relay on target two chains are deployed, address of the relay proxy is put into
.env
file. env variables areXXX_RELAY_PROXY
, whereXXX
denotes the network name
set the following variables in .env
accordingly:
# Script Parameters
CURRENT_NETWORK="fuji" # or other network names
CURRENT_SIDE="ledger" # or vault
CALL_METHOD="deploy" # or upgrade
and then run the command:
source .env
# call deploy with vault on the right network
forge script myScript/DeployAndUpgradeManager.s.sol --rpc-url $RPC_URL_FUJI -vvvv --via-ir --broadcast
# call deploy with ledger on the right network
forge script myScript/DeployAndUpgradeManager.s.sol --rpc-url $RPC_URL_ORDERLY -vvvv --via-ir --broadcast
change the --rpc-url
value to the one suits your instruction.
here is some sample env variables:
# Script Parameters
CURRENT_NETWORK="fuji" # or other networks
CURRENT_SIDE="vault" # or vault
CALL_METHOD="ledger" # or addVault
LEDGER_NETWORK="orderly"
ADD_VAULT_NETWORK="fuji"
then run the command:
source .env
# call setup
forge script myScript/SetupManager.s.sol --rpc-url $RPC_URL_FUJI -vvvv --via-ir --broadcast
# call setup
forge script myScript/SetupManager.s.sol --rpc-url $RPC_URL_ORDERLY -vvvv --via-ir --broadcast
# call addVault
forge script myScript/SetupManager.s.sol --rpc-url $RPC_URL_ORDERLY -vvvv --via-ir --broadcast
you can set the following variables in .env
first:
CURRENT_NETWORK="orderly"
CALL_METHOD="test"
TARGET_NETWORK="fuji"
and call to send test withdraw message
forge script myScript/SetupManager.s.sol --rpc-url $RPC_URL_ORDERLY -vvvv --via-ir --broadcast
later view payload status on layerzeroscan to check whether test succeed.