The Innovationlab Developer Hub

Welcome to the Innovationlab developer hub. You'll find comprehensive guides and documentation to help you start working with Innovationlab as quickly as possible, as well as support if you get stuck. Let's jump right in!

Smart Contract Consistency Verification

This is a tool to help verify the consistency between the source code of a smart contract and its online runtimeCode.

Check it in GitHub


npm install --save vscc



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)



import { BlockChain, Utils, Vscc} from 'vscc'

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

async function testVscc() {

    if(!fs.existsSync(bins)) {

    const soljson424 = '0.4.24'
    const base64Code = Utils.encodeBase64('/*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('/*rpc endpoint*/', binPath)
        // return true or false 
        const re = await ins.verify(p)
        console.log('re: ', re)
    } catch (error) {

Download Compiler

If the target compiler does not exist, download it first.

import { download } from 'vscc'

try {
    await download(version, bins)
} catch (error) {


|   |--verify 
|   |--getCode
|   |--deployContractOfCall
|   |--accounts
|   |--getTransaction
|   |--download
|   |--getVersionList
|   |--decodeBase64
|   |--encodeBase64



  • GNU v3

Smart Contract Consistency Verification

Suggested Edits are limited on API Reference Pages

You can only suggest edits to Markdown body content, but not to the API spec.