How to build eosio.contracts
Preconditions
Ensure an appropriate version of eosio.cdt
is installed. Installing eosio.cdt
from binaries is sufficient, follow the eosio.cdt
installation instructions steps to install it. To verify if you have eosio.cdt
installed and its version run the following command
eosio-cpp -v
Build contracts using the build script
To build contracts alone
Run the build.sh
script in the top directory to build all the contracts.
To build the contracts and unit tests
- Ensure an appropriate version of
eosio
has been built from source and installed. Installingeosio
from binariesis not
sufficient. You can find instructions on how to do it here in sectionBuilding from Sources
. - Run the
build.sh
script in the top directory with the-t
flag to build all the contracts and the unit tests for these contracts.
Build contracts manually
To build the eosio.contracts
execute the following commands.
On all platforms except macOS:
cd you_local_path_to/eosio.contracts/
rm -fr build
mkdir build
cd build
cmake ..
make -j$( nproc )
cd ..
For macOS:
cd you_local_path_to/eosio.contracts/
rm -fr build
mkdir build
cd build
cmake ..
make -j$(sysctl -n hw.ncpu)
cd ..
After build:
- If the build was configured to also build unit tests, the unit tests executable is placed in the build/tests folder and is named unit_test.
- The contracts (both
.wasm
and.abi
files) are built into their corresponding build/contracts/\<contract name> folder. - Finally, simply use cleos to set contract by pointing to the previously mentioned directory for the specific contract.
How to deploy the eosio.contracts
To deploy eosio.bios contract execute the following command:
Let's assume your account name to which you want to deploy the contract is testerbios
cleos set contract testerbios you_local_path_to/eosio.contracts/build/contracts/eosio.bios/ -p testerbios
To deploy eosio.msig contract execute the following command:
Let's assume your account name to which you want to deploy the contract is testermsig
cleos set contract testermsig you_local_path_to/eosio.contracts/build/contracts/eosio.msig/ -p testermsig
To deploy eosio.system contract execute the following command:
Let's assume your account name to which you want to deploy the contract is testersystem
cleos set contract testersystem you_local_path_to/eosio.contracts/build/contracts/eosio.system/ -p testersystem
To deploy eosio.token contract execute the following command:
Let's assume your account name to which you want to deploy the contract is testertoken
cleos set contract testertoken you_local_path_to/eosio.contracts/build/contracts/eosio.token/ -p testertoken
To deploy eosio.wrap contract execute the following command:
Let's assume your account name to which you want to deploy the contract is testerwrap
cleos set contract testerwrap you_local_path_to/eosio.contracts/build/contracts/eosio.wrap/ -p testerwrap