Smart Contract Steps

Smart contract commands

Unbox LiquidX box

We will unbox the liquidx box to give us all of the logic, contracts, and unit tests

mkir liquidx; cd liquidx
zeus unbox liquidx

Create Contract

Create smart contract, or if you're using thise guide as a part of another guide, you can skip this and go to the compiling section

export MY_CONTRACT_NAME=
zeus create contract $MY_CONTRACT_NAME
cd zeus_boxes/contracts/eos
# edit MY_CONTRACT_NAME.cpp
cd ../../../

Smart Contract Steps

#define LIQUIDX

At the smart contract level, the liquidx box must be unboxed and #define LIQUIDX must be added at the top of the smart contract which uses the DAPP Network services.

circle-info

If you are already using an existing contract such as tokenpegx then this is already handled for you

Adding files to Zeus

2 files must be added and 2 files deleted as to not conflict

liquidx-mappings/sidechain_name.dappservices.json

circle-exclamation

/zeus_boxes/liquidx/models/liquidx-mappings/sidechain_name.dappservices.json - this maps the dappservices account on the mainnet to the dappservicex account name on the new chain

  • sidechain_name - EOS mainnet account that has registered the chain

  • mainnet_account - dappservices account on EOS mainnet

  • chain_account - dappservicex account on new chain - enter the sidechain_name as the scope for the chainentryarrow-up-right table, the dappservices_contract key will list the account name needed

circle-info

chain_account for jungle3 is testdappxxxxarrow-up-right

eosio-chains/${CHAIN_ACCOUNT}.json

/zeus_boxes/liquidx/models/eosio-chains/${CHAIN_ACCOUNT}.json - this maps the chain’s configuration details

  • dsp_port - port DSP gateway runs on

  • webhook_dapp_port - webhook port

  • nodeos_host - nodeos host address

  • nodeos_port - nodeos port

  • secured - bool true/false for http/https for the nodeos address

  • nodeos_state_history_port - port for nodeos state history websocket

  • nodeos_p2p_port - nodeos peer 2 peer port

  • nodeos_endpoint - full nodeos endpoint

  • demux_port - demux port

  • name - name of the chain account

  • local - bool whether chain is local or not

Remove files:

Removing the following if they exist:

Compile Contract Again with new files

circle-info

Jungle3 sidechain name: liquidjungl3arrow-up-right

In order for the compiler to know which network the contract intends to be deployed on the --sidechain flag must be passed to zeus compile --sidechain $SIDE_CHAIN_NAME.

circle-info

Ensure that you add @eosio.code to the active permission level of the account. This can be done with the --add-code flag on the cleos set account permission command.

circle-info

The side chain name is the account on the EOS mainnet that has registered the chain. You may find what this contract is by asking a DSP, a BP, or the chain team itself.

dappservices config file

Now let's see why we did all of that, in the ./contracts/eos/dappservices/dappservices.config.hpp we see:

circle-exclamation

Set Contract

Last updated

Was this helpful?