Scrypt Boilerplate

Note: Modified to use @radiantblockchian/radjs for testnet/superAssetR100.js

sCrypt Project Boilerplate

Build Status

https://github.com/RadiantBlockchain-Community/scrypt-boilerplate

Prerequisites

Make sure you have the sCrypt IDE installed. sCrypt IDE is a tool for developers to write, test, deploy, call, and debug sCrypt smart contracts.

Guide

sCrypt is a high-level programming language for writing smart contracts on Bitcoin SV. This project provides examples to help developers learn and integrate sCrypt smart contracts to their Javascript-based projects. Our recommended procedure of developing smart contract based applications is as follows:

  1. Contract Development and Test

  2. Contract Integration and Application Launch

After developing and unit testing the smart contracts, the next step is to integrate them into your application which is written in other languages such as Javascript or Python. Integration tests should be run on Bitcoin SV Testnet or Scaling Test Network(STN) before launching the application to the public on mainnet.

Quickstart

npm install
npm test

Directory layout

For each contract x, a source file is at contracts/x.scrypt, a test file is at tests/js/x.scrypttest.js, and a deployment file is at testnet/x.js.

How to write test for an sCrypt contract

The major steps to write a sCrypt test are exemplified by tests/demo.scrypttest.js.

  1. Install and import / require scryptlib libary, which is a javascript SDK for integrating sCrypt smart contract.

  1. Use the imported function buildContractClass to get a reflected contract, which has same properties and methods as defined in the specified sCrypt contract.

Note that demo_desc.json is the description file name of the compiled contract, which will be generated automatically if you run npm run watch and its name follows the rule $contractName_desc.json.

  1. Initialize the contract.

  1. Write tests for the instantiated contract as you would do in Javascript.

How to run tests locally

Run using sCrypt IDE

Run unit tests file within the editor/explorer context menu.

Note: The test files must be suffixed by .scrypttest.js or .scrypttest.ts, otherwise the "Run sCrypt Test" option would not appear in the menu.

Run from console

Tests could also be run from the console by executing npm test, just like regular Javascript/TypeScript tests.

How to deploy a contract and interacte with it

Deploy by writing javascript/typescript code

  1. Provide a private key with funds in privateKey.js

  1. Deploy a contract and call its function by issuing

Output like the following will appear in the console. And you have successfully deployed a contract and called its function on Bitcoin. Sweet!

It is strongly recommended to test your contract on testnet first, before deploying it on mainnet. By default, deployment is on testnet. To switch to mainnet, simply modify API_PREFIX in helper.js.

Before deploying a contract, make sure the latest contract has been compiled to a description json file, which is what will get deployed. This could be done automatically by running a daemon process with command npm run watch. It will monitor a contract file's change and recompile it when necessary. All generated description files are located at testnet/fixture/autoGen. Make sure it's up to date with the contract before deployment.

Deploy by using sCrypt IDE deploy feature

IDE provides a universal UI interface. You can deploy the contract with one click by simply filling in the relevant parameters. You can call the public function of the contract with the click of a button without writing a line of code.

Last updated