class NearApi::Transaction

Attributes

actions[R]
api[R]
config[R]
key[R]
receiver_id[R]

Public Class Methods

async(*args) click to toggle source
# File lib/near_api/transaction.rb, line 18
def self.async(*args)
  new(*args).async
end
call(*args) click to toggle source
# File lib/near_api/transaction.rb, line 14
def self.call(*args)
  new(*args).call
end
new(receiver_id, actions, config: NearApi.config, key: NearApi.key) click to toggle source
# File lib/near_api/transaction.rb, line 22
def initialize(receiver_id, actions, config: NearApi.config, key: NearApi.key)
  @key = key
  @receiver_id = receiver_id
  @actions = Array(actions)
  @config = config
  @api = NearApi::Api.new(config)
end

Public Instance Methods

async() click to toggle source
# File lib/near_api/transaction.rb, line 35
def async
  signature = key.sign(message.digest)
  call_api('broadcast_tx_async', message.message, signature)
end
call() click to toggle source
# File lib/near_api/transaction.rb, line 30
def call
  signature = key.sign(message.digest)
  call_api('broadcast_tx_commit', message.message, signature)
end
call_api(method, message, signature) click to toggle source
# File lib/near_api/transaction.rb, line 51
def call_api(method, message, signature)
  signed_transaction = message + Borsh::Integer.new(key.key_type, :u8).to_borsh + signature
  api.json_rpc(method, [Base64.strict_encode64(signed_transaction)])
end
message() click to toggle source
# File lib/near_api/transaction.rb, line 40
def message
  @message ||= begin
    message = to_borsh
    Struct.new(:message, :digest).new(message, Digest::SHA256.digest(message))
  end
end
transaction_hash() click to toggle source
# File lib/near_api/transaction.rb, line 47
def transaction_hash
  NearApi::Base58.encode(message.digest)
end

Private Instance Methods

block_hash() click to toggle source
# File lib/near_api/transaction.rb, line 66
def block_hash
  api.block_hash
end
nonce() click to toggle source
# File lib/near_api/transaction.rb, line 62
def nonce
  api.nonce(key) + 1
end
signer_id() click to toggle source
# File lib/near_api/transaction.rb, line 58
def signer_id
  key.signer_id
end