- repo:
- Wallet Setup
- Compile:
- npx hardhat compile
- repo:
- Wallet Setup:
- Set PK in sdk/testkey
- Compile:
cd apps/moveflow/; aptos move compile --dev --package-dir .
- Deploy to bsc testnet:
npx hardhat --network bsc-testnet deploy --tags MoveflowCrosschain
- Deploy to bsc testnet:
npx hardhat --network bsc-testnet deploy --tags MFLToken
- Publish to bscscan:
npx hardhat verify --network bsc-testnet <MFL_CONTRACT_ADDR>
- Mint MFL:
- https://testnet.bscscan.com/address/<MFL_CONTRACT_ADDR>#writeContract#F4
- Deploy to testnet:
- Set
layerzeroDeployedAddress
intests/moveflow.deploy.test.ts
according to the env cd sdk; npx jest ./tests/moveflow.deploy.test.ts
, what the script should have done:- Deploy
- Register UA
- Register Aptos coin
- Set
- Deploy to testnet:
- Set up aptos cli: https://aptos.dev/tools/aptos-cli/use-cli/cli-configuration#configuration-examples
- Create and mint MFL token
cd apps/test-token
export APT_ACC=<YOUR ACCOUNT ADDRESS>
aptos move publish \
--named-addresses mycoin=${APT_ACC}
aptos move run \
--function-id 0x1::managed_coin::initialize \
--args string:"MFL" string:"MFL" u8:8 bool:true \
--type-args ${APT_ACC}::Coins::MFL \
--assume-yes
aptos move run \
--function-id 0x1::managed_coin::register \
--type-args ${APT_ACC}::Coins::MFL \
--assume-yes
aptos move run \
--function-id 0x1::managed_coin::mint \
--args address:${APT_ACC} u64:10000000000 \
--type-args ${APT_ACC}::Coins::MFL \
--assume-yes
- Init
- Set the following variables in
tasks/setTrustedRemote.Aptos.js
according to deployment aboveremoteChainId
remoteAddress
ENDPOINT_HTTP
remoteMflAddress
npx hardhat --network bsc-testnet setTrustedRemote.Aptos
, what the script should have done:- Mint MFL
- Register MFL
- Deposit MFL to cx chain pool
- set trusted remote
- Set the following variables in
- Init
- Set the following variables in
sdk/tests/moveflow.setRemote.test.ts
according to deployment above and envlayerzeroDeployedAddress
mflOwnerAddress
rmtEvmContractAddr
rmtMflTokenAddress
rmtEvmReceiverAddr
remoteChainId
- MFL Token owner transfers at least 0.1 MFL to Contract Owner.
- Ensure the deployer's apt balance is greater than 3 apt.
cd sdk; npx jest ./tests/moveflow.setRemote.test.ts
, what the script should have done:- Mint MFL
- Register MFL on Moveflow contract
set_coin_map
setRemote
- Create a stream whose receiver is an EVM user.
- Set the following variables in
- Withdraw from aptos chain
- Set the following variables in
tasks/withdrawFrom.Aptos.js
according to deployment above and envstreamId
remoteChainId
npx hardhat --network bsc-testnet withdrawFrom.Aptos
- Set the following variables in
- Test crosschain withdraw
- set the following in
npx jest ./tests/moveflow.withdraw.test.ts
layerzeroDeployedAddress
mflOwnerAddress
rmtEvmContractAddr
streamId
remoteChainId
cd sdk; npx jest ./tests/moveflow.withdraw.test.ts
- set the following in
- Test moveflow contract
npx hardhat test test/examples/Moveflow.test.js
- Layerzero explorer:
- testnet.layerzeroscan.com
- BSC explorer:
- testnet.bscscan.com
- Aptos explorer:
- explorer.aptoslabs.com
- EVM Tx Analysis
- dashboard.tenderly.co
- Lz module
- Testnet: 0x1759cc0d3161f1eb79f65847d4feb9d1f74fb79014698a23b16b28b9cd4c37e3
- Q: How do you recover the funds in a blocked tx / retry with a new nonce
- Is this for V1? A blocked message just means that the previous nonce is a storedPayload. Once the StoredPayload has been cleared your tx will automatically clear and execute. You can retry a storedPayload via LayerZero Scan
- Owner: 0xf31930087dbb136119bdec3e97dc6e179db11ede52a04103939e33be60fff3e8
- MFL Token owner: 0x9ae8412de465c9fbf398ea46dfd23196cf216918321688b213e5da904d281886
- Owner: 0xA8c4AAE4ce759072D933bD4a51172257622eF128
- Moveflow Contract: 0xb4028600028C3966c3D7730b7e2735b031DE4B44
- MFL Token Contract: 0x6A1a221eB8c61cfa6877938FbeE8bE7290b281D0
- Owner: 0x3619778b653e7d805f7a29fb20e880e08ee9c3dde0176d1d71c8dbaca35311f8
- MFL Token Tx: 0x27170e998c12b909e26d50d218765e8a06f6dd2db3fd9c26a36c78557d3cfc06
- MFL Token owner: 0x9ae8412de465c9fbf398ea46dfd23196cf216918321688b213e5da904d281886
- Owner: 0xA8c4AAE4ce759072D933bD4a51172257622eF128
- Moveflow Contract: 0xF122Fb233fAd2832263E69fc2BF42Cbcff84D870
- MFL Token Contract: 0xDE3a190D9D26A8271Ae9C27573c03094A8A2c449
- Owner: 0x01a4bb54c4c053d47c9f812cc143c6a83028e2df5655d2be65dfe707b77630d4
- MFL Token Tx: 0x27170e998c12b909e26d50d218765e8a06f6dd2db3fd9c26a36c78557d3cfc06
- MFL Token owner: 0x9ae8412de465c9fbf398ea46dfd23196cf216918321688b213e5da904d281886
- Owner: 0xA8c4AAE4ce759072D933bD4a51172257622eF128
- Moveflow Contract: 0x0B858B1C52e49DF07fd96b87CF5DA7838f170c04
- MFL Token Contract: 0xDE3a190D9D26A8271Ae9C27573c03094A8A2c449
- Owner: 0x9ae8412de465c9fbf398ea46dfd23196cf216918321688b213e5da904d281886
- MFL Token Tx: 0x27170e998c12b909e26d50d218765e8a06f6dd2db3fd9c26a36c78557d3cfc06
- MFL Token owner: 0x9ae8412de465c9fbf398ea46dfd23196cf216918321688b213e5da904d281886
- Owner: 0xA8c4AAE4ce759072D933bD4a51172257622eF128
- Moveflow Contract: 0x0B858B1C52e49DF07fd96b87CF5DA7838f170c04
- MFL Token Contract: 0xDE3a190D9D26A8271Ae9C27573c03094A8A2c449
- Owner: 0x159a59a77d1219724e88293f6e60e82fcbadd7f1a61789b723266006f0044851
- Owner: 0xA8c4AAE4ce759072D933bD4a51172257622eF128
- Contract: 0x7166bfDfC46Efdda2d2AfCa86D2b96c9b0c23fE1
- Owner: 0xdbf4ebd276c84e88f0a04a4b0d26241f654ad411c250afa3a888eb3f0011486a
- Owner: 0x569595234428B29F400a38B3E3DA09eBDBcCBC44
- Contract: 0x7F384B4a58df3e38CDF74727Cfbf9D22a65aCE1f
- Create cx chain MFL stream on aptos: 0xeb0825f29a545b5d531cf95a7e66356e55379186fbcd747f4f0927309e66bb4e
- Withdraw from bsc: 0xb40c1f7461080a647f4980240db5d4ad3b45573cdb1bb8c6d97e5a7b5767cbbb
- Withdraw on aptos: 0x0eff3af781bceae660bc33a314d7a692f5f89d859ba116b9e6b1afb5e0cd6ca6
- Receiver on bsc receives MFL: 0xe59080bab28ea2c013e4ad841e2460578d76139df014e2764a71b8c85b880c4e