Sha256: d945c9f5686766d4a53841acf779044f4f3d314e507f3b80e367b2857b0bed2f

Contents?: true

Size: 1.01 KB

Versions: 7

Compression:

Stored size: 1.01 KB

Contents

module Graphdb
  module Model
    module Extensions
      module OpenAssets

        module Transaction

          def self.prepended(base)
            class << base
              self.prepend(ClassMethods)
            end
          end

          module ClassMethods

            def create_from_txid(txid)
              tx = super(txid)
              tx.apply_oa_outputs
              tx.save!
              tx
            end

          end

          # Check this tx contains open assets transaction
          def openassets_tx?
            outputs.each do |o|
              return true unless o.asset_id.nil?
            end
            false
          end

          def apply_oa_outputs
            oa_outputs = Bitcoin2Graphdb::Bitcoin.provider.oa_outputs(txid)
            graph_outputs = outputs.to_a
            oa_outputs.each{|o|
              output = graph_outputs.find{|graph_out|graph_out.n == o['vout']}
              output.apply_oa_attributes(o)
            }
          end

        end

      end
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
bitcoin2graphdb-0.4.0 lib/graphdb/model/extensions/open_assets/transaction.rb
bitcoin2graphdb-0.3.9 lib/graphdb/model/extensions/open_assets/transaction.rb
bitcoin2graphdb-0.3.8 lib/graphdb/model/extensions/open_assets/transaction.rb
bitcoin2graphdb-0.3.7 lib/graphdb/model/extensions/open_assets/transaction.rb
bitcoin2graphdb-0.3.6 lib/graphdb/model/extensions/open_assets/transaction.rb
bitcoin2graphdb-0.3.5 lib/graphdb/model/extensions/open_assets/transaction.rb
bitcoin2graphdb-0.3.4 lib/graphdb/model/extensions/open_assets/transaction.rb