Consistency Verification of Smart Contracts
Verify the consistency between the source code of a smart contract and its online runtimeCode
.
Install
npm install --save vscc
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
Verify
const fs = const path = const binPath = path { if!fs fs const soljson424 = '0.4.24' const base64Code = Utils 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 = '/*rpc endpoint*/' binPath // return true or false const re = await ins console catch error console }
Download Compiler
If the target compiler does not exist, download it first.
try await catch error console
Methods
|--Vscc
| |--verify
|--BlockChain
| |--getCode
| |--deployContractOfCall
| |--accounts
| |--getTransaction
|--DownloadCompiler
| |--download
| |--getVersionList
|--Util
| |--decodeBase64
| |--encodeBase64
References
License
- GNU v3