UNPKG

ethereum-checksum-address

Version:
71 lines (59 loc) 1.51 kB
const meow = require('meow') const { toChecksumAddress, checkAddressChecksum } = require('.') const cli = meow(` Usage $ ethereum_address_checksum <address> [flags] Options --check, -r Check if address is a checksummed address Examples $ ethereum_address_checksum 0x90f8bf6a479f320ead074411a4b0e7944ea8c9c1 0x90F8bf6A479f320ead074411a4B0e7944Ea8c9C1 $ ethereum_address_checksum 0x90F8bf6A479f320ead074411a4B0e7944Ea8c9C1 --check true `, { flags: { check: { type: 'boolean' }, chain: { type: 'string' } } }) if (process.stdin) { process.stdin.setEncoding('utf8') process.stdin.resume() let content = '' process.stdin.on('data', (buf) => { content += buf.toString() }) setTimeout(() => { content = content.trim() let address = (content || '0') const check = cli.flags.check const chainId = cli.flags.chain if (!content) { address = cli.input[0] } run(address, check, chainId) }, 10) } else { const address = cli.input[0] const check = cli.flags.check const chainId = cli.flags.chain run(address, check, chainId) } function run(address, check, chainId) { if (!address) { console.log('address argument is required') process.exit(1) } if (check) { const valid = checkAddressChecksum(address, chainId) console.log(valid) process.exit(valid ? 0 : 1) } else { console.log(toChecksumAddress(address, chainId)) process.exit(0) } }