Module: Bip44::Ethereum
- Included in:
- Wallet
- Defined in:
- lib/bip44/ethereum.rb
Instance Method Summary collapse
Instance Method Details
#ethereum_address ⇒ Object
18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
# File 'lib/bip44/ethereum.rb', line 18 def ethereum_address node = @wallet_node # from bitcoin public key to ethereum public key group = ECDSA::Group::Secp256k1 public_key = ECDSA::Format::PointOctetString.decode(node.public_key.to_bytes, group) # a point ethereum_public = public_key.x.to_s(16) + public_key.y.to_s(16) # from ethereum public key to ethereum address bytes = Bip44::Utils.hex_to_bin(ethereum_public) address_bytes = Digest::SHA3.new(256).digest(bytes)[-20..-1] address = Bip44::Utils.bin_to_hex(address_bytes) Bip44::Utils.prefix_hex(address) end |
#get_ethereum_address(path) ⇒ Object
3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
# File 'lib/bip44/ethereum.rb', line 3 def get_ethereum_address(path) node = @wallet_node.node_for_path(path) # from bitcoin public key to ethereum public key group = ECDSA::Group::Secp256k1 public_key = ECDSA::Format::PointOctetString.decode(node.public_key.to_bytes, group) # a point ethereum_public = public_key.x.to_s(16) + public_key.y.to_s(16) # from ethereum public key to ethereum address bytes = Bip44::Utils.hex_to_bin(ethereum_public) address_bytes = Digest::SHA3.new(256).digest(bytes)[-20..-1] address = Bip44::Utils.bin_to_hex(address_bytes) Bip44::Utils.prefix_hex(address) end |