1.0.6 • Published 5 years ago

seele-contract-core v1.0.6

Weekly downloads
2
License
ISC
Repository
github
Last release
5 years ago

Description

This command line tool greatly simplifies the compiling and deploying process of multiple seele solidity contracts.

Installation

# as command line tool
npm i -g seele-contract-core

# as module
npm i seele-contract-core

Usage

# initiate contract
scc init -n mycontract
# creates the following tree
# .
# ├── abi
# ├── byt.json
# ├── conf.json
# ├── deploy.json
# └── src
#
#
# 2 directories, 3 files
# copy your solidity source code files to ./src
# toggle configurations in conf.json

# only compile
scc make -c -n mycontract
# only deploy
scc make -d -n mycontract
# compile and deploy
scc make -cd -n mycontract

Or in code

const path = require('path')
const scc = require('seele-contract-core')

async function sccexample(){
  const root    = await process.cwd()
  const dirname = 'yourContract'
  const project = '.contract'
  scc.init(root, dirname, project)

  const dir = path.join(root, dirname, project)
  const contract = scc.ContractBase(dir)

  // contract.compile()

  // contract.deploy()

  // compile and deploy
  new Promise((resolve, reject)=>{
    resolve('');
  })
  .then((d)=>{
    return contract.compile();
  })
  .then((d)=>{
    return contract.deploy();
  })
  .catch((e)=>{
    console.log(e);
  });
}

API

In your conf.json

  • compiler
    • version: currently only v0.4.24 is made available
  • shard: seele currently has four shards, the network used will be determined through the shard of transactions.privateKey and transactions.fromAddress pair.
  • transactions
    • limit: gas limit of each transaction.
    • depth: wait for how many blocks after transaction packaged.
    • privateKey: private key used for signing transactions.
    • fromAddress: address of signature private key.
  • addressBook:
    • To skip certain contract deployment. Ex: if I've already deployed "SafeMath.sol" at "0xce8b79448f41224413b6e13f5ae624b901070022"
      "addressBook": {
        "SafeMath.sol": "0xce8b79448f41224413b6e13f5ae624b901070022",
      },
    Instead of deploying the contract with another transaction, the contract address will be reused in the next iteration of deployment.
  • constructors:
    • If a contract happen to have a constructor to be a payable contract, the structure to use would be the following
      "myContract.sol": [
        [
          "address[]",
          "uint256"
        ], //abi
        [
          [
            "0x627306090abab3a6e1400e9345bc60c78a8bef57",
            "0x4b0897b0513fdc7c541b6d9d7e929c4e5364d2db"
          ],
          "0x416e6e6965",
        ], //value
        1000 //payable amount, 1000 fan
      ]
1.0.6

5 years ago

1.0.5

5 years ago

1.0.4

5 years ago

1.0.3

5 years ago

1.0.2

5 years ago

1.0.1

5 years ago

1.0.0

5 years ago