#!/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 -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)