The following file is for the destination's chain information.
# remove existing JSON file to not confuse the compilerrm-rf./zeus_boxes/liquidx/models/eosio-chains/mkdir./zeus_boxes/liquidx/models/eosio-chains/touch./zeus_boxes/liquidx/models/eosio-chains/liquidjungl3.jsonvim./zeus_boxes/liquidx/models/eosio-chains/liquidjungl3.json
Examine ./contracts/eos/dappservices/dappservices.config.hpp and you will see the mapping field populate into c++ definitions, if you see TEST1, you need to delete the existing mapping files
For Kylin, we'll set the issuer to the token contract, this is to simulate a pre-existing token that is being bridged to Jungle3.
Only Jungle3 we will set the issuer to the bridge contract so that it can issue tokens when they come across the bridge. We will also issue those tokens to the
export MAX_SUPPLY="1000000.0000 TKN"export ISSUER=$JUNGLE_BRIDGE_ACCOUNT # bridge contract so it can issue/burncleos -u $JUNGLE_ENDPOINT push action $JUNGLE_TOKEN_ACCOUNT create "[\"$ISSUER\",\"$MAX_SUPPLY\"]" -p $JUNGLE_TOKEN_ACCOUNT@active
If you get errors such as Transaction exceeded the current network usage limit imposed on the transaction, see the Kylin / Jungle account setup guides to get more tokens and to stake for more resources.
Issue test tokens
We will issue some test tokens to our test account.
Now we will transfer the issued tokens to the test account.
export FROM=$KYLIN_TOKEN_ACCOUNTexport TO=$KYLIN_TEST_ACCOUNTexport QUANTITY="10.0000 TKN"export MEMO="don't spend it all in one place!"cleos -u $KYLIN_ENDPOINT push action $KYLIN_TOKEN_ACCOUNT transfer "[\"$FROM\",\"$TO\",\"$QUANTITY\",\"$MEMO\"]" -p $KYLIN_TOKEN_ACCOUNT@active
Stake for services
Now that we've prepared that part let's move onto staking DAPP for services. First stop is the faucet for some DAPP tokens here. Use the account that has the tokenpeg contract set to it.
Stake to required services vRAM, LiquidHarmony Oracles, and LiquidScheduler
Below we'll select each package then stake for it.
Here we will initialize both bridges with their settings. On Kylin we will not allow issuance because the token already exists. On Jungle we allow the bridge contract to issue tokens to mint/burn. We set the minimum transfer to 1 TKN.
Now we will test with a transfer from the Kylin example user to the Kylin bridge contract, let's see how it goes!!
export FROM=$KYLIN_TEST_ACCOUNTexport TO=$KYLIN_BRIDGE_ACCOUNTexport QUANTITY="10.0000 TKN"# destionation_account,destination_chain# this is required as the memo type, it tells the bridge which chain the funds go to and who gets themexport MEMO="$JUNGLE_TEST_ACCOUNT,liquidjungl3"cleos -u $KYLIN_ENDPOINT push action $KYLIN_TOKEN_ACCOUNT transfer "[\"$FROM\",\"$TO\",\"$QUANTITY\",\"$MEMO\"]" -p $KYLIN_TEST_ACCOUNT@active
Confirm
If all goes well you will see the tokens arrive at your Jungle destination account, you can send them back to the bridge contract now to send them back!
export FROM=$JUNGLE_TEST_ACCOUNTexport TO=$JUNGLE_BRIDGE_ACCOUNTexport QUANTITY="10.0000 TKN"# destionation_account,destination_chain# this is required as the memo type, it tells the bridge which chain the funds go to and who gets themexport MEMO="$KYLIN_TEST_ACCOUNT,kylin"cleos -u $JUNGLE_ENDPOINT push action $JUNGLE_TOKEN_ACCOUNT transfer "[\"$FROM\",\"$TO\",\"$QUANTITY\",\"$MEMO\"]" -p $JUNGLE_TEST_ACCOUNT@active
Note that the memo destination chain is now kylin and no longer liquidjungl3 because we are sending the tokens to kylin.
If the transfers are not going through, ensure that the DSP you are using has enough CPU/NET staked for it