Class: Pochette::BaseTransactionBuilder
- Inherits:
-
Object
- Object
- Pochette::BaseTransactionBuilder
- Includes:
- Contracts::Core
- Defined in:
- lib/pochette/base_transaction_builder.rb
Overview
Builds transactions from a list of source addresses and a list of recipients. Uses Pochette.backend to fetch unspent outputs and related transaction data. Instantiating will perform all the given queries, you’ll be left with a TransactionBuilder object that is either valid? or not, and if valid you can query the results via to_hash.
Direct Known Subclasses
BaseTrezorTransactionBuilder, BchTransactionBuilder, BtcTransactionBuilder
Instance Attribute Summary collapse
-
#errors ⇒ Object
readonly
Returns the value of attribute errors.
Class Method Summary collapse
Instance Method Summary collapse
- #as_hash ⇒ Object
-
#initialize(options) ⇒ BaseTransactionBuilder
constructor
A new instance of BaseTransactionBuilder.
- #valid? ⇒ Boolean
Constructor Details
#initialize(options) ⇒ BaseTransactionBuilder
Returns a new instance of BaseTransactionBuilder.
29 30 31 32 33 34 35 36 37 38 |
# File 'lib/pochette/base_transaction_builder.rb', line 29 def initialize() self.backend = [:backend] if [:backend] () initialize_fee initialize_outputs return unless valid? select_utxos add_change_output validate_final_amounts end |
Instance Attribute Details
#errors ⇒ Object
Returns the value of attribute errors.
63 64 65 |
# File 'lib/pochette/base_transaction_builder.rb', line 63 def errors @errors end |
Class Method Details
.backend ⇒ Object
11 12 13 |
# File 'lib/pochette/base_transaction_builder.rb', line 11 def self.backend raise NotImplementedError end |
Instance Method Details
#as_hash ⇒ Object
48 49 50 51 52 53 54 55 56 57 |
# File 'lib/pochette/base_transaction_builder.rb', line 48 def as_hash return nil unless valid? { input_total: inputs_amount.to_i, output_total: outputs_amount.to_i, fee: (inputs_amount - outputs_amount).to_i, inputs: inputs, outputs: outputs, utxos_to_blacklist: inputs.collect{|i| [i[1], i[2]] }, } end |
#valid? ⇒ Boolean
59 60 61 |
# File 'lib/pochette/base_transaction_builder.rb', line 59 def valid? errors.size == 0 end |