0.1.1 • Published 5 years ago

vscc-demo v0.1.1

Weekly downloads
5
License
-
Repository
github
Last release
5 years ago

Consistency Verification of Smart Contracts

Verify the consistency between the source code of a smart contract and its online runtimeCode.

Usage

Interface

interface IVerifyContract {
    sourceCode: string,              // base64 of contract source code
    isOptimizer?: boolean,           // whether optimizer                       (default: false)
    contractAddress: string,         // contract address
    solcVersion?: string,            // compiler version                        (default: solc version)
    params?: string,                 // contract constructor params encode abi  (default: '')
    contractName: string,            // contract name for compile
    txId: string,                    // txid of deployed contract
    runs?: string,                   // compiler runs                           (default 200)
}

Example

const vscc = require('vscc-demo')
const fs = require('fs')
const path = require('path')
const binPath = path.join(__dirname, './bins')

async function testVscc() {

    if(!fs.existsSync(bins)) {
        fs.mkdirSync(bins)
    }

    const soljson424 = '0.4.24'
    const base64Code = '/*source code*/'
    const c_addr = '/*contract address*/'
    const txId = '/*txid*/'
    const runs = '200'
    const p = {
        sourceCode: base64Code,
        isOptimizer: false,
        contractAddress: c_addr,
        solcVersion: soljson424,
        contractName: '/*contract name*/',
        txId: txId,
        runs: runs
    }

    try {
        const ins = new vscc.Vscc('/*rpc endpoint*/', binPath)
        // return true or false 
        const re = await ins.verify(p)
        console.log('re: ', re)
    } catch (error) {
        console.log(error)
    }
}

References

License

  • GNU v3