getAddresses test service for getting eth and bnc addresses by private key
This commit is contained in:
parent
fcfdce153c
commit
1793f6cf3b
|
@ -0,0 +1,11 @@
|
||||||
|
FROM node:10.16.0-alpine
|
||||||
|
|
||||||
|
WORKDIR /test
|
||||||
|
|
||||||
|
COPY package.json /test/
|
||||||
|
|
||||||
|
RUN npm install
|
||||||
|
|
||||||
|
COPY testGetAddresses.js /test/
|
||||||
|
|
||||||
|
ENTRYPOINT ["node", "testGetAddresses.js"]
|
|
@ -0,0 +1,8 @@
|
||||||
|
{
|
||||||
|
"name": "get-addresses",
|
||||||
|
"version": "0.0.1",
|
||||||
|
"dependencies": {
|
||||||
|
"ethers": "4.0.37",
|
||||||
|
"bech32": "1.1.3"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,9 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
cd $(dirname "$0")
|
||||||
|
|
||||||
|
docker build -t get-addresses . > /dev/null
|
||||||
|
|
||||||
|
docker run --rm get-addresses $@
|
|
@ -0,0 +1,25 @@
|
||||||
|
const { utils } = require('ethers')
|
||||||
|
const bech32 = require('bech32')
|
||||||
|
const crypto = require('crypto')
|
||||||
|
|
||||||
|
const privateKey = process.argv[2].startsWith('0x') ? process.argv[2] : '0x' + process.argv[2]
|
||||||
|
|
||||||
|
const ethAddress = utils.computeAddress(privateKey)
|
||||||
|
const publicKey = utils.computePublicKey(privateKey, true)
|
||||||
|
|
||||||
|
console.log(`Eth address: ${ethAddress}\nBnc address: ${publicKeyToAddress(publicKey)}`)
|
||||||
|
|
||||||
|
function publicKeyToAddress (publicKey) {
|
||||||
|
const sha256Hash = sha256(Buffer.from(publicKey.substr(2), 'hex'))
|
||||||
|
const hash = ripemd160(Buffer.from(sha256Hash, 'hex'))
|
||||||
|
const words = bech32.toWords(Buffer.from(hash, 'hex'))
|
||||||
|
return bech32.encode('tbnb', words)
|
||||||
|
}
|
||||||
|
|
||||||
|
function sha256 (bytes) {
|
||||||
|
return crypto.createHash('sha256').update(bytes).digest('hex')
|
||||||
|
}
|
||||||
|
|
||||||
|
function ripemd160 (bytes) {
|
||||||
|
return crypto.createHash('ripemd160').update(bytes).digest('hex')
|
||||||
|
}
|
Loading…
Reference in New Issue