|
|
|
#!/usr/bin/env node
|
|
|
|
|
|
|
|
const program = require('commander')
|
|
|
|
const version = require('../package.json').version
|
|
|
|
|
|
|
|
program
|
|
|
|
.command('version')
|
|
|
|
.description("outputs version number")
|
|
|
|
.action(() => {
|
|
|
|
console.log(version)
|
|
|
|
process.exit(0)
|
|
|
|
})
|
|
|
|
|
|
|
|
program
|
|
|
|
.command('help')
|
|
|
|
.description("outputs usage information")
|
|
|
|
.action(() => {
|
|
|
|
program.help()
|
|
|
|
process.exit(0)
|
|
|
|
})
|
|
|
|
|
|
|
|
program
|
|
|
|
.command('start')
|
|
|
|
.option('-p, --port [port]', 'specify port', 8545)
|
|
|
|
.option('-b, --ip [host]', 'specify host', '127.0.0.1')
|
|
|
|
.option('--rpc', 'run rpc server only', true)
|
|
|
|
.option('--details', 'display payloads for every requests and their responses', false)
|
|
|
|
.option('-c, --coinbase [coinbase]', 'specify coinbase', '0x0000000000000000000000000000000000000000')
|
|
|
|
.option('-f, --fork [fork]', 'specify fork name')
|
|
|
|
.option('-n, --nodeUrl [nodeUrl]', 'specify node url')
|
|
|
|
.option('-bn, --blockNumber [blockNumber]', 'specify block Number')
|
|
|
|
.option('-s, --stateDb [stateDb]', 'specify state database')
|
|
|
|
.option('-bs, --blocks [blocks]', 'specify blocks')
|
|
|
|
.action((option, env) => {
|
|
|
|
env.outputHelp()
|
|
|
|
console.log('\n')
|
|
|
|
console.log('Usage:')
|
|
|
|
console.log('remix-simulator start')
|
|
|
|
console.log('remix-simulator start -n <node url> -f cancun -bn latest')
|
|
|
|
console.log('\n')
|
|
|
|
console.log('Command line options:')
|
|
|
|
console.log('port: ', option.port)
|
|
|
|
console.log('host: ', option.ip)
|
|
|
|
console.log('rpc: ', option.rpc)
|
|
|
|
console.log('details: ', option.details)
|
|
|
|
console.log('\n')
|
|
|
|
console.log('Provider options:')
|
|
|
|
console.log('coinbase: ', option.coinbase)
|
|
|
|
console.log('fork: ', option.fork)
|
|
|
|
console.log('nodeUrl: ', option.nodeUrl)
|
|
|
|
console.log('blockNumber: ', option.blockNumber)
|
|
|
|
console.log('stateDb: ', option.stateDb)
|
|
|
|
console.log('blocks: ', option.blocks)
|
|
|
|
const { Server } = require('../src/server')
|
|
|
|
const server = new Server(option)
|
|
|
|
server.start(option)
|
|
|
|
})
|
|
|
|
|
|
|
|
program.parse(process.argv)
|
|
|
|
|