class CardanoWallet::Shelley::Transactions
API for Transactions
@see input-output-hk.github.io/cardano-wallet/api/edge/#tag/Transactions
Public Instance Methods
Construct transaction @see input-output-hk.github.io/cardano-wallet/api/edge/#operation/constructTransaction @param wid [String] source wallet id @param payments [Array of Hashes] full payments payload with assets @param withdrawal [String or Array] 'self' or mnemonic sentence @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 delegations [Array of Hashes] delegations object @param validity_interval [Hash] validity_interval object
# File lib/cardano_wallet/shelley.rb, line 270 def construct(wid, payments = nil, withdrawal = nil, metadata = nil, delegations = nil, mint = nil, validity_interval = nil) payload = {} payload[:payments] = payments if payments payload[:withdrawal] = withdrawal if withdrawal payload[:metadata] = metadata if metadata payload[:mint] = mint if mint payload[:delegations] = delegations if delegations payload[:validity_interval] = validity_interval if validity_interval self.class.post("/wallets/#{wid}/transactions-construct", body: payload.to_json, headers: { 'Content-Type' => 'application/json' }) end
Create a transaction from the wallet @see input-output-hk.github.io/cardano-wallet/api/edge/#operation/postTransaction @param wid [String] source wallet id @param passphrase [String] source wallet's passphrase @param payments [Array of Hashes] address / amount list or full payments payload with assets @param withdrawal [String or Array] 'self' or mnemonic sentence @param metadata [Hash] special metadata JSON subset format (cf: input-output-hk.github.io/cardano-wallet/api/edge/#operation/postTransaction) @param ttl [Int] transaction's time-to-live in seconds
@example
create(wid, passphrase, [{addr1: 1000000}, {addr2: 1000000}], 'self', {"1": "abc"}, ttl = 10) create(wid, passphrase, [{ "address": "addr1..", "amount": { "quantity": 42000000, "unit": "lovelace" }, "assets": [{"policy_id": "pid", "asset_name": "name", "quantity": 0 } ] } ], 'self', {"1": "abc"}, ttl = 10)
# File lib/cardano_wallet/shelley.rb, line 337 def create(wid, passphrase, payments, withdrawal = nil, metadata = nil, ttl = nil) 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 payload = { payments: payments_formatted, passphrase: passphrase } payload[:withdrawal] = withdrawal if withdrawal payload[:metadata] = metadata if metadata payload[:time_to_live] = { quantity: ttl, unit: 'second' } if ttl self.class.post("/wallets/#{wid}/transactions", body: payload.to_json, headers: { 'Content-Type' => 'application/json' }) end
Forget a transaction @see input-output-hk.github.io/cardano-wallet/api/edge/#operation/deleteTransaction
# File lib/cardano_wallet/shelley.rb, line 385 def forget(wid, txid) self.class.delete("/wallets/#{wid}/transactions/#{txid}") end
Get tx by id @see input-output-hk.github.io/cardano-wallet/api/edge/#operation/getTransaction
# File lib/cardano_wallet/shelley.rb, line 308 def get(wid, tx_id) self.class.get("/wallets/#{wid}/transactions/#{tx_id}") end
List all wallet's transactions @see input-output-hk.github.io/cardano-wallet/api/edge/#operation/listTransactions
@example
list(wid, {start: "2012-09-25T10:15:00Z", order: "descending"})
# File lib/cardano_wallet/shelley.rb, line 317 def list(wid, query = {}) query_formatted = query.empty? ? '' : Utils.to_query(query) self.class.get("/wallets/#{wid}/transactions#{query_formatted}") end
Estimate fees for transaction @see input-output-hk.github.io/cardano-wallet/api/edge/#operation/postTransactionFee
@example
payment_fees(wid, [{addr1: 1000000}, {addr2: 1000000}], {"1": "abc"}, ttl = 10) payment_fees(wid, [{ "address": "addr1..", "amount": { "quantity": 42000000, "unit": "lovelace" }, "assets": [{"policy_id": "pid", "asset_name": "name", "quantity": 0 } ] } ], {"1": "abc"}, ttl = 10)
# File lib/cardano_wallet/shelley.rb, line 364 def payment_fees(wid, payments, withdrawal = nil, metadata = nil, ttl = nil) 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 payload = { payments: payments_formatted } payload[:withdrawal] = withdrawal if withdrawal payload[:metadata] = metadata if metadata payload[:time_to_live] = { quantity: ttl, unit: 'second' } if ttl self.class.post("/wallets/#{wid}/payment-fees", body: payload.to_json, headers: { 'Content-Type' => 'application/json' }) end
Sign transaction @see input-output-hk.github.io/cardano-wallet/api/edge/#operation/signTransaction @param wid [String] source wallet id @param passphrase [String] wallet's passphrase @param passphrase [String] CBOR transaction data
# File lib/cardano_wallet/shelley.rb, line 295 def sign(wid, passphrase, transaction) payload = { 'passphrase' => passphrase, 'transaction' => transaction } self.class.post("/wallets/#{wid}/transactions-sign", body: payload.to_json, headers: { 'Content-Type' => 'application/json' }) end