Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/gear-sv/gear-contracts
compile, test, deploy cpp code to bitcoin
https://github.com/gear-sv/gear-contracts
cpp emscripten npm
Last synced: 3 months ago
JSON representation
compile, test, deploy cpp code to bitcoin
- Host: GitHub
- URL: https://github.com/gear-sv/gear-contracts
- Owner: gear-sv
- License: other
- Created: 2019-06-21T01:41:04.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2023-01-07T09:40:15.000Z (about 2 years ago)
- Last Synced: 2024-04-25T14:43:03.553Z (10 months ago)
- Topics: cpp, emscripten, npm
- Language: JavaScript
- Homepage:
- Size: 17.9 MB
- Stars: 5
- Watchers: 2
- Forks: 1
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# gear-contracts
Example test, compile, deploy harness for BSV powered c++ contracts.
![deLorean Time Machine](delorean.jpg)
___### Install [Emscripten](https://emscripten.org/docs/)
MacOS Installation Instructions:
1. `brew install emscripten`
```
Installs to /usr/local/Cellar/emscripten/[version].Generates default config file at `~/.emscripten`.
```2. 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.
```### Install gear-contracts
`npm i gear-contracts -g`
___### Create Project
`gear-contracts init [project_name]````
Generates a minimal contract harness.contracts
FungibleToken.h
FungibleToken.cpp
NamingService.h
NamingService.cpp
NonFungibleToken.h
NonFungibleToken.cpptests
FungibleToken.test.js
NamingService.test.js
NonFungibleToken.test.jsoutput
[compiled emscripten modules]
[compiled wasm binaries]
[gzip contract package tar]
```
### Create account
1. `gear-contracts keys`
```
Creates key pair.
Saves privateKey, publicKey, and address to key.json.
Generates QR code image of address to address.png.
```
2. 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.### Compile
`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.
```### Package
`gear-contracts package [contract_name]````
Packages and gzips contract files to out/[contract_name].tar.gz
```### Test
`gear-contracts test [contract_name]`### Deploy
`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]
```