class Eth::RpcSigner
Attributes
key[RW]
Public Class Methods
new(key)
click to toggle source
# File lib/eth/rpc_signer.rb, line 7 def initialize(key) @key = key end
Public Instance Methods
sign_message(message)
click to toggle source
# File lib/eth/rpc_signer.rb, line 11 def sign_message(message) payload = Eth::Signature.new(message) payload.prefixed_message = Eth::Utils.prefix_message(message) payload.hash = Eth::Utils.keccak256(payload.prefixed_message) payload.hash_hex = Eth::Utils.bin_to_prefixed_hex(payload.hash) payload.signature = @key.sign(payload.prefixed_message) payload.signature_hex = Eth::Utils.bin_to_prefixed_hex(payload.signature) payload.v, payload.r, payload.s = Eth::Utils.v_r_s_for(payload.signature) payload.rpc = Eth::Utils.zpad_int(payload.r, 32) + Eth::Utils.zpad_int(payload.s, 32) + [(payload.v - 27)].pack('C') payload.rpc_hex = Eth::Utils.bin_to_prefixed_hex(payload.rpc) return payload end