class NearApi::Key

Attributes

key_pair[R]
public_key[R]
signer_id[R]

Public Class Methods

new(signer_id = ENV.fetch('NEAR_SIGNER_ID'), key_pair: ENV.fetch('NEAR_KEYPAIR', nil), public_key: ENV.fetch('NEAR_PUBLIC_KEY', nil)) click to toggle source
# File lib/near_api/key.rb, line 8
def initialize(signer_id = ENV.fetch('NEAR_SIGNER_ID'),
               key_pair: ENV.fetch('NEAR_KEYPAIR', nil),
               public_key: ENV.fetch('NEAR_PUBLIC_KEY', nil))
  @signer_id = signer_id
  if (!key_pair.nil? && !public_key.nil?) || (key_pair.nil? && public_key.nil?)
    raise ArgumentError, 'please specify one of: key_pair or public_key'
  end

  unless key_pair.nil?
    key_value = if key_pair.include?(':')
                  key_pair.split(':').last
                else
                  key_pair
                end
    bytestring = NearApi::Base58.decode(key_value)
    @key_pair = Ed25519::SigningKey.from_keypair(bytestring)
    @public_key = @key_pair.verify_key.to_bytes
  end

  unless public_key.nil?
    key_value = if public_key.include?(':')
                  public_key.split(':').last
                else
                  public_key
                end
    bytestring = NearApi::Base58.decode(key_value)
    @public_key = Ed25519::VerifyKey.new(bytestring).to_bytes
  end
end

Public Instance Methods

key_type() click to toggle source
# File lib/near_api/key.rb, line 38
def key_type
  0
end
sign(msg) click to toggle source
# File lib/near_api/key.rb, line 42
def sign(msg)
  key_pair.sign(msg)
end