class CardanoWallet::Byron::Transactions

Byron transactions @see input-output-hk.github.io/cardano-wallet/api/edge/#operation/postByronTransactionFee

Public Instance Methods

construct(wid, payments = nil, metadata = nil, mint = nil, validity_interval = nil) click to toggle source

Construct transaction @see input-output-hk.github.io/cardano-wallet/api/edge/#operation/constructByronTransaction @param wid [String] source wallet id @param payments [Array of Hashes] full payments payload with assets @param metadata [Hash] special metadata JSON subset format (cf: input-output-hk.github.io/cardano-wallet/api/edge/#operation/postTransaction) @param mint [Array of Hashes] mint object @param validity_interval [Hash] validity_interval object

# File lib/cardano_wallet/byron.rb, line 220
def construct(wid, payments = nil, metadata = nil, mint = nil, validity_interval = nil)
  payload = {}
  payload[:payments] = payments if payments
  payload[:metadata] = metadata if metadata
  payload[:mint] = mint if mint
  payload[:validity_interval] = validity_interval if validity_interval

  self.class.post("/byron-wallets/#{wid}/transactions-construct",
                  body: payload.to_json,
                  headers: { 'Content-Type' => 'application/json' })
end
create(wid, passphrase, payments) click to toggle source

Create a transaction from the Byron wallet. @see input-output-hk.github.io/cardano-wallet/api/edge/#operation/postByronTransaction @param wid [String] source wallet id @param passphrase [String] source wallet's passphrase @param payments [Array of Hashes] addres, amount pair

@example

create(wid, passphrase, [{addr1: 1000000}, {addr2: 1000000}])
create(wid, passphrase, [{ "address": "addr1..",
                           "amount": { "quantity": 42000000, "unit": "lovelace" },
                           "assets": [{"policy_id": "pid", "asset_name": "name", "quantity": 0 } ] } ])
# File lib/cardano_wallet/byron.rb, line 276
def create(wid, passphrase, payments)
  Utils.verify_param_is_array!(payments)
  payments_formatted = if payments.any? { |p| p.key?(:address) || p.key?('address') }
                         payments
                       else
                         Utils.format_payments(payments)
                       end
  self.class.post("/byron-wallets/#{wid}/transactions",
                  body: { payments: payments_formatted,
                          passphrase: passphrase }.to_json,
                  headers: { 'Content-Type' => 'application/json' })
end
forget(wid, txid) click to toggle source

Forget a transaction. @see input-output-hk.github.io/cardano-wallet/api/edge/#operation/deleteByronTransaction

# File lib/cardano_wallet/byron.rb, line 311
def forget(wid, txid)
  self.class.delete("/byron-wallets/#{wid}/transactions/#{txid}")
end
get(wid, tx_id) click to toggle source

Get tx by id @see input-output-hk.github.io/cardano-wallet/api/edge/#operation/getByronTransaction

# File lib/cardano_wallet/byron.rb, line 250
def get(wid, tx_id)
  self.class.get("/byron-wallets/#{wid}/transactions/#{tx_id}")
end
list(wid, query = {}) click to toggle source

List all Byron wallet's transactions. @see input-output-hk.github.io/cardano-wallet/api/edge/#operation/listByronTransactions

@example

list(wid, {start: "2012-09-25T10:15:00Z", order: "descending"})
# File lib/cardano_wallet/byron.rb, line 259
def list(wid, query = {})
  query_formatted = query.empty? ? '' : Utils.to_query(query)
  self.class.get("/byron-wallets/#{wid}/transactions#{query_formatted}")
end
payment_fees(wid, payments) click to toggle source

Estimate fees for transaction @see input-output-hk.github.io/cardano-wallet/api/edge/#operation/postTransactionFee

@example

payment_fees(wid, [{addr1: 1000000}, {addr2: 1000000}])
payment_fees(wid, [{ "address": "addr1..",
                     "amount": { "quantity": 42000000, "unit": "lovelace" },
                     "assets": [{"policy_id": "pid", "asset_name": "name", "quantity": 0 } ] } ])
# File lib/cardano_wallet/byron.rb, line 297
def payment_fees(wid, payments)
  Utils.verify_param_is_array!(payments)
  payments_formatted = if payments.any? { |p| p.key?(:address) || p.key?('address') }
                         payments
                       else
                         Utils.format_payments(payments)
                       end
  self.class.post("/byron-wallets/#{wid}/payment-fees",
                  body: { payments: payments_formatted }.to_json,
                  headers: { 'Content-Type' => 'application/json' })
end
sign(wid, passphrase, transaction) click to toggle source

Sign transaction @see input-output-hk.github.io/cardano-wallet/api/edge/#operation/signByronTransaction @param wid [String] source wallet id @param passphrase [String] wallet's passphrase @param passphrase [String] CBOR transaction data

# File lib/cardano_wallet/byron.rb, line 237
def sign(wid, passphrase, transaction)
  payload = {
    'passphrase' => passphrase,
    'transaction' => transaction
  }

  self.class.post("/byron-wallets/#{wid}/transactions-sign",
                  body: payload.to_json,
                  headers: { 'Content-Type' => 'application/json' })
end