Example test, compile, deploy harness for BSV powered c++ contracts.
Install Emscripten
MacOS Installation Instructions:
brew install emscripten
Installs to /usr/local/Cellar/emscripten/[version].
Generates default config file at `~/.emscripten`.
- Follow configuration steps by updating your
~/.emscripten
file accordingly.
Manually set LLVM_ROOT to
/usr/local/opt/emscripten/libexec/llvm/bin
and comment out BINARYEN_ROOT
in ~/.emscripten after running `emcc` for the first time.
npm i gear-contracts -g
gear-contracts init [project_name]
Generates a minimal contract harness.
contracts
FungibleToken.h
FungibleToken.cpp
NamingService.h
NamingService.cpp
NonFungibleToken.h
NonFungibleToken.cpp
tests
FungibleToken.test.js
NamingService.test.js
NonFungibleToken.test.js
output
[compiled emscripten modules]
[compiled wasm binaries]
[gzip contract package tar]
gear-contracts keys
Creates key pair.
Saves privateKey, publicKey, and address to key.json.
Generates QR code image of address to address.png.
- Fund account by sending some bsv to the generated address in
key.json
. You can easily scan the QR code and send payment with HandCash.
gear-contracts compile [contract_name]
Compiles c++ code to wasm bytecode to out/[contract_name].out.wasm.
Generates javascript module interface to out/[contract_name].out.js.
gear-contracts package [contract_name]
Packages and gzips contract files to out/[contract_name].tar.gz
gear-contracts test [contract_name]
gear-contracts deploy [contract_name]
Packages contract files (.wasm) (.cpp) (.js) (.json).
Formats gearsv contract deploy call.
Broadcasts transaction.
Check for the deployment transaction at https://whatsonchain.com/address/[address]