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