├── .gitignore ├── .rspec ├── .ruby-gemset ├── .ruby-version ├── .travis.yml ├── CODE_OF_CONDUCT.md ├── Gemfile ├── LICENSE ├── README.md ├── Rakefile ├── bin ├── console └── setup ├── exe └── openassets ├── lib ├── openassets.rb └── openassets │ ├── api.rb │ ├── cache.rb │ ├── cache │ ├── output_cache.rb │ ├── sqlite_base.rb │ ├── ssl_certificate_cache.rb │ └── transaction_cache.rb │ ├── error.rb │ ├── medhod_filter.rb │ ├── protocol.rb │ ├── protocol │ ├── asset_definition.rb │ ├── asset_definition_loader.rb │ ├── http_asset_definition_loader.rb │ ├── marker_output.rb │ ├── output_type.rb │ └── transaction_output.rb │ ├── provider.rb │ ├── provider │ ├── api_error.rb │ ├── bitcoin_core_provider.rb │ └── block_chain_provider_base.rb │ ├── send_asset_param.rb │ ├── send_bitcoin_param.rb │ ├── transaction.rb │ ├── transaction │ ├── dust_output_error.rb │ ├── insufficient_asset_quantity_error.rb │ ├── insufficient_funds_error.rb │ ├── out_point.rb │ ├── spendable_output.rb │ ├── transaction_build_error.rb │ ├── transaction_builder.rb │ └── transfer_parameters.rb │ ├── util.rb │ └── version.rb ├── openassets-ruby.gemspec └── spec ├── fixtures ├── help-result-0.16.0.txt ├── help-result-0.18.0.txt └── tx │ ├── 08f36e44ac44b301dae9db829def3f5c28c0010881e51f1989c2d8e6c8d17564.json │ ├── 0c02993e80062535fda3d433b1e621d7553ce105a9a03aa70b39098ac1aaf4da.json │ ├── 1206e4a462902b865b827e4e1638f4aa5d16723b26536f05507e4db17ca6f554.json │ ├── 19681a1596891ccb519056a7246bc3d3c3c02577e38df9539c99add7c0ae218e.json │ ├── 21b093ec41244898a50e1f97cb80fd98d7714c7235e0a4a30d7d0c6fb6a6ce8a.json │ ├── 2d1eb76559eaba959250bd264583714b835b7190ff2c7eba322e659cb842c422.json │ ├── 2ef6aaf051229ff755a137a51466b54da6d8c87d17130bca8a879e9e64172ebd.json │ ├── 308ea73b45bef1428acb41f996543d6ebd534dca8f5de965e7f00eae084aaa5c.json │ ├── 370c210cffdff21b0e59560f11308faabb985357bc57778ebb11ddbfb0d2b7ba.json │ ├── 3fba8bfb157ae29c293d5bd65c178fec169a87f880e2e62537fcce26612a6aa3.json │ ├── 43a3852b2cf2cef30720933c834edfabdb05cdd73a11583fd0d2f02cff8ad8d6.json │ ├── 44bf414521d4a0deb60dada4ac0bd9823286d8269cb9c074add3a6844bfa42df.json │ ├── 45aab69abf0ed2d856f4405b0e5e676cd9381faf07e1ec766ef7884c32142b09.json │ ├── 4cf37617ed99b246724067991346c31734f4147288d963a485c81f25b3572a89.json │ ├── 4d2a27293ec0b268c0f21952a9c4760dac3b8999bffcbc59a2126d06344a26e2.json │ ├── 5004b6e4108ff2e39112e7b9fa596f225086373d33a1839af3e027a1cd259872.json │ ├── 52149eb434085bee56dec595ee2f3a601cb24703bbb4a385954b1f20a3b50c7d.json │ ├── 525f7baa656d04016fad0094187cc969b526ca1261312ddf09a648d822ee6cdd.json │ ├── 5cc890ab1369432375decb64ef19b4cb190f5f40e35bb1399cce16e4be6b5b9b.json │ ├── 6308f912ccf36057d020483dbe9392dda8d197e378f1709d5bf0291f8d83bcc7.json │ ├── 64873e801b9886af5f5fb30889d816d38f77856544b1233d1491f4bcf9e3062a.json │ ├── 67b95eb7516f5bf19340d31820c9fe71b8280d650d8b81d77ec950ad5c315128.json │ ├── 6887dd16b7ad2847bd4546211665199e05711c3acd1a67da879506adb5486910.json │ ├── 7bf10738ab63989d3c7b34ce5ee610bb4b6ff1ffab0f203d60f4089bd62f3984.json │ ├── 7dd8296f38db7148d81fa88114becd96fd5064113bea0bcf1c24809ea863ee5a.json │ ├── 829200296bbbe5f95829c489adb9841ae1b563a64f5922e66f73ba61673008e1.json │ ├── 8382f29f591222a8e2c8a4f617516353f5e88774133f220950ed1fe0edfeef25.json │ ├── 88b5379ca502953d7d24f686f165a87bf776ffc511ef5e6e8a54d8da108ee00a.json │ ├── 8e9a710d142c694f96d514b102442b958c768b0d1c69e0bac13785d8188e1c60.json │ ├── 90abd841f9be2340eb42bcba3dd5283dbdfc5cd0b23a4364768a69b6e210f829.json │ ├── 92ecb6c38bfefc3b6ff8b48a2dd14ece823d37c02adbeeeeede5a801e4926ece.json │ ├── 950a882a74bd2fd4f287090f0c467d144f832388898914d198bb03f2cc612f6e.json │ ├── 97f5fdfe133005c033ea3185202c53bb59d0760e9f9dd2cc2f8c50bbce8ec8bb.json │ ├── 9da5541e6653b03437264ab249170dccee24cdfe6351826df2f4b63079df2d4d.json │ ├── 9e5402a9c1e673c8dbd26107f077a0d50092140ec501352d3f53662e9f89a0e7.json │ ├── 9ece6cdda95805e47667f0b389ee3c0c29efd5929bc372e68a34ac1ecbb92d6f.json │ ├── 9efbf61ef4805708ecf8e31d982ab6de20b2d131ed9be00d2856a5fe5a8b3df5.json │ ├── a329a18c0957f8838c684f789fbe1201b871cddc7844d3513880c632bcbb8d1a.json │ ├── a91ddd4d17b1c1cda9bcdb1ebb95ebeb375af3bea974c67b9470d176e850baba.json │ ├── a98b000f28c9e8251925a1225832edf1c2992e103445b6b2cec3f5c0a81469e5.json │ ├── ab3c38f412a96eda0756330a4940fa148e9c73fdde9f068413945c3720bb1f18.json │ ├── b7e225d9988796f26c2fdd672795b2d27c667d298cf1db169cdf11ab8b064844.json │ ├── b8d52b6452a7e282a656e81dfa21b30d6bd8ce1150c73b89b33f11eed7cff096.json │ ├── c4dbf1a4963c5055577b4b5b315d3fca3c891aed223e2414dfb33aa36633961c.json │ ├── c66e1f5022e98b45b98f537ac42fe88d0e20aaf427731be678a319ed8f92c249.json │ ├── d62637792c280bed7ac93d78e6031d07e9307afc18d53f87c26dcaddf2297fd5.json │ ├── d66fcfe60af7a2a028b079ead597659535b66bc05d7bb0e26bb3464b5ac3fc08.json │ ├── d76bf0e32520c2c38321938486f387d498f523fc0f9532afd51d2ffc098ec03e.json │ ├── dd21295dd0aed5bb336e078994be1df0dc07fe79270e7ecab51136fb0b7cd59a.json │ ├── dd58300c4e6673d64f8ae3546fde4ac3e1445e707605c2f91ac6636b84fe28d8.json │ ├── e1dcdb553d40ec35aac0a5b9bc2cce0112dd10c869a887b52b3b58071bb29f3c.json │ ├── f2ab72a7f108c5f2c2f352d1918814975f89abb0a27ca3338e99514e771dfb30.json │ ├── f889c52a3367f636b9b680e84b22ea42a22b1ca41f9f59cb541c44ed3798a36c.json │ └── f98373ac2c09a99aef99db774538abe26bfbb543c0ca888ea3558cc881e9535d.json ├── openassets ├── api_spec.rb ├── api_testnet_spec.rb ├── cache │ ├── output_cache_spec.rb │ ├── ssl_certificate_cache_spec.rb │ └── transaction_cache_spec.rb ├── method_filter_spec.rb ├── protocol │ ├── asset_definition_loader_spec.rb │ ├── asset_definition_spec.rb │ ├── http_asset_definition_loader_spec.rb │ ├── marker_output_spec.rb │ └── transaction_output_spec.rb ├── provider │ └── bitcoin_core_provider_spec.rb ├── transaction │ ├── out_point_spec.rb │ ├── spendable_output_spec.rb │ └── transaction_builder_spec.rb └── util_spec.rb ├── openassets_spec.rb ├── spec_helper.rb └── test-config.json /.gitignore: -------------------------------------------------------------------------------- 1 | /.bundle/ 2 | /.yardoc 3 | /Gemfile.lock 4 | /_yardoc/ 5 | /coverage/ 6 | /doc/ 7 | /pkg/ 8 | /spec/reports/ 9 | /tmp/ 10 | .idea 11 | *.iml 12 | cache.db -------------------------------------------------------------------------------- /.rspec: -------------------------------------------------------------------------------- 1 | --format documentation 2 | --color 3 | -------------------------------------------------------------------------------- /.ruby-gemset: -------------------------------------------------------------------------------- 1 | openassets-ruby 2 | -------------------------------------------------------------------------------- /.ruby-version: -------------------------------------------------------------------------------- 1 | 2.6.3 -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: ruby 2 | rvm: 3 | - 2.6.3 4 | - 2.5.5 5 | - 2.4.5 6 | - 2.3.0 7 | 8 | bundler_args: --jobs=2 9 | 10 | script: 11 | - bundle exec rake spec -------------------------------------------------------------------------------- /CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- 1 | # Contributor Code of Conduct 2 | 3 | As contributors and maintainers of this project, we pledge to respect all people who contribute through reporting issues, posting feature requests, updating documentation, submitting pull requests or patches, and other activities. 4 | 5 | We are committed to making participation in this project a harassment-free experience for everyone, regardless of level of experience, gender, gender identity and expression, sexual orientation, disability, personal appearance, body size, race, age, or religion. 6 | 7 | Examples of unacceptable behavior by participants include the use of sexual language or imagery, derogatory comments or personal attacks, trolling, public or private harassment, insults, or other unprofessional conduct. 8 | 9 | Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct. Project maintainers who do not follow the Code of Conduct may be removed from the project team. 10 | 11 | Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by opening an issue or contacting one or more of the project maintainers. 12 | 13 | This Code of Conduct is adapted from the [Contributor Covenant](http:contributor-covenant.org), version 1.0.0, available at [http://contributor-covenant.org/version/1/0/0/](http://contributor-covenant.org/version/1/0/0/) 14 | -------------------------------------------------------------------------------- /Gemfile: -------------------------------------------------------------------------------- 1 | source 'https://rubygems.org' 2 | 3 | # Specify your gem's dependencies in openassets-ruby.gemspec 4 | gemspec 5 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2015-2017 HAW International Inc. 4 | Copyright (c) 2015-2017 azuchi 5 | 6 | Permission is hereby granted, free of charge, to any person obtaining a copy 7 | of this software and associated documentation files (the "Software"), to deal 8 | in the Software without restriction, including without limitation the rights 9 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | copies of the Software, and to permit persons to whom the Software is 11 | furnished to do so, subject to the following conditions: 12 | 13 | The above copyright notice and this permission notice shall be included in all 14 | copies or substantial portions of the Software. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 22 | SOFTWARE. 23 | 24 | -------------------------------------------------------------------------------- /Rakefile: -------------------------------------------------------------------------------- 1 | require "bundler/gem_tasks" 2 | require "rspec/core/rake_task" 3 | 4 | RSpec::Core::RakeTask.new("spec") 5 | task :default => :spec -------------------------------------------------------------------------------- /bin/console: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | 3 | require "bundler/setup" 4 | require "openassets" 5 | 6 | # You can add fixtures and/or initialization code here to make experimenting 7 | # with your gem easier. You can also use a different console, if you like. 8 | 9 | # (If you use this, don't forget to add pry to your Gemfile!) 10 | # require "pry" 11 | # Pry.start 12 | 13 | require "irb" 14 | IRB.start 15 | -------------------------------------------------------------------------------- /bin/setup: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -euo pipefail 3 | IFS=$'\n\t' 4 | 5 | bundle install 6 | 7 | # Do any other automated setup that you need to do here 8 | -------------------------------------------------------------------------------- /exe/openassets: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env ruby 2 | 3 | require "bundler/setup" 4 | require "openassets" 5 | require 'optparse' 6 | require 'json' 7 | 8 | options = {} 9 | OptionParser.new do |opts| 10 | opts.banner = "Usage: openassets [options] [command]" 11 | 12 | opts.on("-c PATH", "--config PATH", "config load path") do |path| 13 | options[:config] = path 14 | end 15 | opts.on("-e", "--env", "load config from ENV variablse") do |env| 16 | options[:env] = env 17 | end 18 | opts.on("-v", "--verbose", "verbose output") do |v| 19 | options[:verbose] = v 20 | end 21 | end.parse! 22 | 23 | puts "Welcome to OpenAssets\n\n" 24 | if options[:env] 25 | rpc = { 26 | :host => ENV['OA_RPC_HOST'] || 'localhost', 27 | :port => ENV['OA_RPC_PORT'] || 8332, 28 | :user => ENV['OA_RPC_USER'] || '', 29 | :password => ENV['OA_RPC_PASSWORD'] || '', 30 | :schema => ENV['OA_RPC_SCHEMA'] || 'http' 31 | } 32 | config = { 33 | :network => ENV['OA_NETWORK'] || 'mainnet', 34 | :provider => 'bitcoind', 35 | :cache => ENV['OA_CACHE'] || 'cache.db', 36 | :dust_limit => (ENV['OA_DUST_LIMIT'] || 600).to_i, 37 | :default_fees => (ENV['OA_DEFAULT_FEES'] || 10000).to_i, 38 | :rpc => rpc 39 | } 40 | elsif options[:config] 41 | if !File.exists?(options[:config]) 42 | puts "File not found: #{options[:config]}" 43 | exit(1) 44 | end 45 | config = JSON.parse(File.read(options[:config]), {symbolize_names: true}) 46 | end 47 | 48 | if options[:verbose] 49 | puts "using config:" 50 | puts config.inspect 51 | end 52 | $oa = $api = OpenAssets::Api.new(config) 53 | 54 | command = ARGV.shift 55 | 56 | if command == 'console' 57 | require "irb" 58 | puts "API is available as $oa:" 59 | IRB.start 60 | puts "bye, bye" 61 | elsif command && $oa.respond_to?(command) 62 | puts "running command '#{command}'" 63 | puts $oa.send(command, *ARGV).inspect 64 | else 65 | puts "use 'openassets --help' for help" 66 | end 67 | -------------------------------------------------------------------------------- /lib/openassets.rb: -------------------------------------------------------------------------------- 1 | require 'bitcoin' 2 | require 'leb128' 3 | 4 | module OpenAssets 5 | 6 | autoload :Protocol, 'openassets/protocol' 7 | autoload :Transaction, 'openassets/transaction' 8 | autoload :VERSION, 'openassets/version' 9 | autoload :Util, 'openassets/util' 10 | autoload :MethodFilter, 'openassets/medhod_filter' 11 | autoload :Api, 'openassets/api' 12 | autoload :Provider, 'openassets/provider' 13 | autoload :Error, 'openassets/error' 14 | autoload :SendAssetParam, 'openassets/send_asset_param' 15 | autoload :SendBitcoinParam, 'openassets/send_bitcoin_param' 16 | autoload :Cache, 'openassets/cache' 17 | 18 | class << self 19 | attr_accessor :configuration 20 | end 21 | 22 | extend Util 23 | end -------------------------------------------------------------------------------- /lib/openassets/cache.rb: -------------------------------------------------------------------------------- 1 | module OpenAssets 2 | module Cache 3 | autoload :SQLiteBase, 'openassets/cache/sqlite_base' 4 | autoload :TransactionCache, 'openassets/cache/transaction_cache' 5 | autoload :SSLCertificateCache, 'openassets/cache/ssl_certificate_cache' 6 | autoload :OutputCache, 'openassets/cache/output_cache' 7 | end 8 | end -------------------------------------------------------------------------------- /lib/openassets/cache/output_cache.rb: -------------------------------------------------------------------------------- 1 | module OpenAssets 2 | module Cache 3 | 4 | # An object that can be used for caching coloring transaction output in a Sqlite database. 5 | class OutputCache < SQLiteBase 6 | 7 | def setup 8 | db.execute <<-SQL 9 | CREATE TABLE IF NOT EXISTS Output( 10 | TransactionHash BLOB, 11 | OutputIndex INT, 12 | Value BigInt, 13 | Script BLOB, 14 | AssetId BLOB, 15 | AssetQuantity INT, 16 | OutputType INT, 17 | Metadata BLOB, 18 | PRIMARY KEY (TransactionHash, OutputIndex)) 19 | SQL 20 | end 21 | 22 | # Get a cached transaction output 23 | # @param[String] txid The transaction id. 24 | # @param[Integer] index The index of the output in the transaction. 25 | # @return[OpenAssets::Protocol::TransactionOutput] The output for the txid and index provided if it is found in the cache, or nil otherwise. 26 | def get(txid, index) 27 | rows = db.execute('SELECT Value,Script,AssetId,AssetQuantity,OutputType,Metadata FROM Output WHERE TransactionHash = ? AND OutputIndex = ?', [txid, index]) 28 | return nil if rows.empty? 29 | script = Bitcoin::Script.from_string(rows[0][1]) 30 | OpenAssets::Protocol::TransactionOutput.new(rows[0][0], script, rows[0][2], rows[0][3], rows[0][4], rows[0][5]) 31 | end 32 | 33 | # Put a transaction output 34 | # @param[String] txid The transaction id. 35 | # @param[Integer] index The index of the output in the transaction. 36 | # @param[OpenAssets::Protocol::TransactionOutput] output The output to save. 37 | def put(txid, index, output) 38 | db.execute('INSERT INTO Output (TransactionHash, OutputIndex, Value,Script,AssetId,AssetQuantity,OutputType,Metadata) VALUES (?, ?, ?, ?, ?, ?, ?, ?)', 39 | [txid, index, output.value, output.script.to_string, output.asset_id, output.asset_quantity, output.output_type, output.metadata]) 40 | end 41 | end 42 | end 43 | end -------------------------------------------------------------------------------- /lib/openassets/cache/sqlite_base.rb: -------------------------------------------------------------------------------- 1 | require 'sqlite3' 2 | 3 | module OpenAssets 4 | module Cache 5 | 6 | # The base class of SQLite3 cache implementation. 7 | class SQLiteBase 8 | 9 | attr_reader :db 10 | 11 | # Initializes the connection to the database, and creates the table if needed. 12 | # @param[String] path The path to the database file. Use ':memory:' for an in-memory database. 13 | def initialize(path) 14 | @db = SQLite3::Database.new path 15 | setup 16 | end 17 | 18 | # Setup table ddl, implements by subclass. 19 | def setup 20 | raise StandardError.new('need setup method implementation.') 21 | end 22 | 23 | end 24 | 25 | end 26 | end -------------------------------------------------------------------------------- /lib/openassets/cache/ssl_certificate_cache.rb: -------------------------------------------------------------------------------- 1 | module OpenAssets 2 | module Cache 3 | class SSLCertificateCache < SQLiteBase 4 | 5 | def initialize 6 | path = OpenAssets.configuration ? OpenAssets.configuration[:cache] : ':memory:' 7 | super(path) 8 | end 9 | 10 | def setup 11 | db.execute <<-SQL 12 | CREATE TABLE IF NOT EXISTS SslCertificate( 13 | Url TEXT, 14 | Subject TEXT, 15 | ExpireDate TEXT, 16 | PRIMARY KEY (Url)) 17 | SQL 18 | end 19 | 20 | # Return the subject value which defined by ssl certificate. 21 | # @param[String] url The URL of asset definition file. 22 | # @return[String] The subject value. If not found, return nil. 23 | def get(url) 24 | rows = db.execute('SELECT Subject,ExpireDate FROM SslCertificate WHERE Url = ?', [url]) 25 | return nil if rows.empty? 26 | if rows[0][1].to_i < Time.now.to_i 27 | db.execute('DELETE FROM SslCertificate where Url = ?', [url]) 28 | nil 29 | else 30 | rows[0][0] 31 | end 32 | end 33 | 34 | # Saves a serialized transaction in cache. 35 | # @param[String] url The URL of asset definition file. 36 | # @param[String] subject The SSL Certificate subject value. 37 | # @param[Time] expire_date The expire date of SSL Certificate. 38 | def put(url, subject, expire_date) 39 | db.execute('INSERT INTO SslCertificate (Url, Subject, ExpireDate) VALUES (?, ?, ?)', [url, subject, expire_date.to_i]) 40 | end 41 | 42 | end 43 | end 44 | end -------------------------------------------------------------------------------- /lib/openassets/cache/transaction_cache.rb: -------------------------------------------------------------------------------- 1 | module OpenAssets 2 | module Cache 3 | 4 | # An object that can be used for caching serialized transaction in a Sqlite database. 5 | class TransactionCache < SQLiteBase 6 | 7 | def setup 8 | db.execute <<-SQL 9 | CREATE TABLE IF NOT EXISTS Tx( 10 | TransactionHash BLOB, 11 | SerializedTx BLOB, 12 | PRIMARY KEY (TransactionHash)) 13 | SQL 14 | end 15 | 16 | # Return the serialized transaction. 17 | # @param[String] txid The transaction id. 18 | # @return[String] The serialized transaction. If not found transaction, return nil. 19 | def get(txid) 20 | rows = db.execute('SELECT SerializedTx FROM Tx WHERE TransactionHash = ?', [txid]) 21 | rows.empty? ? nil : rows[0][0] 22 | end 23 | 24 | # Saves a serialized transaction in cache. 25 | # @param[String] txid A transaction id. 26 | # @param[String] serialized_tx A a hex-encoded serialized transaction. 27 | def put(txid, serialized_tx) 28 | db.execute('INSERT INTO Tx (TransactionHash, SerializedTx) VALUES (?, ?)', [txid, serialized_tx]) 29 | end 30 | end 31 | 32 | end 33 | end -------------------------------------------------------------------------------- /lib/openassets/error.rb: -------------------------------------------------------------------------------- 1 | module OpenAssets 2 | class Error < StandardError 3 | 4 | end 5 | end -------------------------------------------------------------------------------- /lib/openassets/medhod_filter.rb: -------------------------------------------------------------------------------- 1 | module OpenAssets 2 | module MethodFilter 3 | 4 | module Filters 5 | 6 | def before_filter(method, options = {}) 7 | @before_filters ||= {} 8 | @before_filters[method] = options 9 | end 10 | 11 | def filtered_method?(method, options) 12 | if options.has_key? :include 13 | return true if options[:include].include? method.intern 14 | false 15 | elsif options.has_key? :exclude 16 | return false if options[:exclude].include? method.intern 17 | true 18 | else 19 | true 20 | end 21 | end 22 | 23 | private 24 | def method_added(name) 25 | @before_filters ||= {} 26 | @modified_methods ||= [] 27 | return if @modified_methods.include?(name) 28 | return if @before_filters.include?(name) 29 | return if /with_filters$/ =~ name.to_s 30 | return if /without_filters$/ =~ name.to_s 31 | @modified_methods << name 32 | 33 | name = name.to_s 34 | alias_method( "#{name}_without_filters", name) 35 | before_filters = @before_filters 36 | 37 | define_method("#{name}_with_filters") do |*args| 38 | before_filters.each do |filter_name, options| 39 | method(filter_name).call if self.class.filtered_method?(name, options) 40 | end 41 | result = method("#{name}_without_filters").call(*args) 42 | result 43 | end 44 | 45 | alias_method(name, "#{name}_with_filters") 46 | @modified_methods.delete_if { |x| name == x } 47 | end 48 | end 49 | 50 | def self.included(receiver) 51 | receiver.extend(Filters) 52 | end 53 | 54 | end 55 | end -------------------------------------------------------------------------------- /lib/openassets/protocol.rb: -------------------------------------------------------------------------------- 1 | module OpenAssets 2 | module Protocol 3 | autoload :MarkerOutput, 'openassets/protocol/marker_output' 4 | autoload :TransactionOutput, 'openassets/protocol/transaction_output' 5 | autoload :OutputType, 'openassets/protocol/output_type' 6 | autoload :AssetDefinitionLoader, 'openassets/protocol/asset_definition_loader' 7 | autoload :HttpAssetDefinitionLoader, 'openassets/protocol/http_asset_definition_loader' 8 | autoload :AssetDefinition, 'openassets/protocol/asset_definition' 9 | end 10 | end -------------------------------------------------------------------------------- /lib/openassets/protocol/asset_definition.rb: -------------------------------------------------------------------------------- 1 | require 'rest-client' 2 | require 'httpclient' 3 | module OpenAssets 4 | module Protocol 5 | 6 | # The Definition of Open Asset 7 | class AssetDefinition 8 | include OpenAssets::MethodFilter 9 | 10 | before_filter :clear_poa_cache, {:include => [:issuer=, :asset_definition_url=, :link_to_website=]} 11 | 12 | attr_accessor :asset_definition_url 13 | 14 | attr_accessor :asset_ids 15 | attr_accessor :name_short 16 | attr_accessor :name 17 | attr_accessor :contract_url 18 | attr_accessor :issuer 19 | attr_accessor :description 20 | attr_accessor :description_mime 21 | attr_accessor :type 22 | attr_accessor :divisibility 23 | attr_accessor :link_to_website 24 | attr_accessor :icon_url 25 | attr_accessor :image_url 26 | attr_accessor :version 27 | attr_accessor :proof_of_authenticity 28 | 29 | def initialize 30 | @asset_ids = [] 31 | @version = '1.0' 32 | @divisibility = 0 33 | end 34 | 35 | # Parse the JSON obtained from the json String, and create a AssetDefinition object. 36 | # @param[String] 37 | def self.parse_json(json) 38 | parsed_json = JSON.parse(json) 39 | definition = new 40 | definition.asset_ids = parsed_json['asset_ids'] 41 | definition.name_short = parsed_json['name_short'] 42 | definition.name = parsed_json['name'] 43 | definition.contract_url = parsed_json['contract_url'] 44 | definition.issuer = parsed_json['issuer'] 45 | definition.description = parsed_json['description'] 46 | definition.description_mime = parsed_json['description_mime'] 47 | definition.type = parsed_json['type'] 48 | definition.divisibility = parsed_json['divisibility'] 49 | definition.link_to_website = parsed_json['link_to_website'] 50 | definition.icon_url = parsed_json['icon_url'] 51 | definition.image_url = parsed_json['image_url'] 52 | definition.version = parsed_json['version'] 53 | definition 54 | end 55 | 56 | def include_asset_id?(asset_id) 57 | return false if asset_ids.nil? || asset_ids.empty? 58 | asset_ids.include?(asset_id) 59 | end 60 | 61 | # Convert Asset Definition to json format. 62 | def to_json 63 | h = to_hash 64 | h.delete('proof_of_authenticity') 65 | h.to_json 66 | end 67 | 68 | def to_hash 69 | instance_variables.inject({}) do |result, var| 70 | key = var.to_s 71 | key.slice!(0) if key.start_with?('@') 72 | result.update(key => instance_variable_get(var)) 73 | end 74 | end 75 | 76 | # Check Proof of authenticity. 77 | # SSL certificate subject matches issuer. 78 | def proof_of_authenticity 79 | @proof_of_authenticity ||= calc_proof_of_authenticity 80 | end 81 | 82 | private 83 | def calc_proof_of_authenticity 84 | result = false 85 | if !asset_definition_url.nil? && link_to_website 86 | subject = ssl_certificate_subject 87 | return true if !subject.nil? && subject == issuer 88 | end 89 | result 90 | end 91 | 92 | def clear_poa_cache 93 | @proof_of_authenticity = nil 94 | end 95 | 96 | def ssl_certificate_subject 97 | cache = OpenAssets::Cache::SSLCertificateCache.new 98 | subject = cache.get(asset_definition_url) 99 | if subject.nil? 100 | client = HTTPClient.new 101 | client.redirect_uri_callback = ->(uri, res) {res.header['location'][0]} 102 | response = client.get(asset_definition_url, :follow_redirect => true) 103 | cert = response.peer_cert 104 | unless cert.nil? 105 | subjects = cert.subject.to_a 106 | o = subjects.find{|x|x[0] == 'O'} 107 | if !o.nil? && o.length > 2 108 | subject = o[1] 109 | cache.put(asset_definition_url, subject, cert.not_after) 110 | end 111 | end 112 | end 113 | subject 114 | end 115 | end 116 | 117 | end 118 | end 119 | -------------------------------------------------------------------------------- /lib/openassets/protocol/asset_definition_loader.rb: -------------------------------------------------------------------------------- 1 | module OpenAssets 2 | module Protocol 3 | 4 | class AssetDefinitionLoader 5 | extend Bitcoin::Util 6 | extend OpenAssets::Util 7 | 8 | attr_reader :loader 9 | 10 | def initialize(url) 11 | if url.start_with?('http://') || url.start_with?('https://') 12 | @loader = HttpAssetDefinitionLoader.new(url) 13 | end 14 | end 15 | 16 | # load Asset Definition File 17 | # @return[OpenAssets::Protocol::AssetDefinition] loaded asset definition object 18 | def load_definition 19 | @loader.load if @loader 20 | end 21 | 22 | # create redeem script of asset definition file using p2sh 23 | # @param[String] url The asset definition url. 24 | # @param[String] to The open asset address to send the asset to. 25 | # @return[Bitcoin::Script] redeem script. 26 | def self.create_pointer_redeem_script(url, to) 27 | asset_def = "u=#{url}".bytes.map{|b|b.to_s(16)}.join 28 | btc_addr = oa_address_to_address(to) 29 | script = Bitcoin::Script.from_string("#{asset_def}") 30 | Bitcoin::Script.new(script.append_opcode(Bitcoin::Script::OP_DROP).to_payload + Bitcoin::Script.to_address_script(btc_addr)) 31 | end 32 | 33 | # create ps2s script which specify asset definition pointer 34 | # @param[String] url The asset definition url. 35 | # @param[String] to The open asset address to send the asset to. 36 | # @return[Bitcoin::Script] p2sh script. 37 | def self.create_pointer_p2sh(url, to) 38 | redeem_script = create_pointer_redeem_script(url, to) 39 | Bitcoin::Script.new(Bitcoin::Script.to_p2sh_script(hash160(redeem_script.to_payload.bth))) 40 | end 41 | end 42 | end 43 | end -------------------------------------------------------------------------------- /lib/openassets/protocol/http_asset_definition_loader.rb: -------------------------------------------------------------------------------- 1 | module OpenAssets 2 | module Protocol 3 | 4 | # Asset Definition loader for http or https uri scheme 5 | class HttpAssetDefinitionLoader 6 | 7 | attr_reader :url 8 | 9 | def initialize(url) 10 | @url = url 11 | end 12 | 13 | # load asset definition 14 | def load 15 | begin 16 | definition = AssetDefinition.parse_json(RestClient::Request.execute(:method => :get, :url => url, :timeout => 10, :open_timeout => 10)) 17 | definition.asset_definition_url = url 18 | definition 19 | rescue => e 20 | puts e 21 | nil 22 | end 23 | end 24 | 25 | end 26 | end 27 | end -------------------------------------------------------------------------------- /lib/openassets/protocol/output_type.rb: -------------------------------------------------------------------------------- 1 | # Transaction output type enum 2 | module OpenAssets 3 | module Protocol 4 | module OutputType 5 | UNCOLORED = 0 6 | MARKER_OUTPUT = 1 7 | ISSUANCE = 2 8 | TRANSFER = 3 9 | 10 | # get all enum. 11 | def self.all 12 | self.constants.map{|name|self.const_get(name)} 13 | end 14 | 15 | def self.output_type_label(type) 16 | case type 17 | when UNCOLORED then 'uncolored' 18 | when MARKER_OUTPUT then 'marker' 19 | when ISSUANCE then 'issuance' 20 | when TRANSFER then 'transfer' 21 | else 'uncolored' 22 | end 23 | end 24 | 25 | end 26 | end 27 | end 28 | -------------------------------------------------------------------------------- /lib/openassets/provider.rb: -------------------------------------------------------------------------------- 1 | module OpenAssets 2 | module Provider 3 | autoload :BlockChainProviderBase, 'openassets/provider/block_chain_provider_base' 4 | autoload :BitcoinCoreProvider, 'openassets/provider/bitcoin_core_provider' 5 | autoload :ApiError, 'openassets/provider/api_error' 6 | end 7 | end -------------------------------------------------------------------------------- /lib/openassets/provider/api_error.rb: -------------------------------------------------------------------------------- 1 | module OpenAssets 2 | module Provider 3 | 4 | class ApiError < OpenAssets::Error 5 | 6 | end 7 | 8 | end 9 | end -------------------------------------------------------------------------------- /lib/openassets/provider/block_chain_provider_base.rb: -------------------------------------------------------------------------------- 1 | module OpenAssets 2 | module Provider 3 | 4 | # The base class providing access to the Blockchain. 5 | class BlockChainProviderBase 6 | 7 | def list_unspent(addresses = [], min = 1 , max = 9999999) 8 | raise NotImplementedError 9 | end 10 | 11 | def get_transaction(transaction_hash, verbose = 0) 12 | raise NotImplementedError 13 | end 14 | 15 | def sign_transaction(tx) 16 | raise NotImplementedError 17 | end 18 | 19 | end 20 | 21 | end 22 | end -------------------------------------------------------------------------------- /lib/openassets/send_asset_param.rb: -------------------------------------------------------------------------------- 1 | module OpenAssets 2 | 3 | class SendAssetParam 4 | attr_accessor :asset_id 5 | attr_accessor :amount 6 | attr_accessor :to 7 | attr_accessor :from 8 | 9 | def initialize(asset_id, amount, to, from = nil) 10 | @asset_id = asset_id 11 | @amount = amount 12 | @to = to 13 | @from = from 14 | end 15 | end 16 | 17 | end -------------------------------------------------------------------------------- /lib/openassets/send_bitcoin_param.rb: -------------------------------------------------------------------------------- 1 | module OpenAssets 2 | 3 | class SendBitcoinParam 4 | attr_accessor :amount 5 | attr_accessor :to 6 | 7 | def initialize(amount, to) 8 | @amount = amount 9 | @to = to 10 | end 11 | end 12 | 13 | end -------------------------------------------------------------------------------- /lib/openassets/transaction.rb: -------------------------------------------------------------------------------- 1 | module OpenAssets 2 | module Transaction 3 | autoload :TransactionBuilder, 'openassets/transaction/transaction_builder' 4 | autoload :TransferParameters, 'openassets/transaction/transfer_parameters' 5 | autoload :SpendableOutput, 'openassets/transaction/spendable_output' 6 | autoload :OutPoint, 'openassets/transaction/out_point' 7 | autoload :TransactionBuildError, 'openassets/transaction/transaction_build_error' 8 | autoload :InsufficientFundsError, 'openassets/transaction/insufficient_funds_error' 9 | autoload :InsufficientAssetQuantityError, 'openassets/transaction/insufficient_asset_quantity_error' 10 | autoload :DustOutputError, 'openassets/transaction/dust_output_error' 11 | end 12 | end -------------------------------------------------------------------------------- /lib/openassets/transaction/dust_output_error.rb: -------------------------------------------------------------------------------- 1 | module OpenAssets 2 | module Transaction 3 | 4 | # The value of an output would be too small, and the output would be considered as dust. 5 | class DustOutputError < TransactionBuildError 6 | 7 | end 8 | 9 | end 10 | end -------------------------------------------------------------------------------- /lib/openassets/transaction/insufficient_asset_quantity_error.rb: -------------------------------------------------------------------------------- 1 | module OpenAssets 2 | module Transaction 3 | # An insufficient amount of assets is available. 4 | class InsufficientAssetQuantityError < TransactionBuildError 5 | end 6 | end 7 | end -------------------------------------------------------------------------------- /lib/openassets/transaction/insufficient_funds_error.rb: -------------------------------------------------------------------------------- 1 | module OpenAssets 2 | module Transaction 3 | 4 | # An insufficient amount of bitcoins is available. 5 | class InsufficientFundsError < TransactionBuildError 6 | 7 | end 8 | 9 | end 10 | end -------------------------------------------------------------------------------- /lib/openassets/transaction/out_point.rb: -------------------------------------------------------------------------------- 1 | module OpenAssets 2 | module Transaction 3 | 4 | # The combination of a transaction hash and an index n into its vout 5 | class OutPoint 6 | 7 | attr_accessor :hash 8 | attr_accessor :index 9 | 10 | # @param [String] hash: 32 bytes transaction hash in vout. 11 | # @param [Integer] index: index in vout. 12 | def initialize(hash, index) 13 | raise ArgumentError, 'hash must be exactly 32 bytes.' unless [hash].pack("H*").bytesize == 32 14 | raise ArgumentError, 'index must be in range 0x0 to 0xffffffff.' unless index.between?(0x0, 0xffffffff) 15 | @hash = hash 16 | @index = index 17 | end 18 | 19 | end 20 | 21 | end 22 | end -------------------------------------------------------------------------------- /lib/openassets/transaction/spendable_output.rb: -------------------------------------------------------------------------------- 1 | module OpenAssets 2 | module Transaction 3 | 4 | # A transaction output with information about the asset ID and asset quantity associated to it. 5 | class SpendableOutput 6 | 7 | # An object that can be used to locate the output. 8 | attr_accessor :out_point 9 | # The actual output object. 10 | attr_accessor :output 11 | 12 | attr_accessor :confirmations 13 | attr_accessor :spendable 14 | attr_accessor :solvable 15 | 16 | # @param [OpenAssets::Transaction::OutPoint] out_point 17 | # @param [OpenAssets::Protocol::TransactionOutput] output 18 | def initialize(out_point, output) 19 | @out_point = out_point 20 | @output = output 21 | @confirmations = nil 22 | @solvable = nil 23 | @spendable = nil 24 | end 25 | 26 | # convert to hash. 27 | def to_hash 28 | return {} if @output.nil? 29 | h = {'txid' => @out_point.hash, 'vout' => @out_point.index, 'confirmations' => @confirmations}.merge(@output.to_hash) 30 | h['solvable'] = @solvable unless @solvable.nil? 31 | h['spendable'] = @spendable unless @spendable.nil? 32 | h 33 | end 34 | 35 | end 36 | 37 | end 38 | end -------------------------------------------------------------------------------- /lib/openassets/transaction/transaction_build_error.rb: -------------------------------------------------------------------------------- 1 | module OpenAssets 2 | module Transaction 3 | 4 | class TransactionBuildError < OpenAssets::Error 5 | 6 | end 7 | 8 | end 9 | end -------------------------------------------------------------------------------- /lib/openassets/transaction/transfer_parameters.rb: -------------------------------------------------------------------------------- 1 | module OpenAssets 2 | module Transaction 3 | 4 | # The value object of a bitcoin or asset transfer. 5 | class TransferParameters 6 | 7 | attr_accessor :unspent_outputs 8 | attr_accessor :amount 9 | attr_accessor :change_script 10 | attr_accessor :to_script 11 | attr_accessor :output_qty 12 | 13 | # initialize 14 | # @param [Array[OpenAssets::Transaction::SpendableOutput]] unspent_outputs Array of the unspent outputs available for the transaction. 15 | # @param [String] to_script the output script to which to send the assets or bitcoins. 16 | # @param [String] change_script the output script to which to send any remaining change. 17 | # @param [Integer] amount The asset quantity or amount of the satoshi sent in the transaction. 18 | def initialize(unspent_outputs, to_script, change_script, amount, output_qty = 1) 19 | @unspent_outputs = unspent_outputs 20 | @to_script = to_script 21 | @change_script = change_script 22 | @amount = amount 23 | @output_qty = output_qty 24 | end 25 | 26 | def split_output_amount 27 | split_amounts = [] 28 | output_qty.times{|index| 29 | if index == output_qty - 1 30 | value = amount / output_qty + amount % output_qty 31 | else 32 | value = amount / output_qty 33 | end 34 | split_amounts << value 35 | } 36 | split_amounts 37 | end 38 | end 39 | 40 | end 41 | end -------------------------------------------------------------------------------- /lib/openassets/version.rb: -------------------------------------------------------------------------------- 1 | module OpenAssets 2 | VERSION = '0.7.0' 3 | end 4 | -------------------------------------------------------------------------------- /openassets-ruby.gemspec: -------------------------------------------------------------------------------- 1 | # coding: utf-8 2 | lib = File.expand_path('../lib', __FILE__) 3 | $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib) 4 | require 'openassets/version' 5 | 6 | Gem::Specification.new do |spec| 7 | spec.name = "openassets-ruby" 8 | spec.version = OpenAssets::VERSION 9 | spec.authors = ["azuchi"] 10 | spec.email = ["azuchi@haw.co.jp"] 11 | 12 | spec.summary = %q{The implementation of the Open Assets Protocol for Ruby.} 13 | spec.description = %q{The implementation of the Open Assets Protocol for Ruby.} 14 | spec.homepage = "https://github.com/haw-itn/openassets-ruby" 15 | spec.license = "MIT" 16 | 17 | spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) } 18 | spec.bindir = "exe" 19 | spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) } 20 | spec.require_paths = ["lib"] 21 | spec.add_runtime_dependency "bitcoin-ruby", "~> 0.0.18" 22 | spec.add_runtime_dependency "ffi", "~>1.9.8" 23 | spec.add_runtime_dependency "rest-client", "2.0.2" 24 | spec.add_runtime_dependency "httpclient" 25 | spec.add_runtime_dependency "sqlite3" 26 | spec.add_runtime_dependency "leb128", '~> 1.0.0' 27 | spec.add_development_dependency "bundler" 28 | spec.add_development_dependency "rake", ">= 12.3.3" 29 | spec.add_development_dependency "rspec" 30 | spec.add_development_dependency "timecop" 31 | spec.add_development_dependency "travis" 32 | 33 | end 34 | -------------------------------------------------------------------------------- /spec/fixtures/help-result-0.16.0.txt: -------------------------------------------------------------------------------- 1 | == Blockchain == 2 | getbestblockhash 3 | getblock "blockhash" ( verbosity ) 4 | getblockchaininfo 5 | getblockcount 6 | getblockhash height 7 | getblockheader "hash" ( verbose ) 8 | getchaintips 9 | getchaintxstats ( nblocks blockhash ) 10 | getdifficulty 11 | getmempoolancestors txid (verbose) 12 | getmempooldescendants txid (verbose) 13 | getmempoolentry txid 14 | getmempoolinfo 15 | getrawmempool ( verbose ) 16 | gettxout "txid" n ( include_mempool ) 17 | gettxoutproof ["txid",...] ( blockhash ) 18 | gettxoutsetinfo 19 | preciousblock "blockhash" 20 | pruneblockchain 21 | verifychain ( checklevel nblocks ) 22 | verifytxoutproof "proof" 23 | 24 | == Control == 25 | getinfo 26 | getmemoryinfo ("mode") 27 | help ( "command" ) 28 | stop 29 | uptime 30 | 31 | == Generating == 32 | generate nblocks ( maxtries ) 33 | generatetoaddress nblocks address (maxtries) 34 | 35 | == Mining == 36 | getblocktemplate ( TemplateRequest ) 37 | getmininginfo 38 | getnetworkhashps ( nblocks height ) 39 | prioritisetransaction 40 | submitblock "hexdata" ( "dummy" ) 41 | 42 | == Network == 43 | addnode "node" "add|remove|onetry" 44 | clearbanned 45 | disconnectnode "[address]" [nodeid] 46 | getaddednodeinfo ( "node" ) 47 | getconnectioncount 48 | getnettotals 49 | getnetworkinfo 50 | getpeerinfo 51 | listbanned 52 | ping 53 | setban "subnet" "add|remove" (bantime) (absolute) 54 | setnetworkactive true|false 55 | 56 | == Rawtransactions == 57 | combinerawtransaction ["hexstring",...] 58 | createrawtransaction [{"txid":"id","vout":n},...] {"address":amount,"data":"hex",...} ( locktime ) ( replaceable ) 59 | decoderawtransaction "hexstring" 60 | decodescript "hexstring" 61 | fundrawtransaction "hexstring" ( options ) 62 | getrawtransaction "txid" ( verbose ) 63 | sendrawtransaction "hexstring" ( allowhighfees ) 64 | signrawtransaction "hexstring" ( [{"txid":"id","vout":n,"scriptPubKey":"hex","redeemScript":"hex"},...] ["privatekey1",...] sighashtype ) 65 | 66 | == Util == 67 | createmultisig nrequired ["key",...] 68 | estimatefee nblocks 69 | estimatesmartfee conf_target ("estimate_mode") 70 | signmessagewithprivkey "privkey" "message" 71 | validateaddress "address" 72 | verifymessage "address" "signature" "message" 73 | 74 | == Wallet == 75 | abandontransaction "txid" 76 | abortrescan 77 | addmultisigaddress nrequired ["key",...] ( "account" ) 78 | addwitnessaddress "address" 79 | backupwallet "destination" 80 | bumpfee "txid" ( options ) 81 | dumpprivkey "address" 82 | dumpwallet "filename" 83 | getaccount "address" 84 | getaccountaddress "account" 85 | getaddressesbyaccount "account" 86 | getbalance ( "account" minconf include_watchonly ) 87 | getnewaddress ( "account" ) 88 | getrawchangeaddress 89 | getreceivedbyaccount "account" ( minconf ) 90 | getreceivedbyaddress "address" ( minconf ) 91 | gettransaction "txid" ( include_watchonly ) 92 | getunconfirmedbalance 93 | getwalletinfo 94 | importaddress "address" ( "label" rescan p2sh ) 95 | importmulti "requests" ( "options" ) 96 | importprivkey "bitcoinprivkey" ( "label" ) ( rescan ) 97 | importprunedfunds 98 | importpubkey "pubkey" ( "label" rescan ) 99 | importwallet "filename" 100 | keypoolrefill ( newsize ) 101 | listaccounts ( minconf include_watchonly) 102 | listaddressgroupings 103 | listlockunspent 104 | listreceivedbyaccount ( minconf include_empty include_watchonly) 105 | listreceivedbyaddress ( minconf include_empty include_watchonly) 106 | listsinceblock ( "blockhash" target_confirmations include_watchonly include_removed ) 107 | listtransactions ( "account" count skip include_watchonly) 108 | listunspent ( minconf maxconf ["addresses",...] [include_unsafe] [query_options]) 109 | listwallets 110 | lockunspent unlock ([{"txid":"txid","vout":n},...]) 111 | move "fromaccount" "toaccount" amount ( minconf "comment" ) 112 | removeprunedfunds "txid" 113 | sendfrom "fromaccount" "toaddress" amount ( minconf "comment" "comment_to" ) 114 | sendmany "fromaccount" {"address":amount,...} ( minconf "comment" ["address",...] replaceable conf_target "estimate_mode") 115 | sendtoaddress "address" amount ( "comment" "comment_to" subtractfeefromamount replaceable conf_target "estimate_mode") 116 | setaccount "address" "account" 117 | settxfee amount 118 | signmessage "address" "message" 119 | walletlock 120 | walletpassphrase "passphrase" timeout 121 | walletpassphrasechange "oldpassphrase" "newpassphrase" -------------------------------------------------------------------------------- /spec/fixtures/tx/08f36e44ac44b301dae9db829def3f5c28c0010881e51f1989c2d8e6c8d17564.json: -------------------------------------------------------------------------------- 1 | { 2 | "hex": "010000000186ef064c5f594cf1d7e38945a90ad2a8f8b591d68c7be489b3f4a498710cd8e8000000006a47304402207fb3b248528e525574f5144a3ae555f02178cc2636867eed336f93befc8ca1f202201267600dd0141217bd3d09821ec0b13f5a50139944813449fcd6f3ef330e6737012103f5eb09ef185377397cfe73eaea491602b84b5cb55ea4469a930d09f20d13e1deffffffff02804a5d05000000001976a914081522820f2ccef873e47ee62b31cb9e9267e72588ac706f9800000000001976a9148130f96080e598cc4e210067eb54403074aa1a8d88ac00000000", 3 | "txid": "08f36e44ac44b301dae9db829def3f5c28c0010881e51f1989c2d8e6c8d17564", 4 | "hash": "08f36e44ac44b301dae9db829def3f5c28c0010881e51f1989c2d8e6c8d17564", 5 | "size": 225, 6 | "vsize": 225, 7 | "version": 1, 8 | "locktime": 0, 9 | "vin": [ 10 | { 11 | "txid": "e8d80c7198a4f4b389e47b8cd691b5f8a8d20aa94589e3d7f14c595f4c06ef86", 12 | "vout": 0, 13 | "scriptSig": { 14 | "asm": "304402207fb3b248528e525574f5144a3ae555f02178cc2636867eed336f93befc8ca1f202201267600dd0141217bd3d09821ec0b13f5a50139944813449fcd6f3ef330e6737[ALL] 03f5eb09ef185377397cfe73eaea491602b84b5cb55ea4469a930d09f20d13e1de", 15 | "hex": "47304402207fb3b248528e525574f5144a3ae555f02178cc2636867eed336f93befc8ca1f202201267600dd0141217bd3d09821ec0b13f5a50139944813449fcd6f3ef330e6737012103f5eb09ef185377397cfe73eaea491602b84b5cb55ea4469a930d09f20d13e1de" 16 | }, 17 | "sequence": 4294967295 18 | } 19 | ], 20 | "vout": [ 21 | { 22 | "value": 0.90000000, 23 | "n": 0, 24 | "scriptPubKey": { 25 | "asm": "OP_DUP OP_HASH160 081522820f2ccef873e47ee62b31cb9e9267e725 OP_EQUALVERIFY OP_CHECKSIG", 26 | "hex": "76a914081522820f2ccef873e47ee62b31cb9e9267e72588ac", 27 | "reqSigs": 1, 28 | "type": "pubkeyhash", 29 | "addresses": [ 30 | "mgFh24STJjQxDiZaSeTBmMLuMzJwoFaMHh" 31 | ] 32 | } 33 | }, 34 | { 35 | "value": 0.09990000, 36 | "n": 1, 37 | "scriptPubKey": { 38 | "asm": "OP_DUP OP_HASH160 8130f96080e598cc4e210067eb54403074aa1a8d OP_EQUALVERIFY OP_CHECKSIG", 39 | "hex": "76a9148130f96080e598cc4e210067eb54403074aa1a8d88ac", 40 | "reqSigs": 1, 41 | "type": "pubkeyhash", 42 | "addresses": [ 43 | "msJ48aj11GcKuu3SK5nc5MPGrMxvE1oR5Y" 44 | ] 45 | } 46 | } 47 | ], 48 | "blockhash": "00000000163e47c532f07a08cd1828a346e2b521fcfc09235db3253bac50ec27", 49 | "confirmations": 638409, 50 | "time": 1431135554, 51 | "blocktime": 1431135554 52 | } -------------------------------------------------------------------------------- /spec/fixtures/tx/0c02993e80062535fda3d433b1e621d7553ce105a9a03aa70b39098ac1aaf4da.json: -------------------------------------------------------------------------------- 1 | { 2 | "hex": "0100000002e108306761ba736fe622594fa663b5e11a84b9ad89c42958f9e5bb6b29009282020000006b483045022100f1a3e4ec6a5939eeb046cfea51f55f576cf4a21290df1158453c56ca216643c902207ec9f93e57c98244fb6ab334af83c03ae96036a155fa6e30e268959d3fcea8b5012102174620b7c583dc471e04b604fc85f7ae19d161a070af7227ca03edfcb6c4dc4fffffffffe108306761ba736fe622594fa663b5e11a84b9ad89c42958f9e5bb6b29009282030000006b483045022100a8cf4a7eed5e8f0d8d11404ab395100440af34289c32d9d4671d0d6bf71065e0022021b9cbb13a7acc38457bb35028914ddcfbea3034c74ee87c01df5e36089bacb6012102174620b7c583dc471e04b604fc85f7ae19d161a070af7227ca03edfcb6c4dc4fffffffff0400000000000000000a6a084f4101000219460058020000000000001976a914b7218fe503cd18555255e5b13d4f07f3fd00d0c988ac58020000000000001976a914de20a2d5a57ee40ce9a4ce14cf06a6c2c6ffe29788ac504e0700000000001976a914de20a2d5a57ee40ce9a4ce14cf06a6c2c6ffe29788ac00000000", 3 | "txid": "0c02993e80062535fda3d433b1e621d7553ce105a9a03aa70b39098ac1aaf4da", 4 | "size": 427, 5 | "version": 1, 6 | "locktime": 0, 7 | "vin": [ 8 | { 9 | "txid": "829200296bbbe5f95829c489adb9841ae1b563a64f5922e66f73ba61673008e1", 10 | "vout": 2, 11 | "scriptSig": { 12 | "asm": "3045022100f1a3e4ec6a5939eeb046cfea51f55f576cf4a21290df1158453c56ca216643c902207ec9f93e57c98244fb6ab334af83c03ae96036a155fa6e30e268959d3fcea8b5[ALL] 02174620b7c583dc471e04b604fc85f7ae19d161a070af7227ca03edfcb6c4dc4f", 13 | "hex": "483045022100f1a3e4ec6a5939eeb046cfea51f55f576cf4a21290df1158453c56ca216643c902207ec9f93e57c98244fb6ab334af83c03ae96036a155fa6e30e268959d3fcea8b5012102174620b7c583dc471e04b604fc85f7ae19d161a070af7227ca03edfcb6c4dc4f" 14 | }, 15 | "sequence": 4294967295 16 | }, 17 | { 18 | "txid": "829200296bbbe5f95829c489adb9841ae1b563a64f5922e66f73ba61673008e1", 19 | "vout": 3, 20 | "scriptSig": { 21 | "asm": "3045022100a8cf4a7eed5e8f0d8d11404ab395100440af34289c32d9d4671d0d6bf71065e0022021b9cbb13a7acc38457bb35028914ddcfbea3034c74ee87c01df5e36089bacb6[ALL] 02174620b7c583dc471e04b604fc85f7ae19d161a070af7227ca03edfcb6c4dc4f", 22 | "hex": "483045022100a8cf4a7eed5e8f0d8d11404ab395100440af34289c32d9d4671d0d6bf71065e0022021b9cbb13a7acc38457bb35028914ddcfbea3034c74ee87c01df5e36089bacb6012102174620b7c583dc471e04b604fc85f7ae19d161a070af7227ca03edfcb6c4dc4f" 23 | }, 24 | "sequence": 4294967295 25 | } 26 | ], 27 | "vout": [ 28 | { 29 | "value": 0.00000000, 30 | "n": 0, 31 | "scriptPubKey": { 32 | "asm": "OP_RETURN 4f41010002194600", 33 | "hex": "6a084f41010002194600", 34 | "type": "nulldata" 35 | } 36 | }, 37 | { 38 | "value": 0.00000600, 39 | "n": 1, 40 | "scriptPubKey": { 41 | "asm": "OP_DUP OP_HASH160 b7218fe503cd18555255e5b13d4f07f3fd00d0c9 OP_EQUALVERIFY OP_CHECKSIG", 42 | "hex": "76a914b7218fe503cd18555255e5b13d4f07f3fd00d0c988ac", 43 | "reqSigs": 1, 44 | "type": "pubkeyhash", 45 | "addresses": [ 46 | "1HhJs3JgbiyxC8ktfi6nU4wTqVmrMtCVkG" 47 | ] 48 | } 49 | }, 50 | { 51 | "value": 0.00000600, 52 | "n": 2, 53 | "scriptPubKey": { 54 | "asm": "OP_DUP OP_HASH160 de20a2d5a57ee40ce9a4ce14cf06a6c2c6ffe297 OP_EQUALVERIFY OP_CHECKSIG", 55 | "hex": "76a914de20a2d5a57ee40ce9a4ce14cf06a6c2c6ffe29788ac", 56 | "reqSigs": 1, 57 | "type": "pubkeyhash", 58 | "addresses": [ 59 | "1MFW7BTwiNbAkmVz4SzAMQXboKYKGSzkq2" 60 | ] 61 | } 62 | }, 63 | { 64 | "value": 0.00478800, 65 | "n": 3, 66 | "scriptPubKey": { 67 | "asm": "OP_DUP OP_HASH160 de20a2d5a57ee40ce9a4ce14cf06a6c2c6ffe297 OP_EQUALVERIFY OP_CHECKSIG", 68 | "hex": "76a914de20a2d5a57ee40ce9a4ce14cf06a6c2c6ffe29788ac", 69 | "reqSigs": 1, 70 | "type": "pubkeyhash", 71 | "addresses": [ 72 | "1MFW7BTwiNbAkmVz4SzAMQXboKYKGSzkq2" 73 | ] 74 | } 75 | } 76 | ], 77 | "blockhash": "0000000000000000130fb1f46ce1c0338d62129d2e2da3c94aebe7759cea6a52", 78 | "confirmations": 78266, 79 | "time": 1434067385, 80 | "blocktime": 1434067385 81 | } -------------------------------------------------------------------------------- /spec/fixtures/tx/1206e4a462902b865b827e4e1638f4aa5d16723b26536f05507e4db17ca6f554.json: -------------------------------------------------------------------------------- 1 | { 2 | "hex": "0100000001e065787fe31b0f87a1e7fc3d36915bd2048c40e12198d3dfcdb01824953c8cf8010000006b483045022100a6752e02271f668aa0d72eabb2132738816b35d15cae5d5d293b32b0e5d22bf102202d653d019ec10aa3eef5be4cc2488908352b47beea91cb18465b16edcae4e2cf01210316cff587a01a2736d5e12e53551b18d73780b83c3bfb4fcf209c869b11b6415effffffff0220a10700000000001976a91438a6ebdf20cae2c9287ea014464042112ea3dbfd88acbc371004000000001976a914c01a7ca16b47be50cbdbc60724f701d52d75156688ac00000000", 3 | "txid": "1206e4a462902b865b827e4e1638f4aa5d16723b26536f05507e4db17ca6f554", 4 | "hash": "1206e4a462902b865b827e4e1638f4aa5d16723b26536f05507e4db17ca6f554", 5 | "size": 226, 6 | "vsize": 226, 7 | "version": 1, 8 | "locktime": 0, 9 | "vin": [ 10 | { 11 | "txid": "f88c3c952418b0cddfd39821e1408c04d25b91363dfce7a1870f1be37f7865e0", 12 | "vout": 1, 13 | "scriptSig": { 14 | "asm": "3045022100a6752e02271f668aa0d72eabb2132738816b35d15cae5d5d293b32b0e5d22bf102202d653d019ec10aa3eef5be4cc2488908352b47beea91cb18465b16edcae4e2cf[ALL] 0316cff587a01a2736d5e12e53551b18d73780b83c3bfb4fcf209c869b11b6415e", 15 | "hex": "483045022100a6752e02271f668aa0d72eabb2132738816b35d15cae5d5d293b32b0e5d22bf102202d653d019ec10aa3eef5be4cc2488908352b47beea91cb18465b16edcae4e2cf01210316cff587a01a2736d5e12e53551b18d73780b83c3bfb4fcf209c869b11b6415e" 16 | }, 17 | "sequence": 4294967295 18 | } 19 | ], 20 | "vout": [ 21 | { 22 | "value": 0.00500000, 23 | "n": 0, 24 | "scriptPubKey": { 25 | "asm": "OP_DUP OP_HASH160 38a6ebdf20cae2c9287ea014464042112ea3dbfd OP_EQUALVERIFY OP_CHECKSIG", 26 | "hex": "76a91438a6ebdf20cae2c9287ea014464042112ea3dbfd88ac", 27 | "reqSigs": 1, 28 | "type": "pubkeyhash", 29 | "addresses": [ 30 | "mkgW6hNYBctmqDtTTsTJrsf2Gh2NPtoCU4" 31 | ] 32 | } 33 | }, 34 | { 35 | "value": 0.68171708, 36 | "n": 1, 37 | "scriptPubKey": { 38 | "asm": "OP_DUP OP_HASH160 c01a7ca16b47be50cbdbc60724f701d52d751566 OP_EQUALVERIFY OP_CHECKSIG", 39 | "hex": "76a914c01a7ca16b47be50cbdbc60724f701d52d75156688ac", 40 | "reqSigs": 1, 41 | "type": "pubkeyhash", 42 | "addresses": [ 43 | "my2hmDuD9XjmtQWFu9HyyNAsE5WGSDBKpQ" 44 | ] 45 | } 46 | } 47 | ], 48 | "blockhash": "000000000000074452a3183fa27ae2353266b64189ba54ae127bdb3d1b73d7e8", 49 | "confirmations": 451854, 50 | "time": 1446197165, 51 | "blocktime": 1446197165 52 | } -------------------------------------------------------------------------------- /spec/fixtures/tx/19681a1596891ccb519056a7246bc3d3c3c02577e38df9539c99add7c0ae218e.json: -------------------------------------------------------------------------------- 1 | { 2 | "hex": "010000000149c2928fed19a378e61b7327f4aa200e8de82fc47a538fb9458be922501f6ec6000000006b483045022100a7f7e00c861b255030a9e98904cc82530f33ce42c004f0e895910a26a31e2a47022046aa4b5d8f54edcaea15c32b33199d05c1434c64de82ce86e74a237f21c6aa2b0121029b4d5e41a6cdc3625b3d971bba951d809dd6156dfb7c20dde35f05035c645d8cffffffff0280edda02000000001976a91465259d8fad44dddf5d137c6fe4f77f5281b255ae88aca0860100000000001976a914ce5807e32919e3e3df9806d03bd509207730e1a188ac00000000", 3 | "txid": "19681a1596891ccb519056a7246bc3d3c3c02577e38df9539c99add7c0ae218e", 4 | "hash": "19681a1596891ccb519056a7246bc3d3c3c02577e38df9539c99add7c0ae218e", 5 | "size": 226, 6 | "vsize": 226, 7 | "version": 1, 8 | "locktime": 0, 9 | "vin": [ 10 | { 11 | "txid": "c66e1f5022e98b45b98f537ac42fe88d0e20aaf427731be678a319ed8f92c249", 12 | "vout": 0, 13 | "scriptSig": { 14 | "asm": "3045022100a7f7e00c861b255030a9e98904cc82530f33ce42c004f0e895910a26a31e2a47022046aa4b5d8f54edcaea15c32b33199d05c1434c64de82ce86e74a237f21c6aa2b[ALL] 029b4d5e41a6cdc3625b3d971bba951d809dd6156dfb7c20dde35f05035c645d8c", 15 | "hex": "483045022100a7f7e00c861b255030a9e98904cc82530f33ce42c004f0e895910a26a31e2a47022046aa4b5d8f54edcaea15c32b33199d05c1434c64de82ce86e74a237f21c6aa2b0121029b4d5e41a6cdc3625b3d971bba951d809dd6156dfb7c20dde35f05035c645d8c" 16 | }, 17 | "sequence": 4294967295 18 | } 19 | ], 20 | "vout": [ 21 | { 22 | "value": 0.47902080, 23 | "n": 0, 24 | "scriptPubKey": { 25 | "asm": "OP_DUP OP_HASH160 65259d8fad44dddf5d137c6fe4f77f5281b255ae OP_EQUALVERIFY OP_CHECKSIG", 26 | "hex": "76a91465259d8fad44dddf5d137c6fe4f77f5281b255ae88ac", 27 | "reqSigs": 1, 28 | "type": "pubkeyhash", 29 | "addresses": [ 30 | "mpjmbzpujPG4CPPKEjuvkSMi895AKmMHQo" 31 | ] 32 | } 33 | }, 34 | { 35 | "value": 0.00100000, 36 | "n": 1, 37 | "scriptPubKey": { 38 | "asm": "OP_DUP OP_HASH160 ce5807e32919e3e3df9806d03bd509207730e1a1 OP_EQUALVERIFY OP_CHECKSIG", 39 | "hex": "76a914ce5807e32919e3e3df9806d03bd509207730e1a188ac", 40 | "reqSigs": 1, 41 | "type": "pubkeyhash", 42 | "addresses": [ 43 | "mzKzx4NheRX3PmqprDnD8UUoXjTX7RqVeL" 44 | ] 45 | } 46 | } 47 | ], 48 | "blockhash": "0000000000022c774457f2e58b0e49fd0d568707e989fabd813a75e4c5540009", 49 | "confirmations": 134763, 50 | "time": 1469349394, 51 | "blocktime": 1469349394 52 | } -------------------------------------------------------------------------------- /spec/fixtures/tx/21b093ec41244898a50e1f97cb80fd98d7714c7235e0a4a30d7d0c6fb6a6ce8a.json: -------------------------------------------------------------------------------- 1 | { 2 | "hex": "010000000108fcc35a4b46b36be2b07b5dc06bb635956597d5ea79b028a0a2f70ae6cf6fd6010000006a4730440220325a1bc5fe119e87f0b15e7f542107e1e839f3f8b241a91eebb33ee74612d65502207df2580d7b7105f4353e730c2a6df2e89c9cb77ad9fc9f6e066f444dca82e298012103996ffca62815a75befba6b85ef0c5e03bc3548db16c2b0642225417c94a80cbfffffffff02e33e0500000000001976a914fcefa84d15d0bf818b020f0cdaf99f4029c15ce788aca0860100000000001976a91424b3d405bc60bd9628691fe28bb00f6800e1480688ac00000000", 3 | "txid": "21b093ec41244898a50e1f97cb80fd98d7714c7235e0a4a30d7d0c6fb6a6ce8a", 4 | "size": 225, 5 | "version": 1, 6 | "locktime": 0, 7 | "vin": [ 8 | { 9 | "txid": "d66fcfe60af7a2a028b079ead597659535b66bc05d7bb0e26bb3464b5ac3fc08", 10 | "vout": 1, 11 | "scriptSig": { 12 | "asm": "30440220325a1bc5fe119e87f0b15e7f542107e1e839f3f8b241a91eebb33ee74612d65502207df2580d7b7105f4353e730c2a6df2e89c9cb77ad9fc9f6e066f444dca82e298[ALL] 03996ffca62815a75befba6b85ef0c5e03bc3548db16c2b0642225417c94a80cbf", 13 | "hex": "4730440220325a1bc5fe119e87f0b15e7f542107e1e839f3f8b241a91eebb33ee74612d65502207df2580d7b7105f4353e730c2a6df2e89c9cb77ad9fc9f6e066f444dca82e298012103996ffca62815a75befba6b85ef0c5e03bc3548db16c2b0642225417c94a80cbf" 14 | }, 15 | "sequence": 4294967295 16 | } 17 | ], 18 | "vout": [ 19 | { 20 | "value": 0.00343779, 21 | "n": 0, 22 | "scriptPubKey": { 23 | "asm": "OP_DUP OP_HASH160 fcefa84d15d0bf818b020f0cdaf99f4029c15ce7 OP_EQUALVERIFY OP_CHECKSIG", 24 | "hex": "76a914fcefa84d15d0bf818b020f0cdaf99f4029c15ce788ac", 25 | "reqSigs": 1, 26 | "type": "pubkeyhash", 27 | "addresses": [ 28 | "1Q4QP2oqRKCTAhBwKjEm6B56KvjRw2fbMi" 29 | ] 30 | } 31 | }, 32 | { 33 | "value": 0.00100000, 34 | "n": 1, 35 | "scriptPubKey": { 36 | "asm": "OP_DUP OP_HASH160 24b3d405bc60bd9628691fe28bb00f6800e14806 OP_EQUALVERIFY OP_CHECKSIG", 37 | "hex": "76a91424b3d405bc60bd9628691fe28bb00f6800e1480688ac", 38 | "reqSigs": 1, 39 | "type": "pubkeyhash", 40 | "addresses": [ 41 | "14M4kbAtn71P1nnNYuhBDFTNYxa19t1XP6" 42 | ] 43 | } 44 | } 45 | ], 46 | "blockhash": "000000000000000012717446e179838bd876a8bd92297b480bd05a0845463338", 47 | "confirmations": 78385, 48 | "time": 1433990385, 49 | "blocktime": 1433990385 50 | } -------------------------------------------------------------------------------- /spec/fixtures/tx/2d1eb76559eaba959250bd264583714b835b7190ff2c7eba322e659cb842c422.json: -------------------------------------------------------------------------------- 1 | { 2 | "hex": "01000000011c963366a33ab3df14243e22ed1a893cca3f5d315b4b7b5755503c96a4f1dbc4000000006a4730440220305cb233b6996d57d7eca72d1c571dbc867aa7f1f7444ad980cf028e7994bc74022040e31c3d6c2224949ed2e43bbc10c04ede6ac5cf7a33d3cfca6862096437742b012103e96fd7e921b64954bbff1eec73b0331c8c9d27aa70b0520eb36b50019a978f1cffffffff0206f37847000000001976a914d3c96dc04a62f488a3f1b588f74af136469c6fca88aca0860100000000001976a914c70decc68bd86b6a8ae3a13b077af1a7304bdd5b88ac00000000", 3 | "txid": "2d1eb76559eaba959250bd264583714b835b7190ff2c7eba322e659cb842c422", 4 | "hash": "2d1eb76559eaba959250bd264583714b835b7190ff2c7eba322e659cb842c422", 5 | "size": 225, 6 | "vsize": 225, 7 | "version": 1, 8 | "locktime": 0, 9 | "vin": [ 10 | { 11 | "txid": "c4dbf1a4963c5055577b4b5b315d3fca3c891aed223e2414dfb33aa36633961c", 12 | "vout": 0, 13 | "scriptSig": { 14 | "asm": "30440220305cb233b6996d57d7eca72d1c571dbc867aa7f1f7444ad980cf028e7994bc74022040e31c3d6c2224949ed2e43bbc10c04ede6ac5cf7a33d3cfca6862096437742b[ALL] 03e96fd7e921b64954bbff1eec73b0331c8c9d27aa70b0520eb36b50019a978f1c", 15 | "hex": "4730440220305cb233b6996d57d7eca72d1c571dbc867aa7f1f7444ad980cf028e7994bc74022040e31c3d6c2224949ed2e43bbc10c04ede6ac5cf7a33d3cfca6862096437742b012103e96fd7e921b64954bbff1eec73b0331c8c9d27aa70b0520eb36b50019a978f1c" 16 | }, 17 | "sequence": 4294967295 18 | } 19 | ], 20 | "vout": [ 21 | { 22 | "value": 11.99108870, 23 | "n": 0, 24 | "scriptPubKey": { 25 | "asm": "OP_DUP OP_HASH160 d3c96dc04a62f488a3f1b588f74af136469c6fca OP_EQUALVERIFY OP_CHECKSIG", 26 | "hex": "76a914d3c96dc04a62f488a3f1b588f74af136469c6fca88ac", 27 | "reqSigs": 1, 28 | "type": "pubkeyhash", 29 | "addresses": [ 30 | "mzpnB3S31yZRDJFLmTd1ZsWJTtzymL7HsA" 31 | ] 32 | } 33 | }, 34 | { 35 | "value": 0.00100000, 36 | "n": 1, 37 | "scriptPubKey": { 38 | "asm": "OP_DUP OP_HASH160 c70decc68bd86b6a8ae3a13b077af1a7304bdd5b OP_EQUALVERIFY OP_CHECKSIG", 39 | "hex": "76a914c70decc68bd86b6a8ae3a13b077af1a7304bdd5b88ac", 40 | "reqSigs": 1, 41 | "type": "pubkeyhash", 42 | "addresses": [ 43 | "myfTSkKCbvNqf231xMR5sVCBTi8VvqfR4y" 44 | ] 45 | } 46 | } 47 | ], 48 | "blockhash": "00000000000511f59c43a46be7662179135d0a8102240b0f8d737405a6ad4a62", 49 | "confirmations": 386413, 50 | "time": 1453343236, 51 | "blocktime": 1453343236 52 | } -------------------------------------------------------------------------------- /spec/fixtures/tx/2ef6aaf051229ff755a137a51466b54da6d8c87d17130bca8a879e9e64172ebd.json: -------------------------------------------------------------------------------- 1 | { 2 | "hex": "0100000002dd6cee22d848a609df2d316112ca26b569c97c189400ad6f01046d65aa7b5f52000000006a473044022021806c9f0d888862cb6e8eb3952c48499fe4c0bedc4fb3ef20743c418109a23b02206249fceeeb4c2f496a3a48b57087f97e540af465f8b9328919f6f536ba5346ed012103e46fdcbf2062598a221c0e34d0505c270fb77c2c305c40ef0919f8efc0c7f959ffffffffdd6cee22d848a609df2d316112ca26b569c97c189400ad6f01046d65aa7b5f52020000006b483045022100981c9757ddf1280a47e9274fae9ff331a1a5b750c7f0c2a18de0b18413a3121e0220395d8baeb7802f9f3947152098442144946987d6be4065a0febe20bc20ca55df012103e46fdcbf2062598a221c0e34d0505c270fb77c2c305c40ef0919f8efc0c7f959ffffffff0400000000000000000b6a094f4101000263ac4d0058020000000000001976a914e9ac589641f17a2286631c24d6d2d00b8c959eb588ac58020000000000001976a91438a6ebdf20cae2c9287ea014464042112ea3dbfd88ac504e0700000000001976a91438a6ebdf20cae2c9287ea014464042112ea3dbfd88ac00000000", 3 | "txid": "2ef6aaf051229ff755a137a51466b54da6d8c87d17130bca8a879e9e64172ebd", 4 | "hash": "2ef6aaf051229ff755a137a51466b54da6d8c87d17130bca8a879e9e64172ebd", 5 | "size": 427, 6 | "vsize": 427, 7 | "version": 1, 8 | "locktime": 0, 9 | "vin": [ 10 | { 11 | "txid": "525f7baa656d04016fad0094187cc969b526ca1261312ddf09a648d822ee6cdd", 12 | "vout": 0, 13 | "scriptSig": { 14 | "asm": "3044022021806c9f0d888862cb6e8eb3952c48499fe4c0bedc4fb3ef20743c418109a23b02206249fceeeb4c2f496a3a48b57087f97e540af465f8b9328919f6f536ba5346ed[ALL] 03e46fdcbf2062598a221c0e34d0505c270fb77c2c305c40ef0919f8efc0c7f959", 15 | "hex": "473044022021806c9f0d888862cb6e8eb3952c48499fe4c0bedc4fb3ef20743c418109a23b02206249fceeeb4c2f496a3a48b57087f97e540af465f8b9328919f6f536ba5346ed012103e46fdcbf2062598a221c0e34d0505c270fb77c2c305c40ef0919f8efc0c7f959" 16 | }, 17 | "sequence": 4294967295 18 | }, 19 | { 20 | "txid": "525f7baa656d04016fad0094187cc969b526ca1261312ddf09a648d822ee6cdd", 21 | "vout": 2, 22 | "scriptSig": { 23 | "asm": "3045022100981c9757ddf1280a47e9274fae9ff331a1a5b750c7f0c2a18de0b18413a3121e0220395d8baeb7802f9f3947152098442144946987d6be4065a0febe20bc20ca55df[ALL] 03e46fdcbf2062598a221c0e34d0505c270fb77c2c305c40ef0919f8efc0c7f959", 24 | "hex": "483045022100981c9757ddf1280a47e9274fae9ff331a1a5b750c7f0c2a18de0b18413a3121e0220395d8baeb7802f9f3947152098442144946987d6be4065a0febe20bc20ca55df012103e46fdcbf2062598a221c0e34d0505c270fb77c2c305c40ef0919f8efc0c7f959" 25 | }, 26 | "sequence": 4294967295 27 | } 28 | ], 29 | "vout": [ 30 | { 31 | "value": 0.00000000, 32 | "n": 0, 33 | "scriptPubKey": { 34 | "asm": "OP_RETURN 4f4101000263ac4d00", 35 | "hex": "6a094f4101000263ac4d00", 36 | "type": "nulldata" 37 | } 38 | }, 39 | { 40 | "value": 0.00000600, 41 | "n": 1, 42 | "scriptPubKey": { 43 | "asm": "OP_DUP OP_HASH160 e9ac589641f17a2286631c24d6d2d00b8c959eb5 OP_EQUALVERIFY OP_CHECKSIG", 44 | "hex": "76a914e9ac589641f17a2286631c24d6d2d00b8c959eb588ac", 45 | "reqSigs": 1, 46 | "type": "pubkeyhash", 47 | "addresses": [ 48 | "n2pWCZdqdNExDzJ6Rbb1mGor1fFqMj7t1w" 49 | ] 50 | } 51 | }, 52 | { 53 | "value": 0.00000600, 54 | "n": 2, 55 | "scriptPubKey": { 56 | "asm": "OP_DUP OP_HASH160 38a6ebdf20cae2c9287ea014464042112ea3dbfd OP_EQUALVERIFY OP_CHECKSIG", 57 | "hex": "76a91438a6ebdf20cae2c9287ea014464042112ea3dbfd88ac", 58 | "reqSigs": 1, 59 | "type": "pubkeyhash", 60 | "addresses": [ 61 | "mkgW6hNYBctmqDtTTsTJrsf2Gh2NPtoCU4" 62 | ] 63 | } 64 | }, 65 | { 66 | "value": 0.00478800, 67 | "n": 3, 68 | "scriptPubKey": { 69 | "asm": "OP_DUP OP_HASH160 38a6ebdf20cae2c9287ea014464042112ea3dbfd OP_EQUALVERIFY OP_CHECKSIG", 70 | "hex": "76a91438a6ebdf20cae2c9287ea014464042112ea3dbfd88ac", 71 | "reqSigs": 1, 72 | "type": "pubkeyhash", 73 | "addresses": [ 74 | "mkgW6hNYBctmqDtTTsTJrsf2Gh2NPtoCU4" 75 | ] 76 | } 77 | } 78 | ], 79 | "blockhash": "00000000002f539f39793417aadc9d025e06144cf7fd835b641695c4de06a440", 80 | "confirmations": 427140, 81 | "time": 1448004331, 82 | "blocktime": 1448004331 83 | } -------------------------------------------------------------------------------- /spec/fixtures/tx/308ea73b45bef1428acb41f996543d6ebd534dca8f5de965e7f00eae084aaa5c.json: -------------------------------------------------------------------------------- 1 | { 2 | "hex": "010000000122c442b89c652e32ba7e2cff90715b834b71834526bd509295baea5965b71e2d000000006b48304502210095b72684aa4a8355f4057d476ac222a683220fa0087ca99d2efcea0149ff1287022014c77b8f9e0d0f457792f562a09517d752cde5c7d7b941c5ad33a95fe471b66b012103e96fd7e921b64954bbff1eec73b0331c8c9d27aa70b0520eb36b50019a978f1cffffffff0256457747000000001976a914d3c96dc04a62f488a3f1b588f74af136469c6fca88aca0860100000000001976a9147d8dd16cc3413a64a9964c91cb0ee9358ab1dff688ac00000000", 3 | "txid": "308ea73b45bef1428acb41f996543d6ebd534dca8f5de965e7f00eae084aaa5c", 4 | "hash": "308ea73b45bef1428acb41f996543d6ebd534dca8f5de965e7f00eae084aaa5c", 5 | "size": 226, 6 | "vsize": 226, 7 | "version": 1, 8 | "locktime": 0, 9 | "vin": [ 10 | { 11 | "txid": "2d1eb76559eaba959250bd264583714b835b7190ff2c7eba322e659cb842c422", 12 | "vout": 0, 13 | "scriptSig": { 14 | "asm": "304502210095b72684aa4a8355f4057d476ac222a683220fa0087ca99d2efcea0149ff1287022014c77b8f9e0d0f457792f562a09517d752cde5c7d7b941c5ad33a95fe471b66b[ALL] 03e96fd7e921b64954bbff1eec73b0331c8c9d27aa70b0520eb36b50019a978f1c", 15 | "hex": "48304502210095b72684aa4a8355f4057d476ac222a683220fa0087ca99d2efcea0149ff1287022014c77b8f9e0d0f457792f562a09517d752cde5c7d7b941c5ad33a95fe471b66b012103e96fd7e921b64954bbff1eec73b0331c8c9d27aa70b0520eb36b50019a978f1c" 16 | }, 17 | "sequence": 4294967295 18 | } 19 | ], 20 | "vout": [ 21 | { 22 | "value": 11.98998870, 23 | "n": 0, 24 | "scriptPubKey": { 25 | "asm": "OP_DUP OP_HASH160 d3c96dc04a62f488a3f1b588f74af136469c6fca OP_EQUALVERIFY OP_CHECKSIG", 26 | "hex": "76a914d3c96dc04a62f488a3f1b588f74af136469c6fca88ac", 27 | "reqSigs": 1, 28 | "type": "pubkeyhash", 29 | "addresses": [ 30 | "mzpnB3S31yZRDJFLmTd1ZsWJTtzymL7HsA" 31 | ] 32 | } 33 | }, 34 | { 35 | "value": 0.00100000, 36 | "n": 1, 37 | "scriptPubKey": { 38 | "asm": "OP_DUP OP_HASH160 7d8dd16cc3413a64a9964c91cb0ee9358ab1dff6 OP_EQUALVERIFY OP_CHECKSIG", 39 | "hex": "76a9147d8dd16cc3413a64a9964c91cb0ee9358ab1dff688ac", 40 | "reqSigs": 1, 41 | "type": "pubkeyhash", 42 | "addresses": [ 43 | "mrxpeizRrF8ymNx5FrvcGGZVecZjtUFVP3" 44 | ] 45 | } 46 | } 47 | ], 48 | "blockhash": "000000000004b69c802bd00c5f7b49a6808fe8a4cb2d95a3906bd028e6a89af4", 49 | "confirmations": 386401, 50 | "time": 1453345274, 51 | "blocktime": 1453345274 52 | } -------------------------------------------------------------------------------- /spec/fixtures/tx/370c210cffdff21b0e59560f11308faabb985357bc57778ebb11ddbfb0d2b7ba.json: -------------------------------------------------------------------------------- 1 | { 2 | "hex": "01000000011c963366a33ab3df14243e22ed1a893cca3f5d315b4b7b5755503c96a4f1dbc4010000006b48304502210089b69fa58bf02bffa9399aa4328e3f9816d4041f4b2a0b8e00c0d1ad37c5cfbe022029423551060bedb943f5ff1ff1c4e91cfc7fdbc21d5035c580cfc4ef4b2156810121033917dfab0a99833380034fa77159a812feb8333382e53075b88dcbebfde7cc49ffffffff0358020000000000001976a914a938dad89bbd964cbaf5d9059e0bda1d900ce08388ac0000000000000000216a1f4f41010001e80717753d68747470733a2f2f676f6f2e676c2f755667737434385d0100000000001976a914a938dad89bbd964cbaf5d9059e0bda1d900ce08388ac00000000", 3 | "txid": "370c210cffdff21b0e59560f11308faabb985357bc57778ebb11ddbfb0d2b7ba", 4 | "hash": "370c210cffdff21b0e59560f11308faabb985357bc57778ebb11ddbfb0d2b7ba", 5 | "size": 268, 6 | "vsize": 268, 7 | "version": 1, 8 | "locktime": 0, 9 | "vin": [ 10 | { 11 | "txid": "c4dbf1a4963c5055577b4b5b315d3fca3c891aed223e2414dfb33aa36633961c", 12 | "vout": 1, 13 | "scriptSig": { 14 | "asm": "304502210089b69fa58bf02bffa9399aa4328e3f9816d4041f4b2a0b8e00c0d1ad37c5cfbe022029423551060bedb943f5ff1ff1c4e91cfc7fdbc21d5035c580cfc4ef4b215681[ALL] 033917dfab0a99833380034fa77159a812feb8333382e53075b88dcbebfde7cc49", 15 | "hex": "48304502210089b69fa58bf02bffa9399aa4328e3f9816d4041f4b2a0b8e00c0d1ad37c5cfbe022029423551060bedb943f5ff1ff1c4e91cfc7fdbc21d5035c580cfc4ef4b2156810121033917dfab0a99833380034fa77159a812feb8333382e53075b88dcbebfde7cc49" 16 | }, 17 | "sequence": 4294967295 18 | } 19 | ], 20 | "vout": [ 21 | { 22 | "value": 0.00000600, 23 | "n": 0, 24 | "scriptPubKey": { 25 | "asm": "OP_DUP OP_HASH160 a938dad89bbd964cbaf5d9059e0bda1d900ce083 OP_EQUALVERIFY OP_CHECKSIG", 26 | "hex": "76a914a938dad89bbd964cbaf5d9059e0bda1d900ce08388ac", 27 | "reqSigs": 1, 28 | "type": "pubkeyhash", 29 | "addresses": [ 30 | "mvwibpSmnXw7pG3AjW5Tt9Ufe5GL2rTJd1" 31 | ] 32 | } 33 | }, 34 | { 35 | "value": 0.00000000, 36 | "n": 1, 37 | "scriptPubKey": { 38 | "asm": "OP_RETURN 4f41010001e80717753d68747470733a2f2f676f6f2e676c2f755667737434", 39 | "hex": "6a1f4f41010001e80717753d68747470733a2f2f676f6f2e676c2f755667737434", 40 | "type": "nulldata" 41 | } 42 | }, 43 | { 44 | "value": 0.00089400, 45 | "n": 2, 46 | "scriptPubKey": { 47 | "asm": "OP_DUP OP_HASH160 a938dad89bbd964cbaf5d9059e0bda1d900ce083 OP_EQUALVERIFY OP_CHECKSIG", 48 | "hex": "76a914a938dad89bbd964cbaf5d9059e0bda1d900ce08388ac", 49 | "reqSigs": 1, 50 | "type": "pubkeyhash", 51 | "addresses": [ 52 | "mvwibpSmnXw7pG3AjW5Tt9Ufe5GL2rTJd1" 53 | ] 54 | } 55 | } 56 | ], 57 | "blockhash": "00000000000511f59c43a46be7662179135d0a8102240b0f8d737405a6ad4a62", 58 | "confirmations": 386413, 59 | "time": 1453343236, 60 | "blocktime": 1453343236 61 | } -------------------------------------------------------------------------------- /spec/fixtures/tx/3fba8bfb157ae29c293d5bd65c178fec169a87f880e2e62537fcce26612a6aa3.json: -------------------------------------------------------------------------------- 1 | { 2 | "hex": "01000000022a06e3f9bcf491143d23b1446585778fd316d88908b35f5faf86981b803e8764020000006a47304402206f03f9c51d68af384411a17de35df3cfe20ba6fa0546a17a7651f1e2ea72ae43022045358a7d7c7637d964b367cea526bd63f3817a8729f221f1856b1d992ca71b33012102544912ce55bcab484f5d2ba0f54c420160f37c3978b68b0fa67cc92417739b3effffffff2a06e3f9bcf491143d23b1446585778fd316d88908b35f5faf86981b803e8764030000006b483045022100bb6f5d76f7d61c068dcd8fc077a3afe85e890f41442368212a36a6acfeed25fb0220337a5fa68e676ff5231c7c33ba31119f2eb77935795f078ddb5489f37725b9e2012102544912ce55bcab484f5d2ba0f54c420160f37c3978b68b0fa67cc92417739b3effffffff0400000000000000000a6a084f4101000201020058020000000000001976a91424b3d405bc60bd9628691fe28bb00f6800e1480688ac58020000000000001976a914b7218fe503cd18555255e5b13d4f07f3fd00d0c988ac78310100000000001976a914b7218fe503cd18555255e5b13d4f07f3fd00d0c988ac00000000", 3 | "txid": "3fba8bfb157ae29c293d5bd65c178fec169a87f880e2e62537fcce26612a6aa3", 4 | "size": 426, 5 | "version": 1, 6 | "locktime": 0, 7 | "vin": [ 8 | { 9 | "txid": "64873e801b9886af5f5fb30889d816d38f77856544b1233d1491f4bcf9e3062a", 10 | "vout": 2, 11 | "scriptSig": { 12 | "asm": "304402206f03f9c51d68af384411a17de35df3cfe20ba6fa0546a17a7651f1e2ea72ae43022045358a7d7c7637d964b367cea526bd63f3817a8729f221f1856b1d992ca71b33[ALL] 02544912ce55bcab484f5d2ba0f54c420160f37c3978b68b0fa67cc92417739b3e", 13 | "hex": "47304402206f03f9c51d68af384411a17de35df3cfe20ba6fa0546a17a7651f1e2ea72ae43022045358a7d7c7637d964b367cea526bd63f3817a8729f221f1856b1d992ca71b33012102544912ce55bcab484f5d2ba0f54c420160f37c3978b68b0fa67cc92417739b3e" 14 | }, 15 | "sequence": 4294967295 16 | }, 17 | { 18 | "txid": "64873e801b9886af5f5fb30889d816d38f77856544b1233d1491f4bcf9e3062a", 19 | "vout": 3, 20 | "scriptSig": { 21 | "asm": "3045022100bb6f5d76f7d61c068dcd8fc077a3afe85e890f41442368212a36a6acfeed25fb0220337a5fa68e676ff5231c7c33ba31119f2eb77935795f078ddb5489f37725b9e2[ALL] 02544912ce55bcab484f5d2ba0f54c420160f37c3978b68b0fa67cc92417739b3e", 22 | "hex": "483045022100bb6f5d76f7d61c068dcd8fc077a3afe85e890f41442368212a36a6acfeed25fb0220337a5fa68e676ff5231c7c33ba31119f2eb77935795f078ddb5489f37725b9e2012102544912ce55bcab484f5d2ba0f54c420160f37c3978b68b0fa67cc92417739b3e" 23 | }, 24 | "sequence": 4294967295 25 | } 26 | ], 27 | "vout": [ 28 | { 29 | "value": 0.00000000, 30 | "n": 0, 31 | "scriptPubKey": { 32 | "asm": "OP_RETURN 4f41010002010200", 33 | "hex": "6a084f41010002010200", 34 | "type": "nulldata" 35 | } 36 | }, 37 | { 38 | "value": 0.00000600, 39 | "n": 1, 40 | "scriptPubKey": { 41 | "asm": "OP_DUP OP_HASH160 24b3d405bc60bd9628691fe28bb00f6800e14806 OP_EQUALVERIFY OP_CHECKSIG", 42 | "hex": "76a91424b3d405bc60bd9628691fe28bb00f6800e1480688ac", 43 | "reqSigs": 1, 44 | "type": "pubkeyhash", 45 | "addresses": [ 46 | "14M4kbAtn71P1nnNYuhBDFTNYxa19t1XP6" 47 | ] 48 | } 49 | }, 50 | { 51 | "value": 0.00000600, 52 | "n": 2, 53 | "scriptPubKey": { 54 | "asm": "OP_DUP OP_HASH160 b7218fe503cd18555255e5b13d4f07f3fd00d0c9 OP_EQUALVERIFY OP_CHECKSIG", 55 | "hex": "76a914b7218fe503cd18555255e5b13d4f07f3fd00d0c988ac", 56 | "reqSigs": 1, 57 | "type": "pubkeyhash", 58 | "addresses": [ 59 | "1HhJs3JgbiyxC8ktfi6nU4wTqVmrMtCVkG" 60 | ] 61 | } 62 | }, 63 | { 64 | "value": 0.00078200, 65 | "n": 3, 66 | "scriptPubKey": { 67 | "asm": "OP_DUP OP_HASH160 b7218fe503cd18555255e5b13d4f07f3fd00d0c9 OP_EQUALVERIFY OP_CHECKSIG", 68 | "hex": "76a914b7218fe503cd18555255e5b13d4f07f3fd00d0c988ac", 69 | "reqSigs": 1, 70 | "type": "pubkeyhash", 71 | "addresses": [ 72 | "1HhJs3JgbiyxC8ktfi6nU4wTqVmrMtCVkG" 73 | ] 74 | } 75 | } 76 | ], 77 | "blockhash": "000000000000000004d41c8d7a428053fa8168dd0002377a67619a0a98a21080", 78 | "confirmations": 78336, 79 | "time": 1434018489, 80 | "blocktime": 1434018489 81 | } -------------------------------------------------------------------------------- /spec/fixtures/tx/43a3852b2cf2cef30720933c834edfabdb05cdd73a11583fd0d2f02cff8ad8d6.json: -------------------------------------------------------------------------------- 1 | { 2 | "hex": "01000000013ec08e09fc2f1dd5af32950ffc23f598d487f38684932183c3c22025e3f06bd7020000006a473044022017b2301284b7df7184f82f9324dbe8ff4ce8f4296fc88879a68bbd74ed18d4020220766894d515acf4bae87973897ce2eecadd4b4a2e1b54c571f2548e5f69c68bdc01210292ee82d9add0512294723f2c363aee24efdeb3f258cdaf5118a4fcf5263e92c9ffffffff03580200000000000017a914c590a1c93975aec75157e33ad904a74d2934e9d58700000000000000000b6a094f41010001d086030090b00000000000001976a91446c2fbfbecc99a63148fa076de58cf29b0bcf0b088ac00000000", 3 | "txid": "43a3852b2cf2cef30720933c834edfabdb05cdd73a11583fd0d2f02cff8ad8d6", 4 | "hash": "43a3852b2cf2cef30720933c834edfabdb05cdd73a11583fd0d2f02cff8ad8d6", 5 | "size": 243, 6 | "vsize": 243, 7 | "version": 1, 8 | "locktime": 0, 9 | "vin": [ 10 | { 11 | "txid": "d76bf0e32520c2c38321938486f387d498f523fc0f9532afd51d2ffc098ec03e", 12 | "vout": 2, 13 | "scriptSig": { 14 | "asm": "3044022017b2301284b7df7184f82f9324dbe8ff4ce8f4296fc88879a68bbd74ed18d4020220766894d515acf4bae87973897ce2eecadd4b4a2e1b54c571f2548e5f69c68bdc[ALL] 0292ee82d9add0512294723f2c363aee24efdeb3f258cdaf5118a4fcf5263e92c9", 15 | "hex": "473044022017b2301284b7df7184f82f9324dbe8ff4ce8f4296fc88879a68bbd74ed18d4020220766894d515acf4bae87973897ce2eecadd4b4a2e1b54c571f2548e5f69c68bdc01210292ee82d9add0512294723f2c363aee24efdeb3f258cdaf5118a4fcf5263e92c9" 16 | }, 17 | "sequence": 4294967295 18 | } 19 | ], 20 | "vout": [ 21 | { 22 | "value": 0.00000600, 23 | "n": 0, 24 | "scriptPubKey": { 25 | "asm": "OP_HASH160 c590a1c93975aec75157e33ad904a74d2934e9d5 OP_EQUAL", 26 | "hex": "a914c590a1c93975aec75157e33ad904a74d2934e9d587", 27 | "reqSigs": 1, 28 | "type": "scripthash", 29 | "addresses": [ 30 | "2NBFrNHDikgwjHoMmgJZdsNdB92PpotmaHk" 31 | ] 32 | } 33 | }, 34 | { 35 | "value": 0.00000000, 36 | "n": 1, 37 | "scriptPubKey": { 38 | "asm": "OP_RETURN 4f41010001d0860300", 39 | "hex": "6a094f41010001d0860300", 40 | "type": "nulldata" 41 | } 42 | }, 43 | { 44 | "value": 0.00045200, 45 | "n": 2, 46 | "scriptPubKey": { 47 | "asm": "OP_DUP OP_HASH160 46c2fbfbecc99a63148fa076de58cf29b0bcf0b0 OP_EQUALVERIFY OP_CHECKSIG", 48 | "hex": "76a91446c2fbfbecc99a63148fa076de58cf29b0bcf0b088ac", 49 | "reqSigs": 1, 50 | "type": "pubkeyhash", 51 | "addresses": [ 52 | "mmy7BEH1SUGAeSVUR22pt5hPaejo2645F1" 53 | ] 54 | } 55 | } 56 | ], 57 | "blockhash": "00000000000002c1a26576375f85f1ca86bc4902a1370091d6713dcad1ddc443", 58 | "confirmations": 63544, 59 | "time": 1475761239, 60 | "blocktime": 1475761239 61 | } -------------------------------------------------------------------------------- /spec/fixtures/tx/44bf414521d4a0deb60dada4ac0bd9823286d8269cb9c074add3a6844bfa42df.json: -------------------------------------------------------------------------------- 1 | { 2 | "hex": "0100000002daf4aac18a09390ba73aa0a905e13c55d721e6b133d4a3fd352506803e99020c010000006a473044022005cc3cb8b9836bffeda462246f04568bff00b54b4c39cc958aba45c322caa6e102206c6611b89b958e05f3a6e0b274078145e907d4ecd7b8e3c31717efb918846ed3012102544912ce55bcab484f5d2ba0f54c420160f37c3978b68b0fa67cc92417739b3effffffffbbc88ecebb508c2fccd29d9f0e76d059bb532c208531ea33c0053013fefdf597030000006a47304402200e63bef956ee05751faf4e2d7dd82d626905ee34d9652d551557b222045a0a8c02201610d427d9a2dfdbbb238d2769a14803549c312e0aef06620fef5f421c8698ab012102544912ce55bcab484f5d2ba0f54c420160f37c3978b68b0fa67cc92417739b3effffffff0400000000000000000a6a084f4101000201180058020000000000001976a91424b3d405bc60bd9628691fe28bb00f6800e1480688ac58020000000000001976a914b7218fe503cd18555255e5b13d4f07f3fd00d0c988aca8de0000000000001976a914b7218fe503cd18555255e5b13d4f07f3fd00d0c988ac00000000", 3 | "txid": "44bf414521d4a0deb60dada4ac0bd9823286d8269cb9c074add3a6844bfa42df", 4 | "size": 425, 5 | "version": 1, 6 | "locktime": 0, 7 | "vin": [ 8 | { 9 | "txid": "0c02993e80062535fda3d433b1e621d7553ce105a9a03aa70b39098ac1aaf4da", 10 | "vout": 1, 11 | "scriptSig": { 12 | "asm": "3044022005cc3cb8b9836bffeda462246f04568bff00b54b4c39cc958aba45c322caa6e102206c6611b89b958e05f3a6e0b274078145e907d4ecd7b8e3c31717efb918846ed3[ALL] 02544912ce55bcab484f5d2ba0f54c420160f37c3978b68b0fa67cc92417739b3e", 13 | "hex": "473044022005cc3cb8b9836bffeda462246f04568bff00b54b4c39cc958aba45c322caa6e102206c6611b89b958e05f3a6e0b274078145e907d4ecd7b8e3c31717efb918846ed3012102544912ce55bcab484f5d2ba0f54c420160f37c3978b68b0fa67cc92417739b3e" 14 | }, 15 | "sequence": 4294967295 16 | }, 17 | { 18 | "txid": "97f5fdfe133005c033ea3185202c53bb59d0760e9f9dd2cc2f8c50bbce8ec8bb", 19 | "vout": 3, 20 | "scriptSig": { 21 | "asm": "304402200e63bef956ee05751faf4e2d7dd82d626905ee34d9652d551557b222045a0a8c02201610d427d9a2dfdbbb238d2769a14803549c312e0aef06620fef5f421c8698ab[ALL] 02544912ce55bcab484f5d2ba0f54c420160f37c3978b68b0fa67cc92417739b3e", 22 | "hex": "47304402200e63bef956ee05751faf4e2d7dd82d626905ee34d9652d551557b222045a0a8c02201610d427d9a2dfdbbb238d2769a14803549c312e0aef06620fef5f421c8698ab012102544912ce55bcab484f5d2ba0f54c420160f37c3978b68b0fa67cc92417739b3e" 23 | }, 24 | "sequence": 4294967295 25 | } 26 | ], 27 | "vout": [ 28 | { 29 | "value": 0.00000000, 30 | "n": 0, 31 | "scriptPubKey": { 32 | "asm": "OP_RETURN 4f41010002011800", 33 | "hex": "6a084f41010002011800", 34 | "type": "nulldata" 35 | } 36 | }, 37 | { 38 | "value": 0.00000600, 39 | "n": 1, 40 | "scriptPubKey": { 41 | "asm": "OP_DUP OP_HASH160 24b3d405bc60bd9628691fe28bb00f6800e14806 OP_EQUALVERIFY OP_CHECKSIG", 42 | "hex": "76a91424b3d405bc60bd9628691fe28bb00f6800e1480688ac", 43 | "reqSigs": 1, 44 | "type": "pubkeyhash", 45 | "addresses": [ 46 | "14M4kbAtn71P1nnNYuhBDFTNYxa19t1XP6" 47 | ] 48 | } 49 | }, 50 | { 51 | "value": 0.00000600, 52 | "n": 2, 53 | "scriptPubKey": { 54 | "asm": "OP_DUP OP_HASH160 b7218fe503cd18555255e5b13d4f07f3fd00d0c9 OP_EQUALVERIFY OP_CHECKSIG", 55 | "hex": "76a914b7218fe503cd18555255e5b13d4f07f3fd00d0c988ac", 56 | "reqSigs": 1, 57 | "type": "pubkeyhash", 58 | "addresses": [ 59 | "1HhJs3JgbiyxC8ktfi6nU4wTqVmrMtCVkG" 60 | ] 61 | } 62 | }, 63 | { 64 | "value": 0.00057000, 65 | "n": 3, 66 | "scriptPubKey": { 67 | "asm": "OP_DUP OP_HASH160 b7218fe503cd18555255e5b13d4f07f3fd00d0c9 OP_EQUALVERIFY OP_CHECKSIG", 68 | "hex": "76a914b7218fe503cd18555255e5b13d4f07f3fd00d0c988ac", 69 | "reqSigs": 1, 70 | "type": "pubkeyhash", 71 | "addresses": [ 72 | "1HhJs3JgbiyxC8ktfi6nU4wTqVmrMtCVkG" 73 | ] 74 | } 75 | } 76 | ], 77 | "blockhash": "00000000000000000f59477517f4b33dffcfaeffc42a06a586f3b58dffd7e356", 78 | "confirmations": 78129, 79 | "time": 1434151788, 80 | "blocktime": 1434151788 81 | } -------------------------------------------------------------------------------- /spec/fixtures/tx/4cf37617ed99b246724067991346c31734f4147288d963a485c81f25b3572a89.json: -------------------------------------------------------------------------------- 1 | { 2 | "hex": "0100000001742471c85c1ea03c79da272fa3b62b9537c260917be1d5dbb783ea8c0652ca3b000000006a473044022045f8af3f915d4c8b9ca6aa281247a1484ec19260ecdf4f57c0d52160e7b240d20220509857ae2348860ab9d4db4da12536a19d1dffbf4f4688d334954c5d04533b52012103da05e349a9c676e66efe78fa6603d8667dcd94e213e827a0ca61a143a9f3677cffffffff0358020000000000001976a914a4d91666eb7cc21a3fff959861a629354e4275b288ac00000000000000001d6a1b4f41010001b96013753d687474703a2f2f676f6f676c652e636f6d78caae06000000001976a914a4d91666eb7cc21a3fff959861a629354e4275b288ac00000000", 3 | "txid": "4cf37617ed99b246724067991346c31734f4147288d963a485c81f25b3572a89", 4 | "hash": "4cf37617ed99b246724067991346c31734f4147288d963a485c81f25b3572a89", 5 | "size": 263, 6 | "vsize": 263, 7 | "version": 1, 8 | "locktime": 0, 9 | "vin": [ 10 | { 11 | "txid": "3bca52068cea83b7dbd5e17b9160c237952bb6a32f27da793ca01e5cc8712474", 12 | "vout": 0, 13 | "scriptSig": { 14 | "asm": "3044022045f8af3f915d4c8b9ca6aa281247a1484ec19260ecdf4f57c0d52160e7b240d20220509857ae2348860ab9d4db4da12536a19d1dffbf4f4688d334954c5d04533b52[ALL] 03da05e349a9c676e66efe78fa6603d8667dcd94e213e827a0ca61a143a9f3677c", 15 | "hex": "473044022045f8af3f915d4c8b9ca6aa281247a1484ec19260ecdf4f57c0d52160e7b240d20220509857ae2348860ab9d4db4da12536a19d1dffbf4f4688d334954c5d04533b52012103da05e349a9c676e66efe78fa6603d8667dcd94e213e827a0ca61a143a9f3677c" 16 | }, 17 | "sequence": 4294967295 18 | } 19 | ], 20 | "vout": [ 21 | { 22 | "value": 0.00000600, 23 | "n": 0, 24 | "scriptPubKey": { 25 | "asm": "OP_DUP OP_HASH160 a4d91666eb7cc21a3fff959861a629354e4275b2 OP_EQUALVERIFY OP_CHECKSIG", 26 | "hex": "76a914a4d91666eb7cc21a3fff959861a629354e4275b288ac", 27 | "reqSigs": 1, 28 | "type": "pubkeyhash", 29 | "addresses": [ 30 | "mvYbB238p3rFYFjM56cHhNNHeQb5ypQJ3T" 31 | ] 32 | } 33 | }, 34 | { 35 | "value": 0.00000000, 36 | "n": 1, 37 | "scriptPubKey": { 38 | "asm": "OP_RETURN 4f41010001b96013753d687474703a2f2f676f6f676c652e636f6d", 39 | "hex": "6a1b4f41010001b96013753d687474703a2f2f676f6f676c652e636f6d", 40 | "type": "nulldata" 41 | } 42 | }, 43 | { 44 | "value": 1.12118392, 45 | "n": 2, 46 | "scriptPubKey": { 47 | "asm": "OP_DUP OP_HASH160 a4d91666eb7cc21a3fff959861a629354e4275b2 OP_EQUALVERIFY OP_CHECKSIG", 48 | "hex": "76a914a4d91666eb7cc21a3fff959861a629354e4275b288ac", 49 | "reqSigs": 1, 50 | "type": "pubkeyhash", 51 | "addresses": [ 52 | "mvYbB238p3rFYFjM56cHhNNHeQb5ypQJ3T" 53 | ] 54 | } 55 | } 56 | ], 57 | "blockhash": "000000000000f346d05d1f2741b54d08a00151afb96e9145446e486c94eef2c6", 58 | "confirmations": 170316, 59 | "time": 1463720283, 60 | "blocktime": 1463720283 61 | } -------------------------------------------------------------------------------- /spec/fixtures/tx/4d2a27293ec0b268c0f21952a9c4760dac3b8999bffcbc59a2126d06344a26e2.json: -------------------------------------------------------------------------------- 1 | { 2 | "hex": "0100000001d6d88aff2cf0d2d03f58113ad7cd05dbabdf4e833c932007f3cef22c2b85a343020000006b483045022100c952402beeb36dc0a0065d154acc84b9c734250689badfd5daf8b5f2cadf89c7022044c80b4bd092af9d963342a21a8c6eced9dbf22319a7a8b186259219dc1de54001210292ee82d9add0512294723f2c363aee24efdeb3f258cdaf5118a4fcf5263e92c9ffffffff03580200000000000017a914c590a1c93975aec75157e33ad904a74d2934e9d58700000000000000000a6a084f41010001b32b0028870000000000001976a91446c2fbfbecc99a63148fa076de58cf29b0bcf0b088ac00000000", 3 | "txid": "4d2a27293ec0b268c0f21952a9c4760dac3b8999bffcbc59a2126d06344a26e2", 4 | "hash": "4d2a27293ec0b268c0f21952a9c4760dac3b8999bffcbc59a2126d06344a26e2", 5 | "size": 243, 6 | "vsize": 243, 7 | "version": 1, 8 | "locktime": 0, 9 | "vin": [ 10 | { 11 | "txid": "43a3852b2cf2cef30720933c834edfabdb05cdd73a11583fd0d2f02cff8ad8d6", 12 | "vout": 2, 13 | "scriptSig": { 14 | "asm": "3045022100c952402beeb36dc0a0065d154acc84b9c734250689badfd5daf8b5f2cadf89c7022044c80b4bd092af9d963342a21a8c6eced9dbf22319a7a8b186259219dc1de540[ALL] 0292ee82d9add0512294723f2c363aee24efdeb3f258cdaf5118a4fcf5263e92c9", 15 | "hex": "483045022100c952402beeb36dc0a0065d154acc84b9c734250689badfd5daf8b5f2cadf89c7022044c80b4bd092af9d963342a21a8c6eced9dbf22319a7a8b186259219dc1de54001210292ee82d9add0512294723f2c363aee24efdeb3f258cdaf5118a4fcf5263e92c9" 16 | }, 17 | "sequence": 4294967295 18 | } 19 | ], 20 | "vout": [ 21 | { 22 | "value": 0.00000600, 23 | "n": 0, 24 | "scriptPubKey": { 25 | "asm": "OP_HASH160 c590a1c93975aec75157e33ad904a74d2934e9d5 OP_EQUAL", 26 | "hex": "a914c590a1c93975aec75157e33ad904a74d2934e9d587", 27 | "reqSigs": 1, 28 | "type": "scripthash", 29 | "addresses": [ 30 | "2NBFrNHDikgwjHoMmgJZdsNdB92PpotmaHk" 31 | ] 32 | } 33 | }, 34 | { 35 | "value": 0.00000000, 36 | "n": 1, 37 | "scriptPubKey": { 38 | "asm": "OP_RETURN 4f41010001b32b00", 39 | "hex": "6a084f41010001b32b00", 40 | "type": "nulldata" 41 | } 42 | }, 43 | { 44 | "value": 0.00034600, 45 | "n": 2, 46 | "scriptPubKey": { 47 | "asm": "OP_DUP OP_HASH160 46c2fbfbecc99a63148fa076de58cf29b0bcf0b0 OP_EQUALVERIFY OP_CHECKSIG", 48 | "hex": "76a91446c2fbfbecc99a63148fa076de58cf29b0bcf0b088ac", 49 | "reqSigs": 1, 50 | "type": "pubkeyhash", 51 | "addresses": [ 52 | "mmy7BEH1SUGAeSVUR22pt5hPaejo2645F1" 53 | ] 54 | } 55 | } 56 | ], 57 | "blockhash": "00000000000002a71afd846bf76654fe9f54a199436d59858badbcb236c2cba5", 58 | "confirmations": 63338, 59 | "time": 1475828777, 60 | "blocktime": 1475828777 61 | } -------------------------------------------------------------------------------- /spec/fixtures/tx/5004b6e4108ff2e39112e7b9fa596f225086373d33a1839af3e027a1cd259872.json: -------------------------------------------------------------------------------- 1 | { 2 | "hex": "0100000001181fbb20375c941384069fdefd739c8e14fa40490a335607da6ea912f4383cab010000006a47304402205ddd66e0e59e3d377298a5ce2ece08804a49e0ca55215c0500e00871f75390ad0220452f91c7beea5b20b0b6c23f0dc3294ed36dbffec15dd8294cdf31d683ea5f850121024126e617f993a6fd24bb344a6c13f16f20bea4c74e451232fea494a8b53516cdffffffff0358020000000000001976a914147b897573a9586f64320d29c7780f383d00f06d88ac0000000000000000216a1f4f41010001890617753d68747470733a2f2f676f6f2e676c2f36704e503237e8990000000000001976a914147b897573a9586f64320d29c7780f383d00f06d88ac00000000", 3 | "txid": "5004b6e4108ff2e39112e7b9fa596f225086373d33a1839af3e027a1cd259872", 4 | "hash": "5004b6e4108ff2e39112e7b9fa596f225086373d33a1839af3e027a1cd259872", 5 | "size": 267, 6 | "vsize": 267, 7 | "version": 1, 8 | "locktime": 0, 9 | "vin": [ 10 | { 11 | "txid": "ab3c38f412a96eda0756330a4940fa148e9c73fdde9f068413945c3720bb1f18", 12 | "vout": 1, 13 | "scriptSig": { 14 | "asm": "304402205ddd66e0e59e3d377298a5ce2ece08804a49e0ca55215c0500e00871f75390ad0220452f91c7beea5b20b0b6c23f0dc3294ed36dbffec15dd8294cdf31d683ea5f85[ALL] 024126e617f993a6fd24bb344a6c13f16f20bea4c74e451232fea494a8b53516cd", 15 | "hex": "47304402205ddd66e0e59e3d377298a5ce2ece08804a49e0ca55215c0500e00871f75390ad0220452f91c7beea5b20b0b6c23f0dc3294ed36dbffec15dd8294cdf31d683ea5f850121024126e617f993a6fd24bb344a6c13f16f20bea4c74e451232fea494a8b53516cd" 16 | }, 17 | "sequence": 4294967295 18 | } 19 | ], 20 | "vout": [ 21 | { 22 | "value": 0.00000600, 23 | "n": 0, 24 | "scriptPubKey": { 25 | "asm": "OP_DUP OP_HASH160 147b897573a9586f64320d29c7780f383d00f06d OP_EQUALVERIFY OP_CHECKSIG", 26 | "hex": "76a914147b897573a9586f64320d29c7780f383d00f06d88ac", 27 | "reqSigs": 1, 28 | "type": "pubkeyhash", 29 | "addresses": [ 30 | "mhPFoPUSefNW7BMV8bhL3Pa4qkP4vtJaba" 31 | ] 32 | } 33 | }, 34 | { 35 | "value": 0.00000000, 36 | "n": 1, 37 | "scriptPubKey": { 38 | "asm": "OP_RETURN 4f41010001890617753d68747470733a2f2f676f6f2e676c2f36704e503237", 39 | "hex": "6a1f4f41010001890617753d68747470733a2f2f676f6f2e676c2f36704e503237", 40 | "type": "nulldata" 41 | } 42 | }, 43 | { 44 | "value": 0.00039400, 45 | "n": 2, 46 | "scriptPubKey": { 47 | "asm": "OP_DUP OP_HASH160 147b897573a9586f64320d29c7780f383d00f06d OP_EQUALVERIFY OP_CHECKSIG", 48 | "hex": "76a914147b897573a9586f64320d29c7780f383d00f06d88ac", 49 | "reqSigs": 1, 50 | "type": "pubkeyhash", 51 | "addresses": [ 52 | "mhPFoPUSefNW7BMV8bhL3Pa4qkP4vtJaba" 53 | ] 54 | } 55 | } 56 | ], 57 | "blockhash": "0000000000767e53f10e4f20c568b260d569b6edf08f502e259f11e21cfd699c", 58 | "confirmations": 381347, 59 | "time": 1453610373, 60 | "blocktime": 1453610373 61 | } -------------------------------------------------------------------------------- /spec/fixtures/tx/52149eb434085bee56dec595ee2f3a601cb24703bbb4a385954b1f20a3b50c7d.json: -------------------------------------------------------------------------------- 1 | { 2 | "hex": "0100000002d828fe846b63c61af9c20576705e44e1c34ade6f54e38a4fd673664e0c3058dd000000006b483045022100ae213bed8880c72aaa345d83de4a544675fbe8f0ea9e2ea002e6e16986560bca02206c7499383d958f42a2a1b1e4daeadee9928c693dbd6ad51622709a89df4cf8cc012103a53d2d96e090615d19b2e47078eb79434c1cb9555ac588b05170a715619a40a2ffffffff0471efecafcbed89444b171b303fbc73d2c4986be507121f4efe40ba0e5bb5d2030000006b483045022100aff08b10ecef5ee5f165af4494b171db48d06c0cd76f84eb8f952a5d866084ff02206c559534f1c566b8a59286b90ea1291f319fa91f70cd0bd6cef67304b6e939ca012102174620b7c583dc471e04b604fc85f7ae19d161a070af7227ca03edfcb6c4dc4fffffffff0220a10700000000001976a9147cbc38b45e36dbe96e991d737450f047a9899a6388ac9b090000000000001976a914d168cfcf5bd060b4a92a0b26cb0456c2c468fc0588ac00000000", 3 | "txid": "52149eb434085bee56dec595ee2f3a601cb24703bbb4a385954b1f20a3b50c7d", 4 | "size": 374, 5 | "version": 1, 6 | "locktime": 0, 7 | "vin": [ 8 | { 9 | "txid": "dd58300c4e6673d64f8ae3546fde4ac3e1445e707605c2f91ac6636b84fe28d8", 10 | "vout": 0, 11 | "scriptSig": { 12 | "asm": "3045022100ae213bed8880c72aaa345d83de4a544675fbe8f0ea9e2ea002e6e16986560bca02206c7499383d958f42a2a1b1e4daeadee9928c693dbd6ad51622709a89df4cf8cc[ALL] 03a53d2d96e090615d19b2e47078eb79434c1cb9555ac588b05170a715619a40a2", 13 | "hex": "483045022100ae213bed8880c72aaa345d83de4a544675fbe8f0ea9e2ea002e6e16986560bca02206c7499383d958f42a2a1b1e4daeadee9928c693dbd6ad51622709a89df4cf8cc012103a53d2d96e090615d19b2e47078eb79434c1cb9555ac588b05170a715619a40a2" 14 | }, 15 | "sequence": 4294967295 16 | }, 17 | { 18 | "txid": "d2b55b0eba40fe4e1f1207e56b98c4d273bc3f301b174b4489edcbafecef7104", 19 | "vout": 3, 20 | "scriptSig": { 21 | "asm": "3045022100aff08b10ecef5ee5f165af4494b171db48d06c0cd76f84eb8f952a5d866084ff02206c559534f1c566b8a59286b90ea1291f319fa91f70cd0bd6cef67304b6e939ca[ALL] 02174620b7c583dc471e04b604fc85f7ae19d161a070af7227ca03edfcb6c4dc4f", 22 | "hex": "483045022100aff08b10ecef5ee5f165af4494b171db48d06c0cd76f84eb8f952a5d866084ff02206c559534f1c566b8a59286b90ea1291f319fa91f70cd0bd6cef67304b6e939ca012102174620b7c583dc471e04b604fc85f7ae19d161a070af7227ca03edfcb6c4dc4f" 23 | }, 24 | "sequence": 4294967295 25 | } 26 | ], 27 | "vout": [ 28 | { 29 | "value": 0.00500000, 30 | "n": 0, 31 | "scriptPubKey": { 32 | "asm": "OP_DUP OP_HASH160 7cbc38b45e36dbe96e991d737450f047a9899a63 OP_EQUALVERIFY OP_CHECKSIG", 33 | "hex": "76a9147cbc38b45e36dbe96e991d737450f047a9899a6388ac", 34 | "reqSigs": 1, 35 | "type": "pubkeyhash", 36 | "addresses": [ 37 | "1CNYGeUsJU6csL8ZkZATrJhzmhv7LM4vFx" 38 | ] 39 | } 40 | }, 41 | { 42 | "value": 0.00002459, 43 | "n": 1, 44 | "scriptPubKey": { 45 | "asm": "OP_DUP OP_HASH160 d168cfcf5bd060b4a92a0b26cb0456c2c468fc05 OP_EQUALVERIFY OP_CHECKSIG", 46 | "hex": "76a914d168cfcf5bd060b4a92a0b26cb0456c2c468fc0588ac", 47 | "reqSigs": 1, 48 | "type": "pubkeyhash", 49 | "addresses": [ 50 | "1L6FnYPTcULLqiVGCLMDLqG7kKNehDv2ZA" 51 | ] 52 | } 53 | } 54 | ], 55 | "blockhash": "0000000000000000103ee68ba73d49bb506505bf3fa3fc6d0e3831f79f5cc8ae", 56 | "confirmations": 61686, 57 | "time": 1443777805, 58 | "blocktime": 1443777805 59 | } 60 | -------------------------------------------------------------------------------- /spec/fixtures/tx/525f7baa656d04016fad0094187cc969b526ca1261312ddf09a648d822ee6cdd.json: -------------------------------------------------------------------------------- 1 | { 2 | "hex": "010000000154f5a67cb14d7e50056f53263b72165daaf438164e7e825b862b9062a4e40612000000006b48304502210098e16e338e9600876e30d9dc0894bcd1bbb612431e7a36732c5feab0686d0641022044e7dcd512073f31d0c67e0fbbf2269c4a31d5bf3bb1fcc8fbdd2e4d3c0d7e58012103e46fdcbf2062598a221c0e34d0505c270fb77c2c305c40ef0919f8efc0c7f959ffffffff0358020000000000001976a91438a6ebdf20cae2c9287ea014464042112ea3dbfd88ac0000000000000000216a1f4f410100018f4e17753d68747470733a2f2f676f6f2e676c2f755667737434b8770700000000001976a91438a6ebdf20cae2c9287ea014464042112ea3dbfd88ac00000000", 3 | "txid": "525f7baa656d04016fad0094187cc969b526ca1261312ddf09a648d822ee6cdd", 4 | "hash": "525f7baa656d04016fad0094187cc969b526ca1261312ddf09a648d822ee6cdd", 5 | "size": 268, 6 | "vsize": 268, 7 | "version": 1, 8 | "locktime": 0, 9 | "vin": [ 10 | { 11 | "txid": "1206e4a462902b865b827e4e1638f4aa5d16723b26536f05507e4db17ca6f554", 12 | "vout": 0, 13 | "scriptSig": { 14 | "asm": "304502210098e16e338e9600876e30d9dc0894bcd1bbb612431e7a36732c5feab0686d0641022044e7dcd512073f31d0c67e0fbbf2269c4a31d5bf3bb1fcc8fbdd2e4d3c0d7e58[ALL] 03e46fdcbf2062598a221c0e34d0505c270fb77c2c305c40ef0919f8efc0c7f959", 15 | "hex": "48304502210098e16e338e9600876e30d9dc0894bcd1bbb612431e7a36732c5feab0686d0641022044e7dcd512073f31d0c67e0fbbf2269c4a31d5bf3bb1fcc8fbdd2e4d3c0d7e58012103e46fdcbf2062598a221c0e34d0505c270fb77c2c305c40ef0919f8efc0c7f959" 16 | }, 17 | "sequence": 4294967295 18 | } 19 | ], 20 | "vout": [ 21 | { 22 | "value": 0.00000600, 23 | "n": 0, 24 | "scriptPubKey": { 25 | "asm": "OP_DUP OP_HASH160 38a6ebdf20cae2c9287ea014464042112ea3dbfd OP_EQUALVERIFY OP_CHECKSIG", 26 | "hex": "76a91438a6ebdf20cae2c9287ea014464042112ea3dbfd88ac", 27 | "reqSigs": 1, 28 | "type": "pubkeyhash", 29 | "addresses": [ 30 | "mkgW6hNYBctmqDtTTsTJrsf2Gh2NPtoCU4" 31 | ] 32 | } 33 | }, 34 | { 35 | "value": 0.00000000, 36 | "n": 1, 37 | "scriptPubKey": { 38 | "asm": "OP_RETURN 4f410100018f4e17753d68747470733a2f2f676f6f2e676c2f755667737434", 39 | "hex": "6a1f4f410100018f4e17753d68747470733a2f2f676f6f2e676c2f755667737434", 40 | "type": "nulldata" 41 | } 42 | }, 43 | { 44 | "value": 0.00489400, 45 | "n": 2, 46 | "scriptPubKey": { 47 | "asm": "OP_DUP OP_HASH160 38a6ebdf20cae2c9287ea014464042112ea3dbfd OP_EQUALVERIFY OP_CHECKSIG", 48 | "hex": "76a91438a6ebdf20cae2c9287ea014464042112ea3dbfd88ac", 49 | "reqSigs": 1, 50 | "type": "pubkeyhash", 51 | "addresses": [ 52 | "mkgW6hNYBctmqDtTTsTJrsf2Gh2NPtoCU4" 53 | ] 54 | } 55 | } 56 | ], 57 | "blockhash": "000000000070409de9d2f40f67ab2de0c97fcf3f7c51ce7bf4487794d5976b93", 58 | "confirmations": 427142, 59 | "time": 1448003116, 60 | "blocktime": 1448003116 61 | } -------------------------------------------------------------------------------- /spec/fixtures/tx/5cc890ab1369432375decb64ef19b4cb190f5f40e35bb1399cce16e4be6b5b9b.json: -------------------------------------------------------------------------------- 1 | { 2 | "hex": "0100000001d57f29f2ddca6dc2873fd518fc7a30e9071d03e6783dc97aed0b282c793726d6020000006a47304402203b5b3462658f4bb6f2b29053e10ca9e2f418af3d23345323d1cb5907d0f0476e02206a64d2af924bdf1797eff1cb1756c1906fed43de09621deacdc009c6569792e5012102174620b7c583dc471e04b604fc85f7ae19d161a070af7227ca03edfcb6c4dc4fffffffff0210270000000000001976a914b7218fe503cd18555255e5b13d4f07f3fd00d0c988ac90c30e00000000001976a914d9018802c2f28b01b9d976f4a77e295babf79ecf88ac00000000", 3 | "txid": "5cc890ab1369432375decb64ef19b4cb190f5f40e35bb1399cce16e4be6b5b9b", 4 | "size": 225, 5 | "version": 1, 6 | "locktime": 0, 7 | "vin": [ 8 | { 9 | "txid": "d62637792c280bed7ac93d78e6031d07e9307afc18d53f87c26dcaddf2297fd5", 10 | "vout": 2, 11 | "scriptSig": { 12 | "asm": "304402203b5b3462658f4bb6f2b29053e10ca9e2f418af3d23345323d1cb5907d0f0476e02206a64d2af924bdf1797eff1cb1756c1906fed43de09621deacdc009c6569792e5[ALL] 02174620b7c583dc471e04b604fc85f7ae19d161a070af7227ca03edfcb6c4dc4f", 13 | "hex": "47304402203b5b3462658f4bb6f2b29053e10ca9e2f418af3d23345323d1cb5907d0f0476e02206a64d2af924bdf1797eff1cb1756c1906fed43de09621deacdc009c6569792e5012102174620b7c583dc471e04b604fc85f7ae19d161a070af7227ca03edfcb6c4dc4f" 14 | }, 15 | "sequence": 4294967295 16 | } 17 | ], 18 | "vout": [ 19 | { 20 | "value": 0.00010000, 21 | "n": 0, 22 | "scriptPubKey": { 23 | "asm": "OP_DUP OP_HASH160 b7218fe503cd18555255e5b13d4f07f3fd00d0c9 OP_EQUALVERIFY OP_CHECKSIG", 24 | "hex": "76a914b7218fe503cd18555255e5b13d4f07f3fd00d0c988ac", 25 | "reqSigs": 1, 26 | "type": "pubkeyhash", 27 | "addresses": [ 28 | "1HhJs3JgbiyxC8ktfi6nU4wTqVmrMtCVkG" 29 | ] 30 | } 31 | }, 32 | { 33 | "value": 0.00967568, 34 | "n": 1, 35 | "scriptPubKey": { 36 | "asm": "OP_DUP OP_HASH160 d9018802c2f28b01b9d976f4a77e295babf79ecf OP_EQUALVERIFY OP_CHECKSIG", 37 | "hex": "76a914d9018802c2f28b01b9d976f4a77e295babf79ecf88ac", 38 | "reqSigs": 1, 39 | "type": "pubkeyhash", 40 | "addresses": [ 41 | "1LnRU2MCBmbT5LJybxPGWUotNBRxmypQWN" 42 | ] 43 | } 44 | } 45 | ], 46 | "blockhash": "000000000000000001e1a61215e5c83af14cb0824807acdd1a4e3619c141830e", 47 | "confirmations": 78553, 48 | "time": 1433905613, 49 | "blocktime": 1433905613 50 | } -------------------------------------------------------------------------------- /spec/fixtures/tx/6308f912ccf36057d020483dbe9392dda8d197e378f1709d5bf0291f8d83bcc7.json: -------------------------------------------------------------------------------- 1 | { 2 | "hex": "0100000002e2264a34066d12a259bcfcbf99893bac0d76c4a95219f2c068b2c03e29272a4d000000009e483045022100fba05ed2079938a9605dc3658535b4733babc25b4053077b4524c2fe95038c9302207fe541b0c8e7f3f39ab3ea5c127b409809000fd766794f2839454a29f873d32001210292ee82d9add0512294723f2c363aee24efdeb3f258cdaf5118a4fcf5263e92c93217753d68747470733a2f2f676f6f2e676c2f626d564575777576a91446c2fbfbecc99a63148fa076de58cf29b0bcf0b088acffffffffe2264a34066d12a259bcfcbf99893bac0d76c4a95219f2c068b2c03e29272a4d020000006a473044022051eb95a2feee909254333ec21821d59d0539f964f160edc90ababd8d5994b47602206751b7a26e69df07c6b53d6f790c6159999b1d6c1d8f7ecf1c8fb2f6175acba001210292ee82d9add0512294723f2c363aee24efdeb3f258cdaf5118a4fcf5263e92c9ffffffff0200000000000000000a6a084f41010001b32b0070620000000000001976a91446c2fbfbecc99a63148fa076de58cf29b0bcf0b088ac00000000", 3 | "txid": "6308f912ccf36057d020483dbe9392dda8d197e378f1709d5bf0291f8d83bcc7", 4 | "hash": "6308f912ccf36057d020483dbe9392dda8d197e378f1709d5bf0291f8d83bcc7", 5 | "size": 409, 6 | "vsize": 409, 7 | "version": 1, 8 | "locktime": 0, 9 | "vin": [ 10 | { 11 | "txid": "4d2a27293ec0b268c0f21952a9c4760dac3b8999bffcbc59a2126d06344a26e2", 12 | "vout": 0, 13 | "scriptSig": { 14 | "asm": "3045022100fba05ed2079938a9605dc3658535b4733babc25b4053077b4524c2fe95038c9302207fe541b0c8e7f3f39ab3ea5c127b409809000fd766794f2839454a29f873d320[ALL] 0292ee82d9add0512294723f2c363aee24efdeb3f258cdaf5118a4fcf5263e92c9 17753d68747470733a2f2f676f6f2e676c2f626d564575777576a91446c2fbfbecc99a63148fa076de58cf29b0bcf0b088ac", 15 | "hex": "483045022100fba05ed2079938a9605dc3658535b4733babc25b4053077b4524c2fe95038c9302207fe541b0c8e7f3f39ab3ea5c127b409809000fd766794f2839454a29f873d32001210292ee82d9add0512294723f2c363aee24efdeb3f258cdaf5118a4fcf5263e92c93217753d68747470733a2f2f676f6f2e676c2f626d564575777576a91446c2fbfbecc99a63148fa076de58cf29b0bcf0b088ac" 16 | }, 17 | "sequence": 4294967295 18 | }, 19 | { 20 | "txid": "4d2a27293ec0b268c0f21952a9c4760dac3b8999bffcbc59a2126d06344a26e2", 21 | "vout": 2, 22 | "scriptSig": { 23 | "asm": "3044022051eb95a2feee909254333ec21821d59d0539f964f160edc90ababd8d5994b47602206751b7a26e69df07c6b53d6f790c6159999b1d6c1d8f7ecf1c8fb2f6175acba0[ALL] 0292ee82d9add0512294723f2c363aee24efdeb3f258cdaf5118a4fcf5263e92c9", 24 | "hex": "473044022051eb95a2feee909254333ec21821d59d0539f964f160edc90ababd8d5994b47602206751b7a26e69df07c6b53d6f790c6159999b1d6c1d8f7ecf1c8fb2f6175acba001210292ee82d9add0512294723f2c363aee24efdeb3f258cdaf5118a4fcf5263e92c9" 25 | }, 26 | "sequence": 4294967295 27 | } 28 | ], 29 | "vout": [ 30 | { 31 | "value": 0.00000000, 32 | "n": 0, 33 | "scriptPubKey": { 34 | "asm": "OP_RETURN 4f41010001b32b00", 35 | "hex": "6a084f41010001b32b00", 36 | "type": "nulldata" 37 | } 38 | }, 39 | { 40 | "value": 0.00025200, 41 | "n": 1, 42 | "scriptPubKey": { 43 | "asm": "OP_DUP OP_HASH160 46c2fbfbecc99a63148fa076de58cf29b0bcf0b0 OP_EQUALVERIFY OP_CHECKSIG", 44 | "hex": "76a91446c2fbfbecc99a63148fa076de58cf29b0bcf0b088ac", 45 | "reqSigs": 1, 46 | "type": "pubkeyhash", 47 | "addresses": [ 48 | "mmy7BEH1SUGAeSVUR22pt5hPaejo2645F1" 49 | ] 50 | } 51 | } 52 | ], 53 | "blockhash": "00000000000002c6ad8e203e11424325a216f47d112a0bd449192e18bb5e2ac8", 54 | "confirmations": 63322, 55 | "time": 1475833686, 56 | "blocktime": 1475833686 57 | } -------------------------------------------------------------------------------- /spec/fixtures/tx/64873e801b9886af5f5fb30889d816d38f77856544b1233d1491f4bcf9e3062a.json: -------------------------------------------------------------------------------- 1 | { 2 | "hex": "01000000021a8dbbbc32c6803851d34478dccd71b80112be9f784f688c83f857098ca129a3020000006a47304402204a8314a129b7374087965ee1878a427c798a6882982c89d59909ecd7f78ff07b0220686cd6e4658ac30c076b62339e2ba67c9a523a3aa15a013c3b12a0cfe66f7861012102544912ce55bcab484f5d2ba0f54c420160f37c3978b68b0fa67cc92417739b3effffffff1a8dbbbc32c6803851d34478dccd71b80112be9f784f688c83f857098ca129a3030000006a47304402201c3514587ccb5d7642545185a87bc78c6f5c8fef0540896d832dd3c51430c73d02207bced10c07098737202857c5f64b59a9aa6c429f2c09fda6dcbfe9897818ab96012102544912ce55bcab484f5d2ba0f54c420160f37c3978b68b0fa67cc92417739b3effffffff0400000000000000000a6a084f4101000201030058020000000000001976a91424b3d405bc60bd9628691fe28bb00f6800e1480688ac58020000000000001976a914b7218fe503cd18555255e5b13d4f07f3fd00d0c988ace05a0100000000001976a914b7218fe503cd18555255e5b13d4f07f3fd00d0c988ac00000000", 3 | "txid": "64873e801b9886af5f5fb30889d816d38f77856544b1233d1491f4bcf9e3062a", 4 | "size": 425, 5 | "version": 1, 6 | "locktime": 0, 7 | "vin": [ 8 | { 9 | "txid": "a329a18c0957f8838c684f789fbe1201b871cddc7844d3513880c632bcbb8d1a", 10 | "vout": 2, 11 | "scriptSig": { 12 | "asm": "304402204a8314a129b7374087965ee1878a427c798a6882982c89d59909ecd7f78ff07b0220686cd6e4658ac30c076b62339e2ba67c9a523a3aa15a013c3b12a0cfe66f7861[ALL] 02544912ce55bcab484f5d2ba0f54c420160f37c3978b68b0fa67cc92417739b3e", 13 | "hex": "47304402204a8314a129b7374087965ee1878a427c798a6882982c89d59909ecd7f78ff07b0220686cd6e4658ac30c076b62339e2ba67c9a523a3aa15a013c3b12a0cfe66f7861012102544912ce55bcab484f5d2ba0f54c420160f37c3978b68b0fa67cc92417739b3e" 14 | }, 15 | "sequence": 4294967295 16 | }, 17 | { 18 | "txid": "a329a18c0957f8838c684f789fbe1201b871cddc7844d3513880c632bcbb8d1a", 19 | "vout": 3, 20 | "scriptSig": { 21 | "asm": "304402201c3514587ccb5d7642545185a87bc78c6f5c8fef0540896d832dd3c51430c73d02207bced10c07098737202857c5f64b59a9aa6c429f2c09fda6dcbfe9897818ab96[ALL] 02544912ce55bcab484f5d2ba0f54c420160f37c3978b68b0fa67cc92417739b3e", 22 | "hex": "47304402201c3514587ccb5d7642545185a87bc78c6f5c8fef0540896d832dd3c51430c73d02207bced10c07098737202857c5f64b59a9aa6c429f2c09fda6dcbfe9897818ab96012102544912ce55bcab484f5d2ba0f54c420160f37c3978b68b0fa67cc92417739b3e" 23 | }, 24 | "sequence": 4294967295 25 | } 26 | ], 27 | "vout": [ 28 | { 29 | "value": 0.00000000, 30 | "n": 0, 31 | "scriptPubKey": { 32 | "asm": "OP_RETURN 4f41010002010300", 33 | "hex": "6a084f41010002010300", 34 | "type": "nulldata" 35 | } 36 | }, 37 | { 38 | "value": 0.00000600, 39 | "n": 1, 40 | "scriptPubKey": { 41 | "asm": "OP_DUP OP_HASH160 24b3d405bc60bd9628691fe28bb00f6800e14806 OP_EQUALVERIFY OP_CHECKSIG", 42 | "hex": "76a91424b3d405bc60bd9628691fe28bb00f6800e1480688ac", 43 | "reqSigs": 1, 44 | "type": "pubkeyhash", 45 | "addresses": [ 46 | "14M4kbAtn71P1nnNYuhBDFTNYxa19t1XP6" 47 | ] 48 | } 49 | }, 50 | { 51 | "value": 0.00000600, 52 | "n": 2, 53 | "scriptPubKey": { 54 | "asm": "OP_DUP OP_HASH160 b7218fe503cd18555255e5b13d4f07f3fd00d0c9 OP_EQUALVERIFY OP_CHECKSIG", 55 | "hex": "76a914b7218fe503cd18555255e5b13d4f07f3fd00d0c988ac", 56 | "reqSigs": 1, 57 | "type": "pubkeyhash", 58 | "addresses": [ 59 | "1HhJs3JgbiyxC8ktfi6nU4wTqVmrMtCVkG" 60 | ] 61 | } 62 | }, 63 | { 64 | "value": 0.00088800, 65 | "n": 3, 66 | "scriptPubKey": { 67 | "asm": "OP_DUP OP_HASH160 b7218fe503cd18555255e5b13d4f07f3fd00d0c9 OP_EQUALVERIFY OP_CHECKSIG", 68 | "hex": "76a914b7218fe503cd18555255e5b13d4f07f3fd00d0c988ac", 69 | "reqSigs": 1, 70 | "type": "pubkeyhash", 71 | "addresses": [ 72 | "1HhJs3JgbiyxC8ktfi6nU4wTqVmrMtCVkG" 73 | ] 74 | } 75 | } 76 | ], 77 | "blockhash": "000000000000000006015fed22a1778b3abb13602412f1282535ebb1675213a9", 78 | "confirmations": 78349, 79 | "time": 1434010280, 80 | "blocktime": 1434010280 81 | } -------------------------------------------------------------------------------- /spec/fixtures/tx/67b95eb7516f5bf19340d31820c9fe71b8280d650d8b81d77ec950ad5c315128.json: -------------------------------------------------------------------------------- 1 | { 2 | "hex": "01000000011dbc554fc3cef8d23f0babf91511a8d57636a30d009fcbfa0c1bf2ec3e6eb14e00000000fd5e0100483045022100a51f0f0854c44c4b0093c17e249993709834450c84101bec301985d4a1bf11150220160d2af398e33c4dabe0c1f6f047a86f395af3b4ebdd36e366a93af15ee03b8e01483045022100b6ba03760def0187c356d26bd8965f6da4ca1ca14cd61b32a5604739f173e11102207a407443003ac717a7252de1d78962ec98a59b2195399c017a93e63eabdb810f014cc95241044e98d655cb2a16869585afea317fd95e8c1d785c337bca950f9d8190dd53b9f838f69970cbf52b14d4729dab380a8ebbd5e5acc0de426efc835334771c4e0c5d4104c96d495bfdd5ba4145e3e046fee45e84a8a48ad05bd8dbb395c011a32cf9f880326dbd66c140b50257f9618173833b50b6e829b5cd04ffd0ba693b90be8043594104feee534cc0d317cd8abf366bf1f3f93d098585fc5d3d61a22d3020c6d7a9ab6c83a201073e9f45b9a533a5930f421e49ccb760cce77a939032b24c03cb2b8bb153aeffffffff0240420f00000000001976a914de20a2d5a57ee40ce9a4ce14cf06a6c2c6ffe29788ace81e1c050000000017a91401882b7530c6ba31f88c99580710cbbbd5e228208700000000", 3 | "txid": "67b95eb7516f5bf19340d31820c9fe71b8280d650d8b81d77ec950ad5c315128", 4 | "size": 469, 5 | "version": 1, 6 | "locktime": 0, 7 | "vin": [ 8 | { 9 | "txid": "4eb16e3eecf21b0cfacb9f000da33676d5a81115f9ab0b3fd2f8cec34f55bc1d", 10 | "vout": 0, 11 | "scriptSig": { 12 | "asm": "0 3045022100a51f0f0854c44c4b0093c17e249993709834450c84101bec301985d4a1bf11150220160d2af398e33c4dabe0c1f6f047a86f395af3b4ebdd36e366a93af15ee03b8e[ALL] 3045022100b6ba03760def0187c356d26bd8965f6da4ca1ca14cd61b32a5604739f173e11102207a407443003ac717a7252de1d78962ec98a59b2195399c017a93e63eabdb810f[ALL] 5241044e98d655cb2a16869585afea317fd95e8c1d785c337bca950f9d8190dd53b9f838f69970cbf52b14d4729dab380a8ebbd5e5acc0de426efc835334771c4e0c5d4104c96d495bfdd5ba4145e3e046fee45e84a8a48ad05bd8dbb395c011a32cf9f880326dbd66c140b50257f9618173833b50b6e829b5cd04ffd0ba693b90be8043594104feee534cc0d317cd8abf366bf1f3f93d098585fc5d3d61a22d3020c6d7a9ab6c83a201073e9f45b9a533a5930f421e49ccb760cce77a939032b24c03cb2b8bb153ae", 13 | "hex": "00483045022100a51f0f0854c44c4b0093c17e249993709834450c84101bec301985d4a1bf11150220160d2af398e33c4dabe0c1f6f047a86f395af3b4ebdd36e366a93af15ee03b8e01483045022100b6ba03760def0187c356d26bd8965f6da4ca1ca14cd61b32a5604739f173e11102207a407443003ac717a7252de1d78962ec98a59b2195399c017a93e63eabdb810f014cc95241044e98d655cb2a16869585afea317fd95e8c1d785c337bca950f9d8190dd53b9f838f69970cbf52b14d4729dab380a8ebbd5e5acc0de426efc835334771c4e0c5d4104c96d495bfdd5ba4145e3e046fee45e84a8a48ad05bd8dbb395c011a32cf9f880326dbd66c140b50257f9618173833b50b6e829b5cd04ffd0ba693b90be8043594104feee534cc0d317cd8abf366bf1f3f93d098585fc5d3d61a22d3020c6d7a9ab6c83a201073e9f45b9a533a5930f421e49ccb760cce77a939032b24c03cb2b8bb153ae" 14 | }, 15 | "sequence": 4294967295 16 | } 17 | ], 18 | "vout": [ 19 | { 20 | "value": 0.01000000, 21 | "n": 0, 22 | "scriptPubKey": { 23 | "asm": "OP_DUP OP_HASH160 de20a2d5a57ee40ce9a4ce14cf06a6c2c6ffe297 OP_EQUALVERIFY OP_CHECKSIG", 24 | "hex": "76a914de20a2d5a57ee40ce9a4ce14cf06a6c2c6ffe29788ac", 25 | "reqSigs": 1, 26 | "type": "pubkeyhash", 27 | "addresses": [ 28 | "1MFW7BTwiNbAkmVz4SzAMQXboKYKGSzkq2" 29 | ] 30 | } 31 | }, 32 | { 33 | "value": 0.85729000, 34 | "n": 1, 35 | "scriptPubKey": { 36 | "asm": "OP_HASH160 01882b7530c6ba31f88c99580710cbbbd5e22820 OP_EQUAL", 37 | "hex": "a91401882b7530c6ba31f88c99580710cbbbd5e2282087", 38 | "reqSigs": 1, 39 | "type": "scripthash", 40 | "addresses": [ 41 | "31q7iya4jZusaYCCKJMssxbEsbKMj1xidX" 42 | ] 43 | } 44 | } 45 | ], 46 | "blockhash": "000000000000000001092aa38865d84cc551f458e03d5c9c01958d5485ca893a", 47 | "confirmations": 79299, 48 | "time": 1433487402, 49 | "blocktime": 1433487402 50 | } -------------------------------------------------------------------------------- /spec/fixtures/tx/7bf10738ab63989d3c7b34ce5ee610bb4b6ff1ffab0f203d60f4089bd62f3984.json: -------------------------------------------------------------------------------- 1 | { 2 | "hex": "010000000225effeede01fed5009223f137487e8f553635117f6a4c8e2a82212599ff28283010000006a47304402202e2c4fcf0e0df5817ba73cf7073d711e52df66f331aba7c8dc7bdcd4b1db4f8702204e124f78140f0bafc3776d0f8a593674699fe553f4906bd2116d198c06928c8e012102544912ce55bcab484f5d2ba0f54c420160f37c3978b68b0fa67cc92417739b3effffffff4d2ddf7930b6f4f26d825163fecd24eecc0d1749b24a263734b053661e54a59d030000006b483045022100e7596bc109eead32f4164a128fa329fe0c5ff95093a97c11cf10e3072eea5472022033ade6fb6e5e6a2d15a5b5cd1771e1b63a25bb5a165056c9673c1a730ece1d08012102544912ce55bcab484f5d2ba0f54c420160f37c3978b68b0fa67cc92417739b3effffffff030000000000000000096a074f41010001010058020000000000001976a91424b3d405bc60bd9628691fe28bb00f6800e1480688ac308e0000000000001976a914b7218fe503cd18555255e5b13d4f07f3fd00d0c988ac00000000", 3 | "txid": "7bf10738ab63989d3c7b34ce5ee610bb4b6ff1ffab0f203d60f4089bd62f3984", 4 | "size": 391, 5 | "version": 1, 6 | "locktime": 0, 7 | "vin": [ 8 | { 9 | "txid": "8382f29f591222a8e2c8a4f617516353f5e88774133f220950ed1fe0edfeef25", 10 | "vout": 1, 11 | "scriptSig": { 12 | "asm": "304402202e2c4fcf0e0df5817ba73cf7073d711e52df66f331aba7c8dc7bdcd4b1db4f8702204e124f78140f0bafc3776d0f8a593674699fe553f4906bd2116d198c06928c8e[ALL] 02544912ce55bcab484f5d2ba0f54c420160f37c3978b68b0fa67cc92417739b3e", 13 | "hex": "47304402202e2c4fcf0e0df5817ba73cf7073d711e52df66f331aba7c8dc7bdcd4b1db4f8702204e124f78140f0bafc3776d0f8a593674699fe553f4906bd2116d198c06928c8e012102544912ce55bcab484f5d2ba0f54c420160f37c3978b68b0fa67cc92417739b3e" 14 | }, 15 | "sequence": 4294967295 16 | }, 17 | { 18 | "txid": "9da5541e6653b03437264ab249170dccee24cdfe6351826df2f4b63079df2d4d", 19 | "vout": 3, 20 | "scriptSig": { 21 | "asm": "3045022100e7596bc109eead32f4164a128fa329fe0c5ff95093a97c11cf10e3072eea5472022033ade6fb6e5e6a2d15a5b5cd1771e1b63a25bb5a165056c9673c1a730ece1d08[ALL] 02544912ce55bcab484f5d2ba0f54c420160f37c3978b68b0fa67cc92417739b3e", 22 | "hex": "483045022100e7596bc109eead32f4164a128fa329fe0c5ff95093a97c11cf10e3072eea5472022033ade6fb6e5e6a2d15a5b5cd1771e1b63a25bb5a165056c9673c1a730ece1d08012102544912ce55bcab484f5d2ba0f54c420160f37c3978b68b0fa67cc92417739b3e" 23 | }, 24 | "sequence": 4294967295 25 | } 26 | ], 27 | "vout": [ 28 | { 29 | "value": 0.00000000, 30 | "n": 0, 31 | "scriptPubKey": { 32 | "asm": "OP_RETURN 4f410100010100", 33 | "hex": "6a074f410100010100", 34 | "type": "nulldata" 35 | } 36 | }, 37 | { 38 | "value": 0.00000600, 39 | "n": 1, 40 | "scriptPubKey": { 41 | "asm": "OP_DUP OP_HASH160 24b3d405bc60bd9628691fe28bb00f6800e14806 OP_EQUALVERIFY OP_CHECKSIG", 42 | "hex": "76a91424b3d405bc60bd9628691fe28bb00f6800e1480688ac", 43 | "reqSigs": 1, 44 | "type": "pubkeyhash", 45 | "addresses": [ 46 | "14M4kbAtn71P1nnNYuhBDFTNYxa19t1XP6" 47 | ] 48 | } 49 | }, 50 | { 51 | "value": 0.00036400, 52 | "n": 2, 53 | "scriptPubKey": { 54 | "asm": "OP_DUP OP_HASH160 b7218fe503cd18555255e5b13d4f07f3fd00d0c9 OP_EQUALVERIFY OP_CHECKSIG", 55 | "hex": "76a914b7218fe503cd18555255e5b13d4f07f3fd00d0c988ac", 56 | "reqSigs": 1, 57 | "type": "pubkeyhash", 58 | "addresses": [ 59 | "1HhJs3JgbiyxC8ktfi6nU4wTqVmrMtCVkG" 60 | ] 61 | } 62 | } 63 | ], 64 | "blockhash": "00000000000000000df36d5c058d3b256894c1339a12561005be038691969a3e", 65 | "confirmations": 78069, 66 | "time": 1434182956, 67 | "blocktime": 1434182956 68 | } -------------------------------------------------------------------------------- /spec/fixtures/tx/7dd8296f38db7148d81fa88114becd96fd5064113bea0bcf1c24809ea863ee5a.json: -------------------------------------------------------------------------------- 1 | { 2 | "hex": "01000000032faa228eeb2aa59b652f9e90020224482a93e56650505323de8f8f8f1de83d8b020000006a473044022063a8bc218fc1309428f65f222272215a739ba6ec3ef4b4602b22da9eb2ce6ed202207f8e0e60d418a8fa66d4608ff13829df6d40b7cbd52223390678aebeb37063b601210372107bf36f6c980bf5070e7004c743396bde827c5d735a9fcbcb35f215f23173ffffffffc1531abc3a82f6ac4f9b0c9dbd821b8626f335d4fa89c16100b3748a28a1d429020000006a4730440220674c828a08ab9545d3e82fa3720b3d66ceaed4e5fd241a27dd1f54fd126b325b022077debe1ebc3395a9283587f0b074dc1f8ce1b0483775180ecfccf990ae8d0f5f01210372107bf36f6c980bf5070e7004c743396bde827c5d735a9fcbcb35f215f23173ffffffff6bfed6ec52a26110a2bfdf65ffd18196a3913e7bb03629e6b9be1ff02ad7d07f020000006a47304402202a227da68fa66ed75886baee16eb565740473f699c6a5bd900aea610d27f63c202207d61b50e80b5f1a3fce481e59c733aaf8cc0624f8a5380d44a46d1143f704bc801210372107bf36f6c980bf5070e7004c743396bde827c5d735a9fcbcb35f215f23173ffffffff0196e20500000000001976a91429e38883cd397cf8f53d1676abd6dcad25cc134888ac00000000", 3 | "txid": "7dd8296f38db7148d81fa88114becd96fd5064113bea0bcf1c24809ea863ee5a", 4 | "hash": "7dd8296f38db7148d81fa88114becd96fd5064113bea0bcf1c24809ea863ee5a", 5 | "size": 485, 6 | "vsize": 485, 7 | "version": 1, 8 | "locktime": 0, 9 | "vin": [ 10 | { 11 | "txid": "8b3de81d8f8f8fde2353505066e5932a48240202909e2f659ba52aeb8e22aa2f", 12 | "vout": 2, 13 | "scriptSig": { 14 | "asm": "3044022063a8bc218fc1309428f65f222272215a739ba6ec3ef4b4602b22da9eb2ce6ed202207f8e0e60d418a8fa66d4608ff13829df6d40b7cbd52223390678aebeb37063b6[ALL] 0372107bf36f6c980bf5070e7004c743396bde827c5d735a9fcbcb35f215f23173", 15 | "hex": "473044022063a8bc218fc1309428f65f222272215a739ba6ec3ef4b4602b22da9eb2ce6ed202207f8e0e60d418a8fa66d4608ff13829df6d40b7cbd52223390678aebeb37063b601210372107bf36f6c980bf5070e7004c743396bde827c5d735a9fcbcb35f215f23173" 16 | }, 17 | "sequence": 4294967295 18 | }, 19 | { 20 | "txid": "29d4a1288a74b30061c189fad435f326861b82bd9d0c9b4facf6823abc1a53c1", 21 | "vout": 2, 22 | "scriptSig": { 23 | "asm": "30440220674c828a08ab9545d3e82fa3720b3d66ceaed4e5fd241a27dd1f54fd126b325b022077debe1ebc3395a9283587f0b074dc1f8ce1b0483775180ecfccf990ae8d0f5f[ALL] 0372107bf36f6c980bf5070e7004c743396bde827c5d735a9fcbcb35f215f23173", 24 | "hex": "4730440220674c828a08ab9545d3e82fa3720b3d66ceaed4e5fd241a27dd1f54fd126b325b022077debe1ebc3395a9283587f0b074dc1f8ce1b0483775180ecfccf990ae8d0f5f01210372107bf36f6c980bf5070e7004c743396bde827c5d735a9fcbcb35f215f23173" 25 | }, 26 | "sequence": 4294967295 27 | }, 28 | { 29 | "txid": "7fd0d72af01fbeb9e62936b07b3e91a39681d1ff65dfbfa21061a252ecd6fe6b", 30 | "vout": 2, 31 | "scriptSig": { 32 | "asm": "304402202a227da68fa66ed75886baee16eb565740473f699c6a5bd900aea610d27f63c202207d61b50e80b5f1a3fce481e59c733aaf8cc0624f8a5380d44a46d1143f704bc8[ALL] 0372107bf36f6c980bf5070e7004c743396bde827c5d735a9fcbcb35f215f23173", 33 | "hex": "47304402202a227da68fa66ed75886baee16eb565740473f699c6a5bd900aea610d27f63c202207d61b50e80b5f1a3fce481e59c733aaf8cc0624f8a5380d44a46d1143f704bc801210372107bf36f6c980bf5070e7004c743396bde827c5d735a9fcbcb35f215f23173" 34 | }, 35 | "sequence": 4294967295 36 | } 37 | ], 38 | "vout": [ 39 | { 40 | "value": 0.00385686, 41 | "n": 0, 42 | "scriptPubKey": { 43 | "asm": "OP_DUP OP_HASH160 29e38883cd397cf8f53d1676abd6dcad25cc1348 OP_EQUALVERIFY OP_CHECKSIG", 44 | "hex": "76a91429e38883cd397cf8f53d1676abd6dcad25cc134888ac", 45 | "reqSigs": 1, 46 | "type": "pubkeyhash", 47 | "addresses": [ 48 | "mjLSaCyJHCSeh4MsiNGnF1RLqD9ySqnAQ1" 49 | ] 50 | } 51 | } 52 | ], 53 | "blockhash": "00000000008dbbe17ab8faadea58003dec9271e8774fb10378157a19dc7a54bc", 54 | "confirmations": 187214, 55 | "time": 1463139038, 56 | "blocktime": 1463139038 57 | } -------------------------------------------------------------------------------- /spec/fixtures/tx/829200296bbbe5f95829c489adb9841ae1b563a64f5922e66f73ba61673008e1.json: -------------------------------------------------------------------------------- 1 | { 2 | "hex": "0100000002d57f29f2ddca6dc2873fd518fc7a30e9071d03e6783dc97aed0b282c793726d6000000006b4830450221009ab8161ca948060bd3ac5f91fb4ad1d6a893f92a404b9223b2494598f586403e02207c57b202e67f27f9a95ab3a675ee897381b32dcf836c6d44e8fb0830d9fb390f012102174620b7c583dc471e04b604fc85f7ae19d161a070af7227ca03edfcb6c4dc4fffffffff08fcc35a4b46b36be2b07b5dc06bb635956597d5ea79b028a0a2f70ae6cf6fd6000000006b483045022100d769e648c9cefeee9d537f519b843de603ab15fc8c47e87e42cba7d9a2e57ad202201072a79259464a0dfbffdd342d3fe9eab36c34f09330334e63e139f11313524c012102174620b7c583dc471e04b604fc85f7ae19d161a070af7227ca03edfcb6c4dc4fffffffff0400000000000000000a6a084f41010002055f0058020000000000001976a914b7218fe503cd18555255e5b13d4f07f3fd00d0c988ac58020000000000001976a914de20a2d5a57ee40ce9a4ce14cf06a6c2c6ffe29788acb8770700000000001976a914de20a2d5a57ee40ce9a4ce14cf06a6c2c6ffe29788ac00000000", 3 | "txid": "829200296bbbe5f95829c489adb9841ae1b563a64f5922e66f73ba61673008e1", 4 | "size": 427, 5 | "version": 1, 6 | "locktime": 0, 7 | "vin": [ 8 | { 9 | "txid": "d62637792c280bed7ac93d78e6031d07e9307afc18d53f87c26dcaddf2297fd5", 10 | "vout": 0, 11 | "scriptSig": { 12 | "asm": "30450221009ab8161ca948060bd3ac5f91fb4ad1d6a893f92a404b9223b2494598f586403e02207c57b202e67f27f9a95ab3a675ee897381b32dcf836c6d44e8fb0830d9fb390f[ALL] 02174620b7c583dc471e04b604fc85f7ae19d161a070af7227ca03edfcb6c4dc4f", 13 | "hex": "4830450221009ab8161ca948060bd3ac5f91fb4ad1d6a893f92a404b9223b2494598f586403e02207c57b202e67f27f9a95ab3a675ee897381b32dcf836c6d44e8fb0830d9fb390f012102174620b7c583dc471e04b604fc85f7ae19d161a070af7227ca03edfcb6c4dc4f" 14 | }, 15 | "sequence": 4294967295 16 | }, 17 | { 18 | "txid": "d66fcfe60af7a2a028b079ead597659535b66bc05d7bb0e26bb3464b5ac3fc08", 19 | "vout": 0, 20 | "scriptSig": { 21 | "asm": "3045022100d769e648c9cefeee9d537f519b843de603ab15fc8c47e87e42cba7d9a2e57ad202201072a79259464a0dfbffdd342d3fe9eab36c34f09330334e63e139f11313524c[ALL] 02174620b7c583dc471e04b604fc85f7ae19d161a070af7227ca03edfcb6c4dc4f", 22 | "hex": "483045022100d769e648c9cefeee9d537f519b843de603ab15fc8c47e87e42cba7d9a2e57ad202201072a79259464a0dfbffdd342d3fe9eab36c34f09330334e63e139f11313524c012102174620b7c583dc471e04b604fc85f7ae19d161a070af7227ca03edfcb6c4dc4f" 23 | }, 24 | "sequence": 4294967295 25 | } 26 | ], 27 | "vout": [ 28 | { 29 | "value": 0.00000000, 30 | "n": 0, 31 | "scriptPubKey": { 32 | "asm": "OP_RETURN 4f41010002055f00", 33 | "hex": "6a084f41010002055f00", 34 | "type": "nulldata" 35 | } 36 | }, 37 | { 38 | "value": 0.00000600, 39 | "n": 1, 40 | "scriptPubKey": { 41 | "asm": "OP_DUP OP_HASH160 b7218fe503cd18555255e5b13d4f07f3fd00d0c9 OP_EQUALVERIFY OP_CHECKSIG", 42 | "hex": "76a914b7218fe503cd18555255e5b13d4f07f3fd00d0c988ac", 43 | "reqSigs": 1, 44 | "type": "pubkeyhash", 45 | "addresses": [ 46 | "1HhJs3JgbiyxC8ktfi6nU4wTqVmrMtCVkG" 47 | ] 48 | } 49 | }, 50 | { 51 | "value": 0.00000600, 52 | "n": 2, 53 | "scriptPubKey": { 54 | "asm": "OP_DUP OP_HASH160 de20a2d5a57ee40ce9a4ce14cf06a6c2c6ffe297 OP_EQUALVERIFY OP_CHECKSIG", 55 | "hex": "76a914de20a2d5a57ee40ce9a4ce14cf06a6c2c6ffe29788ac", 56 | "reqSigs": 1, 57 | "type": "pubkeyhash", 58 | "addresses": [ 59 | "1MFW7BTwiNbAkmVz4SzAMQXboKYKGSzkq2" 60 | ] 61 | } 62 | }, 63 | { 64 | "value": 0.00489400, 65 | "n": 3, 66 | "scriptPubKey": { 67 | "asm": "OP_DUP OP_HASH160 de20a2d5a57ee40ce9a4ce14cf06a6c2c6ffe297 OP_EQUALVERIFY OP_CHECKSIG", 68 | "hex": "76a914de20a2d5a57ee40ce9a4ce14cf06a6c2c6ffe29788ac", 69 | "reqSigs": 1, 70 | "type": "pubkeyhash", 71 | "addresses": [ 72 | "1MFW7BTwiNbAkmVz4SzAMQXboKYKGSzkq2" 73 | ] 74 | } 75 | } 76 | ], 77 | "blockhash": "000000000000000016971bc575a227769049ee5945322cc75ae7052436e6a8c8", 78 | "confirmations": 78536, 79 | "time": 1433912620, 80 | "blocktime": 1433912620 81 | } -------------------------------------------------------------------------------- /spec/fixtures/tx/8382f29f591222a8e2c8a4f617516353f5e88774133f220950ed1fe0edfeef25.json: -------------------------------------------------------------------------------- 1 | { 2 | "hex": "0100000002601c8e18d88537c1bae0691c0d8b768c952b4402b114d5964f692c140d719a8e020000006a47304402204499758dab8e117c40f640de25f2a487989be277a84c54a2fe027914ec4d2a59022079641263d4463d821802af282ff3c3a30ebf0e68c77f6027c8b1d00eebe1ca6a012102174620b7c583dc471e04b604fc85f7ae19d161a070af7227ca03edfcb6c4dc4fffffffff601c8e18d88537c1bae0691c0d8b768c952b4402b114d5964f692c140d719a8e030000006b483045022100bedf89e7302f8e2cc4ce5c4f8fd31ee0093e362a348df197c30725ece485bca702206605a643f16da53ce72a13c22b98166e4eeb7fcb8e744c415c2b514b35b54a77012102174620b7c583dc471e04b604fc85f7ae19d161a070af7227ca03edfcb6c4dc4fffffffff0400000000000000000a6a084f4101000201440058020000000000001976a914b7218fe503cd18555255e5b13d4f07f3fd00d0c988ac58020000000000001976a914de20a2d5a57ee40ce9a4ce14cf06a6c2c6ffe29788ac80fb0600000000001976a914de20a2d5a57ee40ce9a4ce14cf06a6c2c6ffe29788ac00000000", 3 | "txid": "8382f29f591222a8e2c8a4f617516353f5e88774133f220950ed1fe0edfeef25", 4 | "size": 426, 5 | "version": 1, 6 | "locktime": 0, 7 | "vin": [ 8 | { 9 | "txid": "8e9a710d142c694f96d514b102442b958c768b0d1c69e0bac13785d8188e1c60", 10 | "vout": 2, 11 | "scriptSig": { 12 | "asm": "304402204499758dab8e117c40f640de25f2a487989be277a84c54a2fe027914ec4d2a59022079641263d4463d821802af282ff3c3a30ebf0e68c77f6027c8b1d00eebe1ca6a[ALL] 02174620b7c583dc471e04b604fc85f7ae19d161a070af7227ca03edfcb6c4dc4f", 13 | "hex": "47304402204499758dab8e117c40f640de25f2a487989be277a84c54a2fe027914ec4d2a59022079641263d4463d821802af282ff3c3a30ebf0e68c77f6027c8b1d00eebe1ca6a012102174620b7c583dc471e04b604fc85f7ae19d161a070af7227ca03edfcb6c4dc4f" 14 | }, 15 | "sequence": 4294967295 16 | }, 17 | { 18 | "txid": "8e9a710d142c694f96d514b102442b958c768b0d1c69e0bac13785d8188e1c60", 19 | "vout": 3, 20 | "scriptSig": { 21 | "asm": "3045022100bedf89e7302f8e2cc4ce5c4f8fd31ee0093e362a348df197c30725ece485bca702206605a643f16da53ce72a13c22b98166e4eeb7fcb8e744c415c2b514b35b54a77[ALL] 02174620b7c583dc471e04b604fc85f7ae19d161a070af7227ca03edfcb6c4dc4f", 22 | "hex": "483045022100bedf89e7302f8e2cc4ce5c4f8fd31ee0093e362a348df197c30725ece485bca702206605a643f16da53ce72a13c22b98166e4eeb7fcb8e744c415c2b514b35b54a77012102174620b7c583dc471e04b604fc85f7ae19d161a070af7227ca03edfcb6c4dc4f" 23 | }, 24 | "sequence": 4294967295 25 | } 26 | ], 27 | "vout": [ 28 | { 29 | "value": 0.00000000, 30 | "n": 0, 31 | "scriptPubKey": { 32 | "asm": "OP_RETURN 4f41010002014400", 33 | "hex": "6a084f41010002014400", 34 | "type": "nulldata" 35 | } 36 | }, 37 | { 38 | "value": 0.00000600, 39 | "n": 1, 40 | "scriptPubKey": { 41 | "asm": "OP_DUP OP_HASH160 b7218fe503cd18555255e5b13d4f07f3fd00d0c9 OP_EQUALVERIFY OP_CHECKSIG", 42 | "hex": "76a914b7218fe503cd18555255e5b13d4f07f3fd00d0c988ac", 43 | "reqSigs": 1, 44 | "type": "pubkeyhash", 45 | "addresses": [ 46 | "1HhJs3JgbiyxC8ktfi6nU4wTqVmrMtCVkG" 47 | ] 48 | } 49 | }, 50 | { 51 | "value": 0.00000600, 52 | "n": 2, 53 | "scriptPubKey": { 54 | "asm": "OP_DUP OP_HASH160 de20a2d5a57ee40ce9a4ce14cf06a6c2c6ffe297 OP_EQUALVERIFY OP_CHECKSIG", 55 | "hex": "76a914de20a2d5a57ee40ce9a4ce14cf06a6c2c6ffe29788ac", 56 | "reqSigs": 1, 57 | "type": "pubkeyhash", 58 | "addresses": [ 59 | "1MFW7BTwiNbAkmVz4SzAMQXboKYKGSzkq2" 60 | ] 61 | } 62 | }, 63 | { 64 | "value": 0.00457600, 65 | "n": 3, 66 | "scriptPubKey": { 67 | "asm": "OP_DUP OP_HASH160 de20a2d5a57ee40ce9a4ce14cf06a6c2c6ffe297 OP_EQUALVERIFY OP_CHECKSIG", 68 | "hex": "76a914de20a2d5a57ee40ce9a4ce14cf06a6c2c6ffe29788ac", 69 | "reqSigs": 1, 70 | "type": "pubkeyhash", 71 | "addresses": [ 72 | "1MFW7BTwiNbAkmVz4SzAMQXboKYKGSzkq2" 73 | ] 74 | } 75 | } 76 | ], 77 | "blockhash": "0000000000000000167cff0f703ab63b2dbd4cfb2cef441cbbc2301b499bf4aa", 78 | "confirmations": 78265, 79 | "time": 1434067459, 80 | "blocktime": 1434067459 81 | } -------------------------------------------------------------------------------- /spec/fixtures/tx/88b5379ca502953d7d24f686f165a87bf776ffc511ef5e6e8a54d8da108ee00a.json: -------------------------------------------------------------------------------- 1 | { 2 | "hex": "0100000001092b14324c88f76e76ece107af1f38d96c675e0e5b40f456d8d20ebf9ab6aa45050000006b483045022100f9235046b7177c32f68a70926e0853d006cee621d2c4abe4594c33341cfa5b5c022033916fab71ea2b4cd95acd845af6082da2466fb96939b6c9e66641c8a68e0b2d01210292ee82d9add0512294723f2c363aee24efdeb3f258cdaf5118a4fcf5263e92c9ffffffff03580200000000000017a914789644ea7fcdefe94934cc9d13545e8b0fe2fc478700000000000000000b6a094f41010001d086030060030100000000001976a91446c2fbfbecc99a63148fa076de58cf29b0bcf0b088ac00000000", 3 | "txid": "88b5379ca502953d7d24f686f165a87bf776ffc511ef5e6e8a54d8da108ee00a", 4 | "hash": "88b5379ca502953d7d24f686f165a87bf776ffc511ef5e6e8a54d8da108ee00a", 5 | "size": 244, 6 | "vsize": 244, 7 | "version": 1, 8 | "locktime": 0, 9 | "vin": [ 10 | { 11 | "txid": "45aab69abf0ed2d856f4405b0e5e676cd9381faf07e1ec766ef7884c32142b09", 12 | "vout": 5, 13 | "scriptSig": { 14 | "asm": "3045022100f9235046b7177c32f68a70926e0853d006cee621d2c4abe4594c33341cfa5b5c022033916fab71ea2b4cd95acd845af6082da2466fb96939b6c9e66641c8a68e0b2d[ALL] 0292ee82d9add0512294723f2c363aee24efdeb3f258cdaf5118a4fcf5263e92c9", 15 | "hex": "483045022100f9235046b7177c32f68a70926e0853d006cee621d2c4abe4594c33341cfa5b5c022033916fab71ea2b4cd95acd845af6082da2466fb96939b6c9e66641c8a68e0b2d01210292ee82d9add0512294723f2c363aee24efdeb3f258cdaf5118a4fcf5263e92c9" 16 | }, 17 | "sequence": 4294967295 18 | } 19 | ], 20 | "vout": [ 21 | { 22 | "value": 0.00000600, 23 | "n": 0, 24 | "scriptPubKey": { 25 | "asm": "OP_HASH160 789644ea7fcdefe94934cc9d13545e8b0fe2fc47 OP_EQUAL", 26 | "hex": "a914789644ea7fcdefe94934cc9d13545e8b0fe2fc4787", 27 | "reqSigs": 1, 28 | "type": "scripthash", 29 | "addresses": [ 30 | "2N4Eq6C2Nh1Zj2noCh63ttPnVtuWkpJmHCS" 31 | ] 32 | } 33 | }, 34 | { 35 | "value": 0.00000000, 36 | "n": 1, 37 | "scriptPubKey": { 38 | "asm": "OP_RETURN 4f41010001d0860300", 39 | "hex": "6a094f41010001d0860300", 40 | "type": "nulldata" 41 | } 42 | }, 43 | { 44 | "value": 0.00066400, 45 | "n": 2, 46 | "scriptPubKey": { 47 | "asm": "OP_DUP OP_HASH160 46c2fbfbecc99a63148fa076de58cf29b0bcf0b0 OP_EQUALVERIFY OP_CHECKSIG", 48 | "hex": "76a91446c2fbfbecc99a63148fa076de58cf29b0bcf0b088ac", 49 | "reqSigs": 1, 50 | "type": "pubkeyhash", 51 | "addresses": [ 52 | "mmy7BEH1SUGAeSVUR22pt5hPaejo2645F1" 53 | ] 54 | } 55 | } 56 | ], 57 | "blockhash": "0000000000000cd789d6d1da862795d5bab38231b291f2c7c6f3f3eaf9a6b296", 58 | "confirmations": 63982, 59 | "time": 1475636030, 60 | "blocktime": 1475636030 61 | } -------------------------------------------------------------------------------- /spec/fixtures/tx/8e9a710d142c694f96d514b102442b958c768b0d1c69e0bac13785d8188e1c60.json: -------------------------------------------------------------------------------- 1 | { 2 | "hex": "0100000002daf4aac18a09390ba73aa0a905e13c55d721e6b133d4a3fd352506803e99020c020000006a47304402204fc5339a84a2cb85d8dbc5692401ddcddc0f7ceda094d58019c1b1e0725d616502207c416e182a0d40216898db84d76e07e8ef37086dabf16a86d0522357de4dbe06012102174620b7c583dc471e04b604fc85f7ae19d161a070af7227ca03edfcb6c4dc4fffffffffdaf4aac18a09390ba73aa0a905e13c55d721e6b133d4a3fd352506803e99020c030000006a4730440220652824656888d25ca13d5badcea616b83fa260391a83467ba0b2c9e827eef07e0220435851f746b6a6948d8b3692015ce83c2eeb41ba898fcfafefa530b0e4af2ad4012102174620b7c583dc471e04b604fc85f7ae19d161a070af7227ca03edfcb6c4dc4fffffffff0400000000000000000a6a084f4101000201450058020000000000001976a914b7218fe503cd18555255e5b13d4f07f3fd00d0c988ac58020000000000001976a914de20a2d5a57ee40ce9a4ce14cf06a6c2c6ffe29788ace8240700000000001976a914de20a2d5a57ee40ce9a4ce14cf06a6c2c6ffe29788ac00000000", 3 | "txid": "8e9a710d142c694f96d514b102442b958c768b0d1c69e0bac13785d8188e1c60", 4 | "size": 425, 5 | "version": 1, 6 | "locktime": 0, 7 | "vin": [ 8 | { 9 | "txid": "0c02993e80062535fda3d433b1e621d7553ce105a9a03aa70b39098ac1aaf4da", 10 | "vout": 2, 11 | "scriptSig": { 12 | "asm": "304402204fc5339a84a2cb85d8dbc5692401ddcddc0f7ceda094d58019c1b1e0725d616502207c416e182a0d40216898db84d76e07e8ef37086dabf16a86d0522357de4dbe06[ALL] 02174620b7c583dc471e04b604fc85f7ae19d161a070af7227ca03edfcb6c4dc4f", 13 | "hex": "47304402204fc5339a84a2cb85d8dbc5692401ddcddc0f7ceda094d58019c1b1e0725d616502207c416e182a0d40216898db84d76e07e8ef37086dabf16a86d0522357de4dbe06012102174620b7c583dc471e04b604fc85f7ae19d161a070af7227ca03edfcb6c4dc4f" 14 | }, 15 | "sequence": 4294967295 16 | }, 17 | { 18 | "txid": "0c02993e80062535fda3d433b1e621d7553ce105a9a03aa70b39098ac1aaf4da", 19 | "vout": 3, 20 | "scriptSig": { 21 | "asm": "30440220652824656888d25ca13d5badcea616b83fa260391a83467ba0b2c9e827eef07e0220435851f746b6a6948d8b3692015ce83c2eeb41ba898fcfafefa530b0e4af2ad4[ALL] 02174620b7c583dc471e04b604fc85f7ae19d161a070af7227ca03edfcb6c4dc4f", 22 | "hex": "4730440220652824656888d25ca13d5badcea616b83fa260391a83467ba0b2c9e827eef07e0220435851f746b6a6948d8b3692015ce83c2eeb41ba898fcfafefa530b0e4af2ad4012102174620b7c583dc471e04b604fc85f7ae19d161a070af7227ca03edfcb6c4dc4f" 23 | }, 24 | "sequence": 4294967295 25 | } 26 | ], 27 | "vout": [ 28 | { 29 | "value": 0.00000000, 30 | "n": 0, 31 | "scriptPubKey": { 32 | "asm": "OP_RETURN 4f41010002014500", 33 | "hex": "6a084f41010002014500", 34 | "type": "nulldata" 35 | } 36 | }, 37 | { 38 | "value": 0.00000600, 39 | "n": 1, 40 | "scriptPubKey": { 41 | "asm": "OP_DUP OP_HASH160 b7218fe503cd18555255e5b13d4f07f3fd00d0c9 OP_EQUALVERIFY OP_CHECKSIG", 42 | "hex": "76a914b7218fe503cd18555255e5b13d4f07f3fd00d0c988ac", 43 | "reqSigs": 1, 44 | "type": "pubkeyhash", 45 | "addresses": [ 46 | "1HhJs3JgbiyxC8ktfi6nU4wTqVmrMtCVkG" 47 | ] 48 | } 49 | }, 50 | { 51 | "value": 0.00000600, 52 | "n": 2, 53 | "scriptPubKey": { 54 | "asm": "OP_DUP OP_HASH160 de20a2d5a57ee40ce9a4ce14cf06a6c2c6ffe297 OP_EQUALVERIFY OP_CHECKSIG", 55 | "hex": "76a914de20a2d5a57ee40ce9a4ce14cf06a6c2c6ffe29788ac", 56 | "reqSigs": 1, 57 | "type": "pubkeyhash", 58 | "addresses": [ 59 | "1MFW7BTwiNbAkmVz4SzAMQXboKYKGSzkq2" 60 | ] 61 | } 62 | }, 63 | { 64 | "value": 0.00468200, 65 | "n": 3, 66 | "scriptPubKey": { 67 | "asm": "OP_DUP OP_HASH160 de20a2d5a57ee40ce9a4ce14cf06a6c2c6ffe297 OP_EQUALVERIFY OP_CHECKSIG", 68 | "hex": "76a914de20a2d5a57ee40ce9a4ce14cf06a6c2c6ffe29788ac", 69 | "reqSigs": 1, 70 | "type": "pubkeyhash", 71 | "addresses": [ 72 | "1MFW7BTwiNbAkmVz4SzAMQXboKYKGSzkq2" 73 | ] 74 | } 75 | } 76 | ], 77 | "blockhash": "0000000000000000167cff0f703ab63b2dbd4cfb2cef441cbbc2301b499bf4aa", 78 | "confirmations": 78265, 79 | "time": 1434067459, 80 | "blocktime": 1434067459 81 | } -------------------------------------------------------------------------------- /spec/fixtures/tx/90abd841f9be2340eb42bcba3dd5283dbdfc5cd0b23a4364768a69b6e210f829.json: -------------------------------------------------------------------------------- 1 | { 2 | "hex": "010000000149c2928fed19a378e61b7327f4aa200e8de82fc47a538fb9458be922501f6ec6010000006a47304402203fd1e6a9d85112675fbbbf8bbe795467f97a04f5f473dd7b3acfa9c8d300b2460220273355e9e55ceb69625399fcf9f082fe73777876174d53d18ad8b3ade4ef948b01210292ee82d9add0512294723f2c363aee24efdeb3f258cdaf5118a4fcf5263e92c9ffffffff0358020000000000001976a91446c2fbfbecc99a63148fa076de58cf29b0bcf0b088ac00000000000000000a6a084f41010001e80700385d0100000000001976a91446c2fbfbecc99a63148fa076de58cf29b0bcf0b088ac00000000", 3 | "txid": "90abd841f9be2340eb42bcba3dd5283dbdfc5cd0b23a4364768a69b6e210f829", 4 | "hash": "90abd841f9be2340eb42bcba3dd5283dbdfc5cd0b23a4364768a69b6e210f829", 5 | "size": 244, 6 | "vsize": 244, 7 | "version": 1, 8 | "locktime": 0, 9 | "vin": [ 10 | { 11 | "txid": "c66e1f5022e98b45b98f537ac42fe88d0e20aaf427731be678a319ed8f92c249", 12 | "vout": 1, 13 | "scriptSig": { 14 | "asm": "304402203fd1e6a9d85112675fbbbf8bbe795467f97a04f5f473dd7b3acfa9c8d300b2460220273355e9e55ceb69625399fcf9f082fe73777876174d53d18ad8b3ade4ef948b[ALL] 0292ee82d9add0512294723f2c363aee24efdeb3f258cdaf5118a4fcf5263e92c9", 15 | "hex": "47304402203fd1e6a9d85112675fbbbf8bbe795467f97a04f5f473dd7b3acfa9c8d300b2460220273355e9e55ceb69625399fcf9f082fe73777876174d53d18ad8b3ade4ef948b01210292ee82d9add0512294723f2c363aee24efdeb3f258cdaf5118a4fcf5263e92c9" 16 | }, 17 | "sequence": 4294967295 18 | } 19 | ], 20 | "vout": [ 21 | { 22 | "value": 0.00000600, 23 | "n": 0, 24 | "scriptPubKey": { 25 | "asm": "OP_DUP OP_HASH160 46c2fbfbecc99a63148fa076de58cf29b0bcf0b0 OP_EQUALVERIFY OP_CHECKSIG", 26 | "hex": "76a91446c2fbfbecc99a63148fa076de58cf29b0bcf0b088ac", 27 | "reqSigs": 1, 28 | "type": "pubkeyhash", 29 | "addresses": [ 30 | "mmy7BEH1SUGAeSVUR22pt5hPaejo2645F1" 31 | ] 32 | } 33 | }, 34 | { 35 | "value": 0.00000000, 36 | "n": 1, 37 | "scriptPubKey": { 38 | "asm": "OP_RETURN 4f41010001e80700", 39 | "hex": "6a084f41010001e80700", 40 | "type": "nulldata" 41 | } 42 | }, 43 | { 44 | "value": 0.00089400, 45 | "n": 2, 46 | "scriptPubKey": { 47 | "asm": "OP_DUP OP_HASH160 46c2fbfbecc99a63148fa076de58cf29b0bcf0b0 OP_EQUALVERIFY OP_CHECKSIG", 48 | "hex": "76a91446c2fbfbecc99a63148fa076de58cf29b0bcf0b088ac", 49 | "reqSigs": 1, 50 | "type": "pubkeyhash", 51 | "addresses": [ 52 | "mmy7BEH1SUGAeSVUR22pt5hPaejo2645F1" 53 | ] 54 | } 55 | } 56 | ], 57 | "blockhash": "0000000000022c774457f2e58b0e49fd0d568707e989fabd813a75e4c5540009", 58 | "confirmations": 134762, 59 | "time": 1469349394, 60 | "blocktime": 1469349394 61 | } -------------------------------------------------------------------------------- /spec/fixtures/tx/92ecb6c38bfefc3b6ff8b48a2dd14ece823d37c02adbeeeeede5a801e4926ece.json: -------------------------------------------------------------------------------- 1 | { 2 | "hex": "0100000002601c8e18d88537c1bae0691c0d8b768c952b4402b114d5964f692c140d719a8e010000006a4730440220013d9250bd071fff47d9a348acbf032a599df75172ce5c99e7037744e85e5ae90220362d35615d325aaf1e8780659fea03e8e7d4a1a277b33870cf383631c2d6206c012102544912ce55bcab484f5d2ba0f54c420160f37c3978b68b0fa67cc92417739b3effffffff84392fd69b08f4603d200fabfff16f4bbb10e65ece347b3c9d9863ab3807f17b020000006b4830450221009db1641290041a3578e6928a6b9a76c40cb3912f98677b2fbdccc9e2988a4a1802201819f8e3da8edc6012397290c29fefede2b749cc97474f9cfea30bba86217e2b012102544912ce55bcab484f5d2ba0f54c420160f37c3978b68b0fa67cc92417739b3effffffff030000000000000000096a074f41010001010058020000000000001976a91424b3d405bc60bd9628691fe28bb00f6800e1480688ac20670000000000001976a914b7218fe503cd18555255e5b13d4f07f3fd00d0c988ac00000000", 3 | "txid": "92ecb6c38bfefc3b6ff8b48a2dd14ece823d37c02adbeeeeede5a801e4926ece", 4 | "size": 391, 5 | "version": 1, 6 | "locktime": 0, 7 | "vin": [ 8 | { 9 | "txid": "8e9a710d142c694f96d514b102442b958c768b0d1c69e0bac13785d8188e1c60", 10 | "vout": 1, 11 | "scriptSig": { 12 | "asm": "30440220013d9250bd071fff47d9a348acbf032a599df75172ce5c99e7037744e85e5ae90220362d35615d325aaf1e8780659fea03e8e7d4a1a277b33870cf383631c2d6206c[ALL] 02544912ce55bcab484f5d2ba0f54c420160f37c3978b68b0fa67cc92417739b3e", 13 | "hex": "4730440220013d9250bd071fff47d9a348acbf032a599df75172ce5c99e7037744e85e5ae90220362d35615d325aaf1e8780659fea03e8e7d4a1a277b33870cf383631c2d6206c012102544912ce55bcab484f5d2ba0f54c420160f37c3978b68b0fa67cc92417739b3e" 14 | }, 15 | "sequence": 4294967295 16 | }, 17 | { 18 | "txid": "7bf10738ab63989d3c7b34ce5ee610bb4b6ff1ffab0f203d60f4089bd62f3984", 19 | "vout": 2, 20 | "scriptSig": { 21 | "asm": "30450221009db1641290041a3578e6928a6b9a76c40cb3912f98677b2fbdccc9e2988a4a1802201819f8e3da8edc6012397290c29fefede2b749cc97474f9cfea30bba86217e2b[ALL] 02544912ce55bcab484f5d2ba0f54c420160f37c3978b68b0fa67cc92417739b3e", 22 | "hex": "4830450221009db1641290041a3578e6928a6b9a76c40cb3912f98677b2fbdccc9e2988a4a1802201819f8e3da8edc6012397290c29fefede2b749cc97474f9cfea30bba86217e2b012102544912ce55bcab484f5d2ba0f54c420160f37c3978b68b0fa67cc92417739b3e" 23 | }, 24 | "sequence": 4294967295 25 | } 26 | ], 27 | "vout": [ 28 | { 29 | "value": 0.00000000, 30 | "n": 0, 31 | "scriptPubKey": { 32 | "asm": "OP_RETURN 4f410100010100", 33 | "hex": "6a074f410100010100", 34 | "type": "nulldata" 35 | } 36 | }, 37 | { 38 | "value": 0.00000600, 39 | "n": 1, 40 | "scriptPubKey": { 41 | "asm": "OP_DUP OP_HASH160 24b3d405bc60bd9628691fe28bb00f6800e14806 OP_EQUALVERIFY OP_CHECKSIG", 42 | "hex": "76a91424b3d405bc60bd9628691fe28bb00f6800e1480688ac", 43 | "reqSigs": 1, 44 | "type": "pubkeyhash", 45 | "addresses": [ 46 | "14M4kbAtn71P1nnNYuhBDFTNYxa19t1XP6" 47 | ] 48 | } 49 | }, 50 | { 51 | "value": 0.00026400, 52 | "n": 2, 53 | "scriptPubKey": { 54 | "asm": "OP_DUP OP_HASH160 b7218fe503cd18555255e5b13d4f07f3fd00d0c9 OP_EQUALVERIFY OP_CHECKSIG", 55 | "hex": "76a914b7218fe503cd18555255e5b13d4f07f3fd00d0c988ac", 56 | "reqSigs": 1, 57 | "type": "pubkeyhash", 58 | "addresses": [ 59 | "1HhJs3JgbiyxC8ktfi6nU4wTqVmrMtCVkG" 60 | ] 61 | } 62 | } 63 | ], 64 | "blockhash": "00000000000000000df36d5c058d3b256894c1339a12561005be038691969a3e", 65 | "confirmations": 78069, 66 | "time": 1434182956, 67 | "blocktime": 1434182956 68 | } -------------------------------------------------------------------------------- /spec/fixtures/tx/950a882a74bd2fd4f287090f0c467d144f832388898914d198bb03f2cc612f6e.json: -------------------------------------------------------------------------------- 1 | { 2 | "hex": "010000000130fb1d774e51998e33a37ca2b0ab895f97148891d152f3c2f2c508f1a772abf2000000006b483045022100a73b9f64f47ab8d85d00b3f98fbe047080a62a1392cfdc46f229cbca40c60cf80220028f064b3cb3294f96d0751713c355e0185cbdf86f1c65f8d3a1015f71151c93012102fada989e132f5c7002c18c7fa6971f6c214d634eeb9b6d86077a63708cb66776ffffffff0358020000000000001976a914878bd346b688c798eeeff329c6ffafddddbaa0f288ac0000000000000000206a1e4f41010001d00f16753d687474703a2f2f676f6f2e676c2f6653346d456a385d0100000000001976a914878bd346b688c798eeeff329c6ffafddddbaa0f288ac00000000", 3 | "txid": "950a882a74bd2fd4f287090f0c467d144f832388898914d198bb03f2cc612f6e", 4 | "size": 267, 5 | "version": 1, 6 | "locktime": 0, 7 | "vin": [ 8 | { 9 | "txid": "f2ab72a7f108c5f2c2f352d1918814975f89abb0a27ca3338e99514e771dfb30", 10 | "vout": 0, 11 | "scriptSig": { 12 | "asm": "3045022100a73b9f64f47ab8d85d00b3f98fbe047080a62a1392cfdc46f229cbca40c60cf80220028f064b3cb3294f96d0751713c355e0185cbdf86f1c65f8d3a1015f71151c93[ALL] 02fada989e132f5c7002c18c7fa6971f6c214d634eeb9b6d86077a63708cb66776", 13 | "hex": "483045022100a73b9f64f47ab8d85d00b3f98fbe047080a62a1392cfdc46f229cbca40c60cf80220028f064b3cb3294f96d0751713c355e0185cbdf86f1c65f8d3a1015f71151c93012102fada989e132f5c7002c18c7fa6971f6c214d634eeb9b6d86077a63708cb66776" 14 | }, 15 | "sequence": 4294967295 16 | } 17 | ], 18 | "vout": [ 19 | { 20 | "value": 0.00000600, 21 | "n": 0, 22 | "scriptPubKey": { 23 | "asm": "OP_DUP OP_HASH160 878bd346b688c798eeeff329c6ffafddddbaa0f2 OP_EQUALVERIFY OP_CHECKSIG", 24 | "hex": "76a914878bd346b688c798eeeff329c6ffafddddbaa0f288ac", 25 | "reqSigs": 1, 26 | "type": "pubkeyhash", 27 | "addresses": [ 28 | "1DMhj8VLajNUvhzXnZYnX8tgi7bReYeS13" 29 | ] 30 | } 31 | }, 32 | { 33 | "value": 0.00000000, 34 | "n": 1, 35 | "scriptPubKey": { 36 | "asm": "OP_RETURN 4f41010001d00f16753d687474703a2f2f676f6f2e676c2f6653346d456a", 37 | "hex": "6a1e4f41010001d00f16753d687474703a2f2f676f6f2e676c2f6653346d456a", 38 | "type": "nulldata" 39 | } 40 | }, 41 | { 42 | "value": 0.00089400, 43 | "n": 2, 44 | "scriptPubKey": { 45 | "asm": "OP_DUP OP_HASH160 878bd346b688c798eeeff329c6ffafddddbaa0f2 OP_EQUALVERIFY OP_CHECKSIG", 46 | "hex": "76a914878bd346b688c798eeeff329c6ffafddddbaa0f288ac", 47 | "reqSigs": 1, 48 | "type": "pubkeyhash", 49 | "addresses": [ 50 | "1DMhj8VLajNUvhzXnZYnX8tgi7bReYeS13" 51 | ] 52 | } 53 | } 54 | ], 55 | "blockhash": "000000000000000000e712ce2545780ec976e6be4f43d89861970ab210f25539", 56 | "confirmations": 61100, 57 | "time": 1444118714, 58 | "blocktime": 1444118714 59 | } -------------------------------------------------------------------------------- /spec/fixtures/tx/97f5fdfe133005c033ea3185202c53bb59d0760e9f9dd2cc2f8c50bbce8ec8bb.json: -------------------------------------------------------------------------------- 1 | { 2 | "hex": "0100000002a36a2a6126cefc3725e6e280f8879a16ec8f175cd65b3d299ce27a15fb8bba3f020000006a4730440220765588e8dc5ccbd444d5718d44ee4327ab641aab3b7ca3e961c622517cec25d4022050fdbab13690df66c60e76e9846a79b28f927345492743e24573e2a4db823269012102544912ce55bcab484f5d2ba0f54c420160f37c3978b68b0fa67cc92417739b3effffffffa36a2a6126cefc3725e6e280f8879a16ec8f175cd65b3d299ce27a15fb8bba3f030000006a47304402204bc6f61dc18a925711cd4a98ff0290b6deb6b74cfe3a1748b63dba8b7ec41cdb0220748e312eb4c9dfec8f753cddf5746afc9fb7209cff831bd03bfaf1ade0e40b33012102544912ce55bcab484f5d2ba0f54c420160f37c3978b68b0fa67cc92417739b3effffffff0400000000000000000a6a084f4101000201010058020000000000001976a91424b3d405bc60bd9628691fe28bb00f6800e1480688ac58020000000000001976a914b7218fe503cd18555255e5b13d4f07f3fd00d0c988ac10080100000000001976a914b7218fe503cd18555255e5b13d4f07f3fd00d0c988ac00000000", 3 | "txid": "97f5fdfe133005c033ea3185202c53bb59d0760e9f9dd2cc2f8c50bbce8ec8bb", 4 | "size": 425, 5 | "version": 1, 6 | "locktime": 0, 7 | "vin": [ 8 | { 9 | "txid": "3fba8bfb157ae29c293d5bd65c178fec169a87f880e2e62537fcce26612a6aa3", 10 | "vout": 2, 11 | "scriptSig": { 12 | "asm": "30440220765588e8dc5ccbd444d5718d44ee4327ab641aab3b7ca3e961c622517cec25d4022050fdbab13690df66c60e76e9846a79b28f927345492743e24573e2a4db823269[ALL] 02544912ce55bcab484f5d2ba0f54c420160f37c3978b68b0fa67cc92417739b3e", 13 | "hex": "4730440220765588e8dc5ccbd444d5718d44ee4327ab641aab3b7ca3e961c622517cec25d4022050fdbab13690df66c60e76e9846a79b28f927345492743e24573e2a4db823269012102544912ce55bcab484f5d2ba0f54c420160f37c3978b68b0fa67cc92417739b3e" 14 | }, 15 | "sequence": 4294967295 16 | }, 17 | { 18 | "txid": "3fba8bfb157ae29c293d5bd65c178fec169a87f880e2e62537fcce26612a6aa3", 19 | "vout": 3, 20 | "scriptSig": { 21 | "asm": "304402204bc6f61dc18a925711cd4a98ff0290b6deb6b74cfe3a1748b63dba8b7ec41cdb0220748e312eb4c9dfec8f753cddf5746afc9fb7209cff831bd03bfaf1ade0e40b33[ALL] 02544912ce55bcab484f5d2ba0f54c420160f37c3978b68b0fa67cc92417739b3e", 22 | "hex": "47304402204bc6f61dc18a925711cd4a98ff0290b6deb6b74cfe3a1748b63dba8b7ec41cdb0220748e312eb4c9dfec8f753cddf5746afc9fb7209cff831bd03bfaf1ade0e40b33012102544912ce55bcab484f5d2ba0f54c420160f37c3978b68b0fa67cc92417739b3e" 23 | }, 24 | "sequence": 4294967295 25 | } 26 | ], 27 | "vout": [ 28 | { 29 | "value": 0.00000000, 30 | "n": 0, 31 | "scriptPubKey": { 32 | "asm": "OP_RETURN 4f41010002010100", 33 | "hex": "6a084f41010002010100", 34 | "type": "nulldata" 35 | } 36 | }, 37 | { 38 | "value": 0.00000600, 39 | "n": 1, 40 | "scriptPubKey": { 41 | "asm": "OP_DUP OP_HASH160 24b3d405bc60bd9628691fe28bb00f6800e14806 OP_EQUALVERIFY OP_CHECKSIG", 42 | "hex": "76a91424b3d405bc60bd9628691fe28bb00f6800e1480688ac", 43 | "reqSigs": 1, 44 | "type": "pubkeyhash", 45 | "addresses": [ 46 | "14M4kbAtn71P1nnNYuhBDFTNYxa19t1XP6" 47 | ] 48 | } 49 | }, 50 | { 51 | "value": 0.00000600, 52 | "n": 2, 53 | "scriptPubKey": { 54 | "asm": "OP_DUP OP_HASH160 b7218fe503cd18555255e5b13d4f07f3fd00d0c9 OP_EQUALVERIFY OP_CHECKSIG", 55 | "hex": "76a914b7218fe503cd18555255e5b13d4f07f3fd00d0c988ac", 56 | "reqSigs": 1, 57 | "type": "pubkeyhash", 58 | "addresses": [ 59 | "1HhJs3JgbiyxC8ktfi6nU4wTqVmrMtCVkG" 60 | ] 61 | } 62 | }, 63 | { 64 | "value": 0.00067600, 65 | "n": 3, 66 | "scriptPubKey": { 67 | "asm": "OP_DUP OP_HASH160 b7218fe503cd18555255e5b13d4f07f3fd00d0c9 OP_EQUALVERIFY OP_CHECKSIG", 68 | "hex": "76a914b7218fe503cd18555255e5b13d4f07f3fd00d0c988ac", 69 | "reqSigs": 1, 70 | "type": "pubkeyhash", 71 | "addresses": [ 72 | "1HhJs3JgbiyxC8ktfi6nU4wTqVmrMtCVkG" 73 | ] 74 | } 75 | } 76 | ], 77 | "blockhash": "00000000000000000acbeea3dc11a45011c20c9b7a50c6df5971b001c1002c93", 78 | "confirmations": 78335, 79 | "time": 1434018883, 80 | "blocktime": 1434018883 81 | } -------------------------------------------------------------------------------- /spec/fixtures/tx/9da5541e6653b03437264ab249170dccee24cdfe6351826df2f4b63079df2d4d.json: -------------------------------------------------------------------------------- 1 | { 2 | "hex": "0100000002df42fa4b84a6d3ad74c0b99c26d8863282d90baca4ad0db6dea0d4214541bf44020000006b483045022100d413ee31386cf803c0018f4156299c302b0093b7244271b1c951ab8372c66b1e022005d8c1ec186624c6f2880064c5b698f8a0bf57855a8eb5f379c3e1ea7ba5aa3a012102544912ce55bcab484f5d2ba0f54c420160f37c3978b68b0fa67cc92417739b3effffffffdf42fa4b84a6d3ad74c0b99c26d8863282d90baca4ad0db6dea0d4214541bf44030000006b48304502210085464bcf5b32efc3cbfe760a7679995d52cc0e3c2b978f0645c42d28023f16a602201b60c25685c43048a583da37f01a53decd5f1820c3cf026753faa4830ae47ef3012102544912ce55bcab484f5d2ba0f54c420160f37c3978b68b0fa67cc92417739b3effffffff0400000000000000000a6a084f4101000201170058020000000000001976a91424b3d405bc60bd9628691fe28bb00f6800e1480688ac58020000000000001976a914b7218fe503cd18555255e5b13d4f07f3fd00d0c988ac40b50000000000001976a914b7218fe503cd18555255e5b13d4f07f3fd00d0c988ac00000000", 3 | "txid": "9da5541e6653b03437264ab249170dccee24cdfe6351826df2f4b63079df2d4d", 4 | "size": 427, 5 | "version": 1, 6 | "locktime": 0, 7 | "vin": [ 8 | { 9 | "txid": "44bf414521d4a0deb60dada4ac0bd9823286d8269cb9c074add3a6844bfa42df", 10 | "vout": 2, 11 | "scriptSig": { 12 | "asm": "3045022100d413ee31386cf803c0018f4156299c302b0093b7244271b1c951ab8372c66b1e022005d8c1ec186624c6f2880064c5b698f8a0bf57855a8eb5f379c3e1ea7ba5aa3a[ALL] 02544912ce55bcab484f5d2ba0f54c420160f37c3978b68b0fa67cc92417739b3e", 13 | "hex": "483045022100d413ee31386cf803c0018f4156299c302b0093b7244271b1c951ab8372c66b1e022005d8c1ec186624c6f2880064c5b698f8a0bf57855a8eb5f379c3e1ea7ba5aa3a012102544912ce55bcab484f5d2ba0f54c420160f37c3978b68b0fa67cc92417739b3e" 14 | }, 15 | "sequence": 4294967295 16 | }, 17 | { 18 | "txid": "44bf414521d4a0deb60dada4ac0bd9823286d8269cb9c074add3a6844bfa42df", 19 | "vout": 3, 20 | "scriptSig": { 21 | "asm": "304502210085464bcf5b32efc3cbfe760a7679995d52cc0e3c2b978f0645c42d28023f16a602201b60c25685c43048a583da37f01a53decd5f1820c3cf026753faa4830ae47ef3[ALL] 02544912ce55bcab484f5d2ba0f54c420160f37c3978b68b0fa67cc92417739b3e", 22 | "hex": "48304502210085464bcf5b32efc3cbfe760a7679995d52cc0e3c2b978f0645c42d28023f16a602201b60c25685c43048a583da37f01a53decd5f1820c3cf026753faa4830ae47ef3012102544912ce55bcab484f5d2ba0f54c420160f37c3978b68b0fa67cc92417739b3e" 23 | }, 24 | "sequence": 4294967295 25 | } 26 | ], 27 | "vout": [ 28 | { 29 | "value": 0.00000000, 30 | "n": 0, 31 | "scriptPubKey": { 32 | "asm": "OP_RETURN 4f41010002011700", 33 | "hex": "6a084f41010002011700", 34 | "type": "nulldata" 35 | } 36 | }, 37 | { 38 | "value": 0.00000600, 39 | "n": 1, 40 | "scriptPubKey": { 41 | "asm": "OP_DUP OP_HASH160 24b3d405bc60bd9628691fe28bb00f6800e14806 OP_EQUALVERIFY OP_CHECKSIG", 42 | "hex": "76a91424b3d405bc60bd9628691fe28bb00f6800e1480688ac", 43 | "reqSigs": 1, 44 | "type": "pubkeyhash", 45 | "addresses": [ 46 | "14M4kbAtn71P1nnNYuhBDFTNYxa19t1XP6" 47 | ] 48 | } 49 | }, 50 | { 51 | "value": 0.00000600, 52 | "n": 2, 53 | "scriptPubKey": { 54 | "asm": "OP_DUP OP_HASH160 b7218fe503cd18555255e5b13d4f07f3fd00d0c9 OP_EQUALVERIFY OP_CHECKSIG", 55 | "hex": "76a914b7218fe503cd18555255e5b13d4f07f3fd00d0c988ac", 56 | "reqSigs": 1, 57 | "type": "pubkeyhash", 58 | "addresses": [ 59 | "1HhJs3JgbiyxC8ktfi6nU4wTqVmrMtCVkG" 60 | ] 61 | } 62 | }, 63 | { 64 | "value": 0.00046400, 65 | "n": 3, 66 | "scriptPubKey": { 67 | "asm": "OP_DUP OP_HASH160 b7218fe503cd18555255e5b13d4f07f3fd00d0c9 OP_EQUALVERIFY OP_CHECKSIG", 68 | "hex": "76a914b7218fe503cd18555255e5b13d4f07f3fd00d0c988ac", 69 | "reqSigs": 1, 70 | "type": "pubkeyhash", 71 | "addresses": [ 72 | "1HhJs3JgbiyxC8ktfi6nU4wTqVmrMtCVkG" 73 | ] 74 | } 75 | } 76 | ], 77 | "blockhash": "00000000000000000f59477517f4b33dffcfaeffc42a06a586f3b58dffd7e356", 78 | "confirmations": 78129, 79 | "time": 1434151788, 80 | "blocktime": 1434151788 81 | } -------------------------------------------------------------------------------- /spec/fixtures/tx/9e5402a9c1e673c8dbd26107f077a0d50092140ec501352d3f53662e9f89a0e7.json: -------------------------------------------------------------------------------- 1 | { 2 | "hex": "010000000122c442b89c652e32ba7e2cff90715b834b71834526bd509295baea5965b71e2d010000006a47304402202986a33a7c6077eb8039bbe39b304917f3dc655cc5b30a17d729f864fb1a19c502206e8e0c411018d41dfe0380b673a010e75fea6411ca9187f983084da5da6fefc50121029362a6141d20521f77af9c5f2b6573527602baae2f9e8819039a874647e95346ffffffff0358020000000000001976a914c70decc68bd86b6a8ae3a13b077af1a7304bdd5b88ac0000000000000000216a1f4f41010001e80717753d68747470733a2f2f676f6f2e676c2f755667737434385d0100000000001976a914c70decc68bd86b6a8ae3a13b077af1a7304bdd5b88ac00000000", 3 | "txid": "9e5402a9c1e673c8dbd26107f077a0d50092140ec501352d3f53662e9f89a0e7", 4 | "hash": "9e5402a9c1e673c8dbd26107f077a0d50092140ec501352d3f53662e9f89a0e7", 5 | "size": 267, 6 | "vsize": 267, 7 | "version": 1, 8 | "locktime": 0, 9 | "vin": [ 10 | { 11 | "txid": "2d1eb76559eaba959250bd264583714b835b7190ff2c7eba322e659cb842c422", 12 | "vout": 1, 13 | "scriptSig": { 14 | "asm": "304402202986a33a7c6077eb8039bbe39b304917f3dc655cc5b30a17d729f864fb1a19c502206e8e0c411018d41dfe0380b673a010e75fea6411ca9187f983084da5da6fefc5[ALL] 029362a6141d20521f77af9c5f2b6573527602baae2f9e8819039a874647e95346", 15 | "hex": "47304402202986a33a7c6077eb8039bbe39b304917f3dc655cc5b30a17d729f864fb1a19c502206e8e0c411018d41dfe0380b673a010e75fea6411ca9187f983084da5da6fefc50121029362a6141d20521f77af9c5f2b6573527602baae2f9e8819039a874647e95346" 16 | }, 17 | "sequence": 4294967295 18 | } 19 | ], 20 | "vout": [ 21 | { 22 | "value": 0.00000600, 23 | "n": 0, 24 | "scriptPubKey": { 25 | "asm": "OP_DUP OP_HASH160 c70decc68bd86b6a8ae3a13b077af1a7304bdd5b OP_EQUALVERIFY OP_CHECKSIG", 26 | "hex": "76a914c70decc68bd86b6a8ae3a13b077af1a7304bdd5b88ac", 27 | "reqSigs": 1, 28 | "type": "pubkeyhash", 29 | "addresses": [ 30 | "myfTSkKCbvNqf231xMR5sVCBTi8VvqfR4y" 31 | ] 32 | } 33 | }, 34 | { 35 | "value": 0.00000000, 36 | "n": 1, 37 | "scriptPubKey": { 38 | "asm": "OP_RETURN 4f41010001e80717753d68747470733a2f2f676f6f2e676c2f755667737434", 39 | "hex": "6a1f4f41010001e80717753d68747470733a2f2f676f6f2e676c2f755667737434", 40 | "type": "nulldata" 41 | } 42 | }, 43 | { 44 | "value": 0.00089400, 45 | "n": 2, 46 | "scriptPubKey": { 47 | "asm": "OP_DUP OP_HASH160 c70decc68bd86b6a8ae3a13b077af1a7304bdd5b OP_EQUALVERIFY OP_CHECKSIG", 48 | "hex": "76a914c70decc68bd86b6a8ae3a13b077af1a7304bdd5b88ac", 49 | "reqSigs": 1, 50 | "type": "pubkeyhash", 51 | "addresses": [ 52 | "myfTSkKCbvNqf231xMR5sVCBTi8VvqfR4y" 53 | ] 54 | } 55 | } 56 | ], 57 | "blockhash": "00000000000511f59c43a46be7662179135d0a8102240b0f8d737405a6ad4a62", 58 | "confirmations": 386413, 59 | "time": 1453343236, 60 | "blocktime": 1453343236 61 | } -------------------------------------------------------------------------------- /spec/fixtures/tx/9efbf61ef4805708ecf8e31d982ab6de20b2d131ed9be00d2856a5fe5a8b3df5.json: -------------------------------------------------------------------------------- 1 | { 2 | "hex": "0100000002bd2e17649e9e878aca0b13177dc8d8a64db56614a537a155f79f2251f0aaf62e020000006a473044022031443f89fc948371ea9081925a25b210097991b1e79daa238156ccf97215f0e1022017771ab41e42e7552afdc96a79928aed81e50c9245b644d867363a9e32e9a078012103e46fdcbf2062598a221c0e34d0505c270fb77c2c305c40ef0919f8efc0c7f959ffffffffbd2e17649e9e878aca0b13177dc8d8a64db56614a537a155f79f2251f0aaf62e030000006a4730440220152d9451f5087ab314ea97a5cfd3964b759e8e8c50fa0fc10e64787ad1860b6302206b3b004e0c2139bf767534fbff36fb205a6638ca141094f7a8ae95c5a32953aa012103e46fdcbf2062598a221c0e34d0505c270fb77c2c305c40ef0919f8efc0c7f959ffffffff0500000000000000000b6a094f4101000264c84c0000000000000000000c6a0a4f41010002c801e44b0058020000000000001976a914f0422a68ea970a9b007924bc8173f25e862eba8588ac58020000000000001976a91438a6ebdf20cae2c9287ea014464042112ea3dbfd88ace8240700000000001976a91438a6ebdf20cae2c9287ea014464042112ea3dbfd88ac00000000", 3 | "txid": "9efbf61ef4805708ecf8e31d982ab6de20b2d131ed9be00d2856a5fe5a8b3df5", 4 | "hash": "9efbf61ef4805708ecf8e31d982ab6de20b2d131ed9be00d2856a5fe5a8b3df5", 5 | "size": 447, 6 | "vsize": 447, 7 | "version": 1, 8 | "locktime": 0, 9 | "vin": [ 10 | { 11 | "txid": "2ef6aaf051229ff755a137a51466b54da6d8c87d17130bca8a879e9e64172ebd", 12 | "vout": 2, 13 | "scriptSig": { 14 | "asm": "3044022031443f89fc948371ea9081925a25b210097991b1e79daa238156ccf97215f0e1022017771ab41e42e7552afdc96a79928aed81e50c9245b644d867363a9e32e9a078[ALL] 03e46fdcbf2062598a221c0e34d0505c270fb77c2c305c40ef0919f8efc0c7f959", 15 | "hex": "473044022031443f89fc948371ea9081925a25b210097991b1e79daa238156ccf97215f0e1022017771ab41e42e7552afdc96a79928aed81e50c9245b644d867363a9e32e9a078012103e46fdcbf2062598a221c0e34d0505c270fb77c2c305c40ef0919f8efc0c7f959" 16 | }, 17 | "sequence": 4294967295 18 | }, 19 | { 20 | "txid": "2ef6aaf051229ff755a137a51466b54da6d8c87d17130bca8a879e9e64172ebd", 21 | "vout": 3, 22 | "scriptSig": { 23 | "asm": "30440220152d9451f5087ab314ea97a5cfd3964b759e8e8c50fa0fc10e64787ad1860b6302206b3b004e0c2139bf767534fbff36fb205a6638ca141094f7a8ae95c5a32953aa[ALL] 03e46fdcbf2062598a221c0e34d0505c270fb77c2c305c40ef0919f8efc0c7f959", 24 | "hex": "4730440220152d9451f5087ab314ea97a5cfd3964b759e8e8c50fa0fc10e64787ad1860b6302206b3b004e0c2139bf767534fbff36fb205a6638ca141094f7a8ae95c5a32953aa012103e46fdcbf2062598a221c0e34d0505c270fb77c2c305c40ef0919f8efc0c7f959" 25 | }, 26 | "sequence": 4294967295 27 | } 28 | ], 29 | "vout": [ 30 | { 31 | "value": 0.00000000, 32 | "n": 0, 33 | "scriptPubKey": { 34 | "asm": "OP_RETURN 4f4101000264c84c00", 35 | "hex": "6a094f4101000264c84c00", 36 | "type": "nulldata" 37 | } 38 | }, 39 | { 40 | "value": 0.00000000, 41 | "n": 1, 42 | "scriptPubKey": { 43 | "asm": "OP_RETURN 4f41010002c801e44b00", 44 | "hex": "6a0a4f41010002c801e44b00", 45 | "type": "nulldata" 46 | } 47 | }, 48 | { 49 | "value": 0.00000600, 50 | "n": 2, 51 | "scriptPubKey": { 52 | "asm": "OP_DUP OP_HASH160 f0422a68ea970a9b007924bc8173f25e862eba85 OP_EQUALVERIFY OP_CHECKSIG", 53 | "hex": "76a914f0422a68ea970a9b007924bc8173f25e862eba8588ac", 54 | "reqSigs": 1, 55 | "type": "pubkeyhash", 56 | "addresses": [ 57 | "n3RKjN5TRcNeTzDvdaApME6KMchht2oMTU" 58 | ] 59 | } 60 | }, 61 | { 62 | "value": 0.00000600, 63 | "n": 3, 64 | "scriptPubKey": { 65 | "asm": "OP_DUP OP_HASH160 38a6ebdf20cae2c9287ea014464042112ea3dbfd OP_EQUALVERIFY OP_CHECKSIG", 66 | "hex": "76a91438a6ebdf20cae2c9287ea014464042112ea3dbfd88ac", 67 | "reqSigs": 1, 68 | "type": "pubkeyhash", 69 | "addresses": [ 70 | "mkgW6hNYBctmqDtTTsTJrsf2Gh2NPtoCU4" 71 | ] 72 | } 73 | }, 74 | { 75 | "value": 0.00468200, 76 | "n": 4, 77 | "scriptPubKey": { 78 | "asm": "OP_DUP OP_HASH160 38a6ebdf20cae2c9287ea014464042112ea3dbfd OP_EQUALVERIFY OP_CHECKSIG", 79 | "hex": "76a91438a6ebdf20cae2c9287ea014464042112ea3dbfd88ac", 80 | "reqSigs": 1, 81 | "type": "pubkeyhash", 82 | "addresses": [ 83 | "mkgW6hNYBctmqDtTTsTJrsf2Gh2NPtoCU4" 84 | ] 85 | } 86 | } 87 | ], 88 | "blockhash": "0000000000001d2d419633e9b654a11b9e73c825f276ebb3dd420764de6158c7", 89 | "confirmations": 402407, 90 | "time": 1451963342, 91 | "blocktime": 1451963342 92 | } -------------------------------------------------------------------------------- /spec/fixtures/tx/a329a18c0957f8838c684f789fbe1201b871cddc7844d3513880c632bcbb8d1a.json: -------------------------------------------------------------------------------- 1 | { 2 | "hex": "0100000003e108306761ba736fe622594fa663b5e11a84b9ad89c42958f9e5bb6b29009282010000006b483045022100c3c2a39b14e5b512ee18d2a0a82d3549b1fd680e709913494841bd3ec5ca990b02206adb6dc0e7446de433eabddecc446fd843db875e0f1f274bbcdeb27276174079012102544912ce55bcab484f5d2ba0f54c420160f37c3978b68b0fa67cc92417739b3effffffff9b5b6bbee416ce9c39b15be3405f0f19cbb419ef64cbde7523436913ab90c85c000000006a473044022013c63c04cd7c97db4fd0dda9a10d5e92c1a4b1de8f6fe32f3e64bb3b1a900fa802202c03cb27ba4ae9992cd69899dcd5b56cab1198244605c54eaf67e3e97b16e537012102544912ce55bcab484f5d2ba0f54c420160f37c3978b68b0fa67cc92417739b3effffffffd828fe846b63c61af9c20576705e44e1c34ade6f54e38a4fd673664e0c3058dd010000006a473044022059169fefdd17a0cd76e952da561df0e15175c5110daa7173a741c87d68dcac8c02201a3a5641cde5ec86009d118cfd957e19baede6a000339bfdf50f28b2b17478a7012102544912ce55bcab484f5d2ba0f54c420160f37c3978b68b0fa67cc92417739b3effffffff0400000000000000000a6a084f4101000201040058020000000000001976a91424b3d405bc60bd9628691fe28bb00f6800e1480688ac58020000000000001976a914b7218fe503cd18555255e5b13d4f07f3fd00d0c988ac48840100000000001976a914b7218fe503cd18555255e5b13d4f07f3fd00d0c988ac00000000", 3 | "txid": "a329a18c0957f8838c684f789fbe1201b871cddc7844d3513880c632bcbb8d1a", 4 | "size": 573, 5 | "version": 1, 6 | "locktime": 0, 7 | "vin": [ 8 | { 9 | "txid": "829200296bbbe5f95829c489adb9841ae1b563a64f5922e66f73ba61673008e1", 10 | "vout": 1, 11 | "scriptSig": { 12 | "asm": "3045022100c3c2a39b14e5b512ee18d2a0a82d3549b1fd680e709913494841bd3ec5ca990b02206adb6dc0e7446de433eabddecc446fd843db875e0f1f274bbcdeb27276174079[ALL] 02544912ce55bcab484f5d2ba0f54c420160f37c3978b68b0fa67cc92417739b3e", 13 | "hex": "483045022100c3c2a39b14e5b512ee18d2a0a82d3549b1fd680e709913494841bd3ec5ca990b02206adb6dc0e7446de433eabddecc446fd843db875e0f1f274bbcdeb27276174079012102544912ce55bcab484f5d2ba0f54c420160f37c3978b68b0fa67cc92417739b3e" 14 | }, 15 | "sequence": 4294967295 16 | }, 17 | { 18 | "txid": "5cc890ab1369432375decb64ef19b4cb190f5f40e35bb1399cce16e4be6b5b9b", 19 | "vout": 0, 20 | "scriptSig": { 21 | "asm": "3044022013c63c04cd7c97db4fd0dda9a10d5e92c1a4b1de8f6fe32f3e64bb3b1a900fa802202c03cb27ba4ae9992cd69899dcd5b56cab1198244605c54eaf67e3e97b16e537[ALL] 02544912ce55bcab484f5d2ba0f54c420160f37c3978b68b0fa67cc92417739b3e", 22 | "hex": "473044022013c63c04cd7c97db4fd0dda9a10d5e92c1a4b1de8f6fe32f3e64bb3b1a900fa802202c03cb27ba4ae9992cd69899dcd5b56cab1198244605c54eaf67e3e97b16e537012102544912ce55bcab484f5d2ba0f54c420160f37c3978b68b0fa67cc92417739b3e" 23 | }, 24 | "sequence": 4294967295 25 | }, 26 | { 27 | "txid": "dd58300c4e6673d64f8ae3546fde4ac3e1445e707605c2f91ac6636b84fe28d8", 28 | "vout": 1, 29 | "scriptSig": { 30 | "asm": "3044022059169fefdd17a0cd76e952da561df0e15175c5110daa7173a741c87d68dcac8c02201a3a5641cde5ec86009d118cfd957e19baede6a000339bfdf50f28b2b17478a7[ALL] 02544912ce55bcab484f5d2ba0f54c420160f37c3978b68b0fa67cc92417739b3e", 31 | "hex": "473044022059169fefdd17a0cd76e952da561df0e15175c5110daa7173a741c87d68dcac8c02201a3a5641cde5ec86009d118cfd957e19baede6a000339bfdf50f28b2b17478a7012102544912ce55bcab484f5d2ba0f54c420160f37c3978b68b0fa67cc92417739b3e" 32 | }, 33 | "sequence": 4294967295 34 | } 35 | ], 36 | "vout": [ 37 | { 38 | "value": 0.00000000, 39 | "n": 0, 40 | "scriptPubKey": { 41 | "asm": "OP_RETURN 4f41010002010400", 42 | "hex": "6a084f41010002010400", 43 | "type": "nulldata" 44 | } 45 | }, 46 | { 47 | "value": 0.00000600, 48 | "n": 1, 49 | "scriptPubKey": { 50 | "asm": "OP_DUP OP_HASH160 24b3d405bc60bd9628691fe28bb00f6800e14806 OP_EQUALVERIFY OP_CHECKSIG", 51 | "hex": "76a91424b3d405bc60bd9628691fe28bb00f6800e1480688ac", 52 | "reqSigs": 1, 53 | "type": "pubkeyhash", 54 | "addresses": [ 55 | "14M4kbAtn71P1nnNYuhBDFTNYxa19t1XP6" 56 | ] 57 | } 58 | }, 59 | { 60 | "value": 0.00000600, 61 | "n": 2, 62 | "scriptPubKey": { 63 | "asm": "OP_DUP OP_HASH160 b7218fe503cd18555255e5b13d4f07f3fd00d0c9 OP_EQUALVERIFY OP_CHECKSIG", 64 | "hex": "76a914b7218fe503cd18555255e5b13d4f07f3fd00d0c988ac", 65 | "reqSigs": 1, 66 | "type": "pubkeyhash", 67 | "addresses": [ 68 | "1HhJs3JgbiyxC8ktfi6nU4wTqVmrMtCVkG" 69 | ] 70 | } 71 | }, 72 | { 73 | "value": 0.00099400, 74 | "n": 3, 75 | "scriptPubKey": { 76 | "asm": "OP_DUP OP_HASH160 b7218fe503cd18555255e5b13d4f07f3fd00d0c9 OP_EQUALVERIFY OP_CHECKSIG", 77 | "hex": "76a914b7218fe503cd18555255e5b13d4f07f3fd00d0c988ac", 78 | "reqSigs": 1, 79 | "type": "pubkeyhash", 80 | "addresses": [ 81 | "1HhJs3JgbiyxC8ktfi6nU4wTqVmrMtCVkG" 82 | ] 83 | } 84 | } 85 | ], 86 | "blockhash": "000000000000000001f9eba8dff0d4885c83816d3b8dfead2b4367612264ca19", 87 | "confirmations": 78351, 88 | "time": 1434009412, 89 | "blocktime": 1434009412 90 | } -------------------------------------------------------------------------------- /spec/fixtures/tx/a91ddd4d17b1c1cda9bcdb1ebb95ebeb375af3bea974c67b9470d176e850baba.json: -------------------------------------------------------------------------------- 1 | { 2 | "txid": "a91ddd4d17b1c1cda9bcdb1ebb95ebeb375af3bea974c67b9470d176e850baba", 3 | "hash": "d18bd00195f0b35e27104ad162ee43ef23f02a57b1d1f70aeb91186385fef7d2", 4 | "version": 2, 5 | "size": 245, 6 | "vsize": 164, 7 | "locktime": 1280450, 8 | "vin": [ 9 | { 10 | "txid": "f7d877012a96b7f57f1dff4b4f6301fe2af40c61e0393b10737913009a4eac18", 11 | "vout": 0, 12 | "scriptSig": { 13 | "asm": "0014eb1521bb896ed016c138f5910854ea46b87885c8", 14 | "hex": "160014eb1521bb896ed016c138f5910854ea46b87885c8" 15 | }, 16 | "txinwitness": [ 17 | "30440220756e69e7b6bcb1290808ad5edc7e126ad656fd76e7e4c264be5b26c70319bddb02206cd94bdece2a411dde6ec204f9ab09efaf7b8e2dc6cb7028e96dc7238cbbf1f801", 18 | "02f706f05a7d877aba2bb0007e746e80267416ea896422cc819253b764c7872fb7" 19 | ], 20 | "sequence": 4294967293 21 | } 22 | ], 23 | "vout": [ 24 | { 25 | "value": 1.00000000, 26 | "n": 0, 27 | "scriptPubKey": { 28 | "asm": "0 119b45d8bf231183752e4deebc0e9bfba0194787", 29 | "hex": "0014119b45d8bf231183752e4deebc0e9bfba0194787", 30 | "reqSigs": 1, 31 | "type": "witness_v0_keyhash", 32 | "addresses": [ 33 | "tb1qzxd5tk9lyvgcxafwfhhtcr5mlwspj3u8cwyg3d" 34 | ] 35 | } 36 | }, 37 | { 38 | "value": 0.29999673, 39 | "n": 1, 40 | "scriptPubKey": { 41 | "asm": "0 58ce34ab309c732510dcf49f9283265ae16c7831", 42 | "hex": "001458ce34ab309c732510dcf49f9283265ae16c7831", 43 | "reqSigs": 1, 44 | "type": "witness_v0_keyhash", 45 | "addresses": [ 46 | "tb1qtr8rf2esn3ej2yxu7j0e9qexttskc7p3yluywq" 47 | ] 48 | } 49 | } 50 | ], 51 | "hex": "0200000000010118ac4e9a00137973103b39e0610cf42afe01634f4bff1d7ff5b7962a0177d8f70000000017160014eb1521bb896ed016c138f5910854ea46b87885c8fdffffff0200e1f50500000000160014119b45d8bf231183752e4deebc0e9bfba019478739c2c9010000000016001458ce34ab309c732510dcf49f9283265ae16c7831024730440220756e69e7b6bcb1290808ad5edc7e126ad656fd76e7e4c264be5b26c70319bddb02206cd94bdece2a411dde6ec204f9ab09efaf7b8e2dc6cb7028e96dc7238cbbf1f8012102f706f05a7d877aba2bb0007e746e80267416ea896422cc819253b764c7872fb7c2891300", 52 | "blockhash": "0000000000002e61d41978c22cecb484914b71b5c3efa63bb1da60350c9f6fd7", 53 | "confirmations": 13260, 54 | "time": 1518164795, 55 | "blocktime": 1518164795 56 | } -------------------------------------------------------------------------------- /spec/fixtures/tx/a98b000f28c9e8251925a1225832edf1c2992e103445b6b2cec3f5c0a81469e5.json: -------------------------------------------------------------------------------- 1 | { 2 | "hex": "01000000014448068bab11df9c16dbf18c297d667cd2b2952767dd2f6cf2968798d925e2b7010000009d47304402202254f7da7c3fe2bf2a4dd2c3e255aa3ad61415550f648b564aea335f8fcd3d92022062eab5c01a5e33eb726f976ebd3b35d3991f8a45da56d64e1cd3fd5178f8c9a6012102effb2edfcf826d43027feae226143bdac058ad2e87b7cec26f97af2d357ddefa3217753d68747470733a2f2f676f6f2e676c2f626d564575777576a9148911455a265235b2d356a1324af000d4dae0326288acffffffff0358020000000000001976a914a4fdb3ce954a3cbb49fdfc9df1712bf72749c9e788ac00000000000000000b6a094f410100019f8d0600e8990000000000001976a914a4fdb3ce954a3cbb49fdfc9df1712bf72749c9e788ac00000000", 3 | "txid": "a98b000f28c9e8251925a1225832edf1c2992e103445b6b2cec3f5c0a81469e5", 4 | "hash": "a98b000f28c9e8251925a1225832edf1c2992e103445b6b2cec3f5c0a81469e5", 5 | "size": 296, 6 | "vsize": 296, 7 | "version": 1, 8 | "locktime": 0, 9 | "vin": [ 10 | { 11 | "txid": "b7e225d9988796f26c2fdd672795b2d27c667d298cf1db169cdf11ab8b064844", 12 | "vout": 1, 13 | "scriptSig": { 14 | "asm": "304402202254f7da7c3fe2bf2a4dd2c3e255aa3ad61415550f648b564aea335f8fcd3d92022062eab5c01a5e33eb726f976ebd3b35d3991f8a45da56d64e1cd3fd5178f8c9a6[ALL] 02effb2edfcf826d43027feae226143bdac058ad2e87b7cec26f97af2d357ddefa 17753d68747470733a2f2f676f6f2e676c2f626d564575777576a9148911455a265235b2d356a1324af000d4dae0326288ac", 15 | "hex": "47304402202254f7da7c3fe2bf2a4dd2c3e255aa3ad61415550f648b564aea335f8fcd3d92022062eab5c01a5e33eb726f976ebd3b35d3991f8a45da56d64e1cd3fd5178f8c9a6012102effb2edfcf826d43027feae226143bdac058ad2e87b7cec26f97af2d357ddefa3217753d68747470733a2f2f676f6f2e676c2f626d564575777576a9148911455a265235b2d356a1324af000d4dae0326288ac" 16 | }, 17 | "sequence": 4294967295 18 | } 19 | ], 20 | "vout": [ 21 | { 22 | "value": 0.00000600, 23 | "n": 0, 24 | "scriptPubKey": { 25 | "asm": "OP_DUP OP_HASH160 a4fdb3ce954a3cbb49fdfc9df1712bf72749c9e7 OP_EQUALVERIFY OP_CHECKSIG", 26 | "hex": "76a914a4fdb3ce954a3cbb49fdfc9df1712bf72749c9e788ac", 27 | "reqSigs": 1, 28 | "type": "pubkeyhash", 29 | "addresses": [ 30 | "mvZM34fU6wdDqF3gKd2tYA67vjWvwBHbDU" 31 | ] 32 | } 33 | }, 34 | { 35 | "value": 0.00000000, 36 | "n": 1, 37 | "scriptPubKey": { 38 | "asm": "OP_RETURN 4f410100019f8d0600", 39 | "hex": "6a094f410100019f8d0600", 40 | "type": "nulldata" 41 | } 42 | }, 43 | { 44 | "value": 0.00039400, 45 | "n": 2, 46 | "scriptPubKey": { 47 | "asm": "OP_DUP OP_HASH160 a4fdb3ce954a3cbb49fdfc9df1712bf72749c9e7 OP_EQUALVERIFY OP_CHECKSIG", 48 | "hex": "76a914a4fdb3ce954a3cbb49fdfc9df1712bf72749c9e788ac", 49 | "reqSigs": 1, 50 | "type": "pubkeyhash", 51 | "addresses": [ 52 | "mvZM34fU6wdDqF3gKd2tYA67vjWvwBHbDU" 53 | ] 54 | } 55 | } 56 | ], 57 | "blockhash": "0000000000000349ade641e1d0b0615cd8535d7790690e2d8b501907ec30b6c7", 58 | "confirmations": 63000, 59 | "time": 1475927768, 60 | "blocktime": 1475927768 61 | } -------------------------------------------------------------------------------- /spec/fixtures/tx/ab3c38f412a96eda0756330a4940fa148e9c73fdde9f068413945c3720bb1f18.json: -------------------------------------------------------------------------------- 1 | { 2 | "hex": "0100000001b43aca2d4f5b4ca395e54057a420180136adb1a9d7dfe0f22b2d68ec41bce90e000000006b48304502210099171aa53917c566c55c27543012f430b2dcac118101e83168a5da97703c3229022024958d98c54ad0390e4afcfbae233c3c2d68936c5626c27b51fe452caaca350c012103e96fd7e921b64954bbff1eec73b0331c8c9d27aa70b0520eb36b50019a978f1cffffffff0296ff7247000000001976a914d3c96dc04a62f488a3f1b588f74af136469c6fca88ac50c30000000000001976a914147b897573a9586f64320d29c7780f383d00f06d88ac00000000", 3 | "txid": "ab3c38f412a96eda0756330a4940fa148e9c73fdde9f068413945c3720bb1f18", 4 | "hash": "ab3c38f412a96eda0756330a4940fa148e9c73fdde9f068413945c3720bb1f18", 5 | "size": 226, 6 | "vsize": 226, 7 | "version": 1, 8 | "locktime": 0, 9 | "vin": [ 10 | { 11 | "txid": "0ee9bc41ec682d2bf2e0dfd7a9b1ad36011820a45740e595a34c5b4f2dca3ab4", 12 | "vout": 0, 13 | "scriptSig": { 14 | "asm": "304502210099171aa53917c566c55c27543012f430b2dcac118101e83168a5da97703c3229022024958d98c54ad0390e4afcfbae233c3c2d68936c5626c27b51fe452caaca350c[ALL] 03e96fd7e921b64954bbff1eec73b0331c8c9d27aa70b0520eb36b50019a978f1c", 15 | "hex": "48304502210099171aa53917c566c55c27543012f430b2dcac118101e83168a5da97703c3229022024958d98c54ad0390e4afcfbae233c3c2d68936c5626c27b51fe452caaca350c012103e96fd7e921b64954bbff1eec73b0331c8c9d27aa70b0520eb36b50019a978f1c" 16 | }, 17 | "sequence": 4294967295 18 | } 19 | ], 20 | "vout": [ 21 | { 22 | "value": 11.98718870, 23 | "n": 0, 24 | "scriptPubKey": { 25 | "asm": "OP_DUP OP_HASH160 d3c96dc04a62f488a3f1b588f74af136469c6fca OP_EQUALVERIFY OP_CHECKSIG", 26 | "hex": "76a914d3c96dc04a62f488a3f1b588f74af136469c6fca88ac", 27 | "reqSigs": 1, 28 | "type": "pubkeyhash", 29 | "addresses": [ 30 | "mzpnB3S31yZRDJFLmTd1ZsWJTtzymL7HsA" 31 | ] 32 | } 33 | }, 34 | { 35 | "value": 0.00050000, 36 | "n": 1, 37 | "scriptPubKey": { 38 | "asm": "OP_DUP OP_HASH160 147b897573a9586f64320d29c7780f383d00f06d OP_EQUALVERIFY OP_CHECKSIG", 39 | "hex": "76a914147b897573a9586f64320d29c7780f383d00f06d88ac", 40 | "reqSigs": 1, 41 | "type": "pubkeyhash", 42 | "addresses": [ 43 | "mhPFoPUSefNW7BMV8bhL3Pa4qkP4vtJaba" 44 | ] 45 | } 46 | } 47 | ], 48 | "blockhash": "000000000028ac776fdb04e9a0b5ccc7ec8192ce3779f5f1e78229290995e119", 49 | "confirmations": 381352, 50 | "time": 1453609194, 51 | "blocktime": 1453609194 52 | } -------------------------------------------------------------------------------- /spec/fixtures/tx/b7e225d9988796f26c2fdd672795b2d27c667d298cf1db169cdf11ab8b064844.json: -------------------------------------------------------------------------------- 1 | { 2 | "hex": "0100000001a02830eee235f0cbdfe0b38b706c914a3a429a315603832eb18d1c791dc5b83a010000006b4830450221008a9daf031fc026ff558f6f94913f50df91b122a155a698dabfb6c1ccb4cfa18e022069c8451d7d42b6f938e5dc9b5c319350ac58c7070dd8799db3320c5ccaad8035012102effb2edfcf826d43027feae226143bdac058ad2e87b7cec26f97af2d357ddefaffffffff0220c74e01000000001976a9148911455a265235b2d356a1324af000d4dae0326288ac50c300000000000017a914f9d499817e88ef7b10a88673296c6d6df2f4292d8700000000", 3 | "txid": "b7e225d9988796f26c2fdd672795b2d27c667d298cf1db169cdf11ab8b064844", 4 | "hash": "b7e225d9988796f26c2fdd672795b2d27c667d298cf1db169cdf11ab8b064844", 5 | "size": 224, 6 | "vsize": 224, 7 | "version": 1, 8 | "locktime": 0, 9 | "vin": [ 10 | { 11 | "txid": "3ab8c51d791c8db12e830356319a423a4a916c708bb3e0dfcbf035e2ee3028a0", 12 | "vout": 1, 13 | "scriptSig": { 14 | "asm": "30450221008a9daf031fc026ff558f6f94913f50df91b122a155a698dabfb6c1ccb4cfa18e022069c8451d7d42b6f938e5dc9b5c319350ac58c7070dd8799db3320c5ccaad8035[ALL] 02effb2edfcf826d43027feae226143bdac058ad2e87b7cec26f97af2d357ddefa", 15 | "hex": "4830450221008a9daf031fc026ff558f6f94913f50df91b122a155a698dabfb6c1ccb4cfa18e022069c8451d7d42b6f938e5dc9b5c319350ac58c7070dd8799db3320c5ccaad8035012102effb2edfcf826d43027feae226143bdac058ad2e87b7cec26f97af2d357ddefa" 16 | }, 17 | "sequence": 4294967295 18 | } 19 | ], 20 | "vout": [ 21 | { 22 | "value": 0.21940000, 23 | "n": 0, 24 | "scriptPubKey": { 25 | "asm": "OP_DUP OP_HASH160 8911455a265235b2d356a1324af000d4dae03262 OP_EQUALVERIFY OP_CHECKSIG", 26 | "hex": "76a9148911455a265235b2d356a1324af000d4dae0326288ac", 27 | "reqSigs": 1, 28 | "type": "pubkeyhash", 29 | "addresses": [ 30 | "mt1hZLajqyc63NkWy7qvgiuum5nuTBdVZ6" 31 | ] 32 | } 33 | }, 34 | { 35 | "value": 0.00050000, 36 | "n": 1, 37 | "scriptPubKey": { 38 | "asm": "OP_HASH160 f9d499817e88ef7b10a88673296c6d6df2f4292d OP_EQUAL", 39 | "hex": "a914f9d499817e88ef7b10a88673296c6d6df2f4292d87", 40 | "reqSigs": 1, 41 | "type": "scripthash", 42 | "addresses": [ 43 | "2NG2CvjMnwRkRhBsnoX1JHvmP3fX8bWrkej" 44 | ] 45 | } 46 | } 47 | ], 48 | "blockhash": "0000000000000332bf8c4988f2d6a38725b2f41d04d2c88962c1026d1715598d", 49 | "confirmations": 63020, 50 | "time": 1475922316, 51 | "blocktime": 1475922316 52 | } -------------------------------------------------------------------------------- /spec/fixtures/tx/b8d52b6452a7e282a656e81dfa21b30d6bd8ce1150c73b89b33f11eed7cff096.json: -------------------------------------------------------------------------------- 1 | { 2 | "hex": "01000000025d53e981c88c55a38e88cac043b5fb6be2ab384577db99ef9aa9092cac7383f9000000006a47304402200a20a051cd2e96be851c85bafed18157529deec625a300acc2f1c3090d9627f502206c25f6ab641f2117dc3e1e03c6db11e89741030956a68905390c237013024ff801210233df159fad83540209cd32ad761893d90119354b40dad24c481b6c1f8e39cd8bffffffff5d53e981c88c55a38e88cac043b5fb6be2ab384577db99ef9aa9092cac7383f9020000006b483045022100de33c1bc49f6aaf00dd2b9513359ab68e5b0629e9c8c2c9371845938d058f34e02204dea9902cd6dd53f4db4c16b0b71e89d1919e4fd6938b717f7ce444b4654671601210233df159fad83540209cd32ad761893d90119354b40dad24c481b6c1f8e39cd8bffffffff0400000000000000000b6a094f4101000243990b0058020000000000001976a914b7218fe503cd18555255e5b13d4f07f3fd00d0c988ac58020000000000001976a9147cbc38b45e36dbe96e991d737450f047a9899a6388ac504e0700000000001976a9147cbc38b45e36dbe96e991d737450f047a9899a6388ac00000000", 3 | "txid": "b8d52b6452a7e282a656e81dfa21b30d6bd8ce1150c73b89b33f11eed7cff096", 4 | "size": 427, 5 | "version": 1, 6 | "locktime": 0, 7 | "vin": [ 8 | { 9 | "txid": "f98373ac2c09a99aef99db774538abe26bfbb543c0ca888ea3558cc881e9535d", 10 | "vout": 0, 11 | "scriptSig": { 12 | "asm": "304402200a20a051cd2e96be851c85bafed18157529deec625a300acc2f1c3090d9627f502206c25f6ab641f2117dc3e1e03c6db11e89741030956a68905390c237013024ff8[ALL] 0233df159fad83540209cd32ad761893d90119354b40dad24c481b6c1f8e39cd8b", 13 | "hex": "47304402200a20a051cd2e96be851c85bafed18157529deec625a300acc2f1c3090d9627f502206c25f6ab641f2117dc3e1e03c6db11e89741030956a68905390c237013024ff801210233df159fad83540209cd32ad761893d90119354b40dad24c481b6c1f8e39cd8b" 14 | }, 15 | "sequence": 4294967295 16 | }, 17 | { 18 | "txid": "f98373ac2c09a99aef99db774538abe26bfbb543c0ca888ea3558cc881e9535d", 19 | "vout": 2, 20 | "scriptSig": { 21 | "asm": "3045022100de33c1bc49f6aaf00dd2b9513359ab68e5b0629e9c8c2c9371845938d058f34e02204dea9902cd6dd53f4db4c16b0b71e89d1919e4fd6938b717f7ce444b46546716[ALL] 0233df159fad83540209cd32ad761893d90119354b40dad24c481b6c1f8e39cd8b", 22 | "hex": "483045022100de33c1bc49f6aaf00dd2b9513359ab68e5b0629e9c8c2c9371845938d058f34e02204dea9902cd6dd53f4db4c16b0b71e89d1919e4fd6938b717f7ce444b4654671601210233df159fad83540209cd32ad761893d90119354b40dad24c481b6c1f8e39cd8b" 23 | }, 24 | "sequence": 4294967295 25 | } 26 | ], 27 | "vout": [ 28 | { 29 | "value": 0.00000000, 30 | "n": 0, 31 | "scriptPubKey": { 32 | "asm": "OP_RETURN 4f4101000243990b00", 33 | "hex": "6a094f4101000243990b00", 34 | "type": "nulldata" 35 | } 36 | }, 37 | { 38 | "value": 0.00000600, 39 | "n": 1, 40 | "scriptPubKey": { 41 | "asm": "OP_DUP OP_HASH160 b7218fe503cd18555255e5b13d4f07f3fd00d0c9 OP_EQUALVERIFY OP_CHECKSIG", 42 | "hex": "76a914b7218fe503cd18555255e5b13d4f07f3fd00d0c988ac", 43 | "reqSigs": 1, 44 | "type": "pubkeyhash", 45 | "addresses": [ 46 | "1HhJs3JgbiyxC8ktfi6nU4wTqVmrMtCVkG" 47 | ] 48 | } 49 | }, 50 | { 51 | "value": 0.00000600, 52 | "n": 2, 53 | "scriptPubKey": { 54 | "asm": "OP_DUP OP_HASH160 7cbc38b45e36dbe96e991d737450f047a9899a63 OP_EQUALVERIFY OP_CHECKSIG", 55 | "hex": "76a9147cbc38b45e36dbe96e991d737450f047a9899a6388ac", 56 | "reqSigs": 1, 57 | "type": "pubkeyhash", 58 | "addresses": [ 59 | "1CNYGeUsJU6csL8ZkZATrJhzmhv7LM4vFx" 60 | ] 61 | } 62 | }, 63 | { 64 | "value": 0.00478800, 65 | "n": 3, 66 | "scriptPubKey": { 67 | "asm": "OP_DUP OP_HASH160 7cbc38b45e36dbe96e991d737450f047a9899a63 OP_EQUALVERIFY OP_CHECKSIG", 68 | "hex": "76a9147cbc38b45e36dbe96e991d737450f047a9899a6388ac", 69 | "reqSigs": 1, 70 | "type": "pubkeyhash", 71 | "addresses": [ 72 | "1CNYGeUsJU6csL8ZkZATrJhzmhv7LM4vFx" 73 | ] 74 | } 75 | } 76 | ], 77 | "blockhash": "0000000000000000077cf61ce2030c9fd15054f18864414ceef79d9418ca7b7d", 78 | "confirmations": 61682, 79 | "time": 1443781689, 80 | "blocktime": 1443781689 81 | } -------------------------------------------------------------------------------- /spec/fixtures/tx/c4dbf1a4963c5055577b4b5b315d3fca3c891aed223e2414dfb33aa36633961c.json: -------------------------------------------------------------------------------- 1 | { 2 | "hex": "010000000175552d5eddd4494aa6b05dcec201eec8280d0e2840b3843aaf884df15ce328f4010000006b483045022100e0a219f87cea50c95a45fca4204c3fe25d0e44baa54c498afbc657ed6c20f4bf0220329892eb524487a1b8724c531b27602794cdadca365681a9f62a054fb1c4713f012103e96fd7e921b64954bbff1eec73b0331c8c9d27aa70b0520eb36b50019a978f1cffffffff02b6a07a47000000001976a914d3c96dc04a62f488a3f1b588f74af136469c6fca88aca0860100000000001976a914a938dad89bbd964cbaf5d9059e0bda1d900ce08388ac00000000", 3 | "txid": "c4dbf1a4963c5055577b4b5b315d3fca3c891aed223e2414dfb33aa36633961c", 4 | "hash": "c4dbf1a4963c5055577b4b5b315d3fca3c891aed223e2414dfb33aa36633961c", 5 | "size": 226, 6 | "vsize": 226, 7 | "version": 1, 8 | "locktime": 0, 9 | "vin": [ 10 | { 11 | "txid": "f428e35cf14d88af3a84b340280e0d28c8ee01c2ce5db0a64a49d4dd5e2d5575", 12 | "vout": 1, 13 | "scriptSig": { 14 | "asm": "3045022100e0a219f87cea50c95a45fca4204c3fe25d0e44baa54c498afbc657ed6c20f4bf0220329892eb524487a1b8724c531b27602794cdadca365681a9f62a054fb1c4713f[ALL] 03e96fd7e921b64954bbff1eec73b0331c8c9d27aa70b0520eb36b50019a978f1c", 15 | "hex": "483045022100e0a219f87cea50c95a45fca4204c3fe25d0e44baa54c498afbc657ed6c20f4bf0220329892eb524487a1b8724c531b27602794cdadca365681a9f62a054fb1c4713f012103e96fd7e921b64954bbff1eec73b0331c8c9d27aa70b0520eb36b50019a978f1c" 16 | }, 17 | "sequence": 4294967295 18 | } 19 | ], 20 | "vout": [ 21 | { 22 | "value": 11.99218870, 23 | "n": 0, 24 | "scriptPubKey": { 25 | "asm": "OP_DUP OP_HASH160 d3c96dc04a62f488a3f1b588f74af136469c6fca OP_EQUALVERIFY OP_CHECKSIG", 26 | "hex": "76a914d3c96dc04a62f488a3f1b588f74af136469c6fca88ac", 27 | "reqSigs": 1, 28 | "type": "pubkeyhash", 29 | "addresses": [ 30 | "mzpnB3S31yZRDJFLmTd1ZsWJTtzymL7HsA" 31 | ] 32 | } 33 | }, 34 | { 35 | "value": 0.00100000, 36 | "n": 1, 37 | "scriptPubKey": { 38 | "asm": "OP_DUP OP_HASH160 a938dad89bbd964cbaf5d9059e0bda1d900ce083 OP_EQUALVERIFY OP_CHECKSIG", 39 | "hex": "76a914a938dad89bbd964cbaf5d9059e0bda1d900ce08388ac", 40 | "reqSigs": 1, 41 | "type": "pubkeyhash", 42 | "addresses": [ 43 | "mvwibpSmnXw7pG3AjW5Tt9Ufe5GL2rTJd1" 44 | ] 45 | } 46 | } 47 | ], 48 | "blockhash": "00000000000511f59c43a46be7662179135d0a8102240b0f8d737405a6ad4a62", 49 | "confirmations": 386415, 50 | "time": 1453343236, 51 | "blocktime": 1453343236 52 | } -------------------------------------------------------------------------------- /spec/fixtures/tx/c66e1f5022e98b45b98f537ac42fe88d0e20aaf427731be678a319ed8f92c249.json: -------------------------------------------------------------------------------- 1 | { 2 | "hex": "01000000013a588e87d23c73c1d0532b8968e6116f3288b76c4bea3b20b10d2bb7dd29fb3d000000006a47304402201b7bcb080673d5d13c773c1f3c89e0522aa65b692cd89fd10c783a602b161ec7022073822451b8b8aba4e0f05cf5bde8baa54239b0846734c1e710178a5b9280b7fd0121029b4d5e41a6cdc3625b3d971bba951d809dd6156dfb7c20dde35f05035c645d8cffffffff02309bdc02000000001976a91465259d8fad44dddf5d137c6fe4f77f5281b255ae88aca0860100000000001976a91446c2fbfbecc99a63148fa076de58cf29b0bcf0b088ac00000000", 3 | "txid": "c66e1f5022e98b45b98f537ac42fe88d0e20aaf427731be678a319ed8f92c249", 4 | "hash": "c66e1f5022e98b45b98f537ac42fe88d0e20aaf427731be678a319ed8f92c249", 5 | "size": 225, 6 | "vsize": 225, 7 | "version": 1, 8 | "locktime": 0, 9 | "vin": [ 10 | { 11 | "txid": "3dfb29ddb72b0db1203bea4b6cb788326f11e668892b53d0c1733cd2878e583a", 12 | "vout": 0, 13 | "scriptSig": { 14 | "asm": "304402201b7bcb080673d5d13c773c1f3c89e0522aa65b692cd89fd10c783a602b161ec7022073822451b8b8aba4e0f05cf5bde8baa54239b0846734c1e710178a5b9280b7fd[ALL] 029b4d5e41a6cdc3625b3d971bba951d809dd6156dfb7c20dde35f05035c645d8c", 15 | "hex": "47304402201b7bcb080673d5d13c773c1f3c89e0522aa65b692cd89fd10c783a602b161ec7022073822451b8b8aba4e0f05cf5bde8baa54239b0846734c1e710178a5b9280b7fd0121029b4d5e41a6cdc3625b3d971bba951d809dd6156dfb7c20dde35f05035c645d8c" 16 | }, 17 | "sequence": 4294967295 18 | } 19 | ], 20 | "vout": [ 21 | { 22 | "value": 0.48012080, 23 | "n": 0, 24 | "scriptPubKey": { 25 | "asm": "OP_DUP OP_HASH160 65259d8fad44dddf5d137c6fe4f77f5281b255ae OP_EQUALVERIFY OP_CHECKSIG", 26 | "hex": "76a91465259d8fad44dddf5d137c6fe4f77f5281b255ae88ac", 27 | "reqSigs": 1, 28 | "type": "pubkeyhash", 29 | "addresses": [ 30 | "mpjmbzpujPG4CPPKEjuvkSMi895AKmMHQo" 31 | ] 32 | } 33 | }, 34 | { 35 | "value": 0.00100000, 36 | "n": 1, 37 | "scriptPubKey": { 38 | "asm": "OP_DUP OP_HASH160 46c2fbfbecc99a63148fa076de58cf29b0bcf0b0 OP_EQUALVERIFY OP_CHECKSIG", 39 | "hex": "76a91446c2fbfbecc99a63148fa076de58cf29b0bcf0b088ac", 40 | "reqSigs": 1, 41 | "type": "pubkeyhash", 42 | "addresses": [ 43 | "mmy7BEH1SUGAeSVUR22pt5hPaejo2645F1" 44 | ] 45 | } 46 | } 47 | ], 48 | "blockhash": "0000000000022f4b4a9f9910cf452799319701adfe7bcd1b5cea958b768c9a02", 49 | "confirmations": 134763, 50 | "time": 1469348182, 51 | "blocktime": 1469348182 52 | } -------------------------------------------------------------------------------- /spec/fixtures/tx/d62637792c280bed7ac93d78e6031d07e9307afc18d53f87c26dcaddf2297fd5.json: -------------------------------------------------------------------------------- 1 | { 2 | "hex": "01000000012851315cad50c97ed7818b0d650d28b871fec92018d34093f15b6f51b75eb967000000006b483045022100d338770cd4d27c58c41fd9a64c3b8870eb9a5c2e2d442dcd260333a8a6dfd81e02202b7c0d40c73211dcfb90513597ecb214455ee20a317ec4827566c213e45f9765012102174620b7c583dc471e04b604fc85f7ae19d161a070af7227ca03edfcb6c4dc4fffffffff0358020000000000001976a914de20a2d5a57ee40ce9a4ce14cf06a6c2c6ffe29788ac0000000000000000096a074f410100016400d8180f00000000001976a914de20a2d5a57ee40ce9a4ce14cf06a6c2c6ffe29788ac00000000", 3 | "txid": "d62637792c280bed7ac93d78e6031d07e9307afc18d53f87c26dcaddf2297fd5", 4 | "size": 244, 5 | "version": 1, 6 | "locktime": 0, 7 | "vin": [ 8 | { 9 | "txid": "67b95eb7516f5bf19340d31820c9fe71b8280d650d8b81d77ec950ad5c315128", 10 | "vout": 0, 11 | "scriptSig": { 12 | "asm": "3045022100d338770cd4d27c58c41fd9a64c3b8870eb9a5c2e2d442dcd260333a8a6dfd81e02202b7c0d40c73211dcfb90513597ecb214455ee20a317ec4827566c213e45f9765[ALL] 02174620b7c583dc471e04b604fc85f7ae19d161a070af7227ca03edfcb6c4dc4f", 13 | "hex": "483045022100d338770cd4d27c58c41fd9a64c3b8870eb9a5c2e2d442dcd260333a8a6dfd81e02202b7c0d40c73211dcfb90513597ecb214455ee20a317ec4827566c213e45f9765012102174620b7c583dc471e04b604fc85f7ae19d161a070af7227ca03edfcb6c4dc4f" 14 | }, 15 | "sequence": 4294967295 16 | } 17 | ], 18 | "vout": [ 19 | { 20 | "value": 0.00000600, 21 | "n": 0, 22 | "scriptPubKey": { 23 | "asm": "OP_DUP OP_HASH160 de20a2d5a57ee40ce9a4ce14cf06a6c2c6ffe297 OP_EQUALVERIFY OP_CHECKSIG", 24 | "hex": "76a914de20a2d5a57ee40ce9a4ce14cf06a6c2c6ffe29788ac", 25 | "reqSigs": 1, 26 | "type": "pubkeyhash", 27 | "addresses": [ 28 | "1MFW7BTwiNbAkmVz4SzAMQXboKYKGSzkq2" 29 | ] 30 | } 31 | }, 32 | { 33 | "value": 0.00000000, 34 | "n": 1, 35 | "scriptPubKey": { 36 | "asm": "OP_RETURN 4f410100016400", 37 | "hex": "6a074f410100016400", 38 | "type": "nulldata" 39 | } 40 | }, 41 | { 42 | "value": 0.00989400, 43 | "n": 2, 44 | "scriptPubKey": { 45 | "asm": "OP_DUP OP_HASH160 de20a2d5a57ee40ce9a4ce14cf06a6c2c6ffe297 OP_EQUALVERIFY OP_CHECKSIG", 46 | "hex": "76a914de20a2d5a57ee40ce9a4ce14cf06a6c2c6ffe29788ac", 47 | "reqSigs": 1, 48 | "type": "pubkeyhash", 49 | "addresses": [ 50 | "1MFW7BTwiNbAkmVz4SzAMQXboKYKGSzkq2" 51 | ] 52 | } 53 | } 54 | ], 55 | "blockhash": "000000000000000004558772e38db5c2c4c04d00db6031271bc3e249de7d5fe2", 56 | "confirmations": 78652, 57 | "time": 1433847409, 58 | "blocktime": 1433847409 59 | } 60 | -------------------------------------------------------------------------------- /spec/fixtures/tx/d66fcfe60af7a2a028b079ead597659535b66bc05d7bb0e26bb3464b5ac3fc08.json: -------------------------------------------------------------------------------- 1 | { 2 | "hex": "01000000019b5b6bbee416ce9c39b15be3405f0f19cbb419ef64cbde7523436913ab90c85c010000006b483045022100d5233595a3140827c3cfe449cd83520c4004fbd2ae70ee045870d1ae6f55bb8002206bafacf5bacf569873c9e849f24320a304e3e154f9ae50a1bf6f42380337483d0121027a52cac614ba31c0352dfe937cfaaa3ed26312c50b1cbad928894bb3fc9e6655ffffffff0220a10700000000001976a914de20a2d5a57ee40ce9a4ce14cf06a6c2c6ffe29788ac38f40600000000001976a914753fbfea75311b07c17bbabed46711f039635d0588ac00000000", 3 | "txid": "d66fcfe60af7a2a028b079ead597659535b66bc05d7bb0e26bb3464b5ac3fc08", 4 | "size": 226, 5 | "version": 1, 6 | "locktime": 0, 7 | "vin": [ 8 | { 9 | "txid": "5cc890ab1369432375decb64ef19b4cb190f5f40e35bb1399cce16e4be6b5b9b", 10 | "vout": 1, 11 | "scriptSig": { 12 | "asm": "3045022100d5233595a3140827c3cfe449cd83520c4004fbd2ae70ee045870d1ae6f55bb8002206bafacf5bacf569873c9e849f24320a304e3e154f9ae50a1bf6f42380337483d[ALL] 027a52cac614ba31c0352dfe937cfaaa3ed26312c50b1cbad928894bb3fc9e6655", 13 | "hex": "483045022100d5233595a3140827c3cfe449cd83520c4004fbd2ae70ee045870d1ae6f55bb8002206bafacf5bacf569873c9e849f24320a304e3e154f9ae50a1bf6f42380337483d0121027a52cac614ba31c0352dfe937cfaaa3ed26312c50b1cbad928894bb3fc9e6655" 14 | }, 15 | "sequence": 4294967295 16 | } 17 | ], 18 | "vout": [ 19 | { 20 | "value": 0.00500000, 21 | "n": 0, 22 | "scriptPubKey": { 23 | "asm": "OP_DUP OP_HASH160 de20a2d5a57ee40ce9a4ce14cf06a6c2c6ffe297 OP_EQUALVERIFY OP_CHECKSIG", 24 | "hex": "76a914de20a2d5a57ee40ce9a4ce14cf06a6c2c6ffe29788ac", 25 | "reqSigs": 1, 26 | "type": "pubkeyhash", 27 | "addresses": [ 28 | "1MFW7BTwiNbAkmVz4SzAMQXboKYKGSzkq2" 29 | ] 30 | } 31 | }, 32 | { 33 | "value": 0.00455736, 34 | "n": 1, 35 | "scriptPubKey": { 36 | "asm": "OP_DUP OP_HASH160 753fbfea75311b07c17bbabed46711f039635d05 OP_EQUALVERIFY OP_CHECKSIG", 37 | "hex": "76a914753fbfea75311b07c17bbabed46711f039635d0588ac", 38 | "reqSigs": 1, 39 | "type": "pubkeyhash", 40 | "addresses": [ 41 | "1BgxRrEwr6KFXVMGphN8dc1GTpZpZfhDYi" 42 | ] 43 | } 44 | } 45 | ], 46 | "blockhash": "000000000000000000839c77ffd861a2f95af69dc0623bd8b4454d292aca2669", 47 | "confirmations": 78537, 48 | "time": 1433911776, 49 | "blocktime": 1433911776 50 | } -------------------------------------------------------------------------------- /spec/fixtures/tx/d76bf0e32520c2c38321938486f387d498f523fc0f9532afd51d2ffc098ec03e.json: -------------------------------------------------------------------------------- 1 | { 2 | "hex": "01000000010ae08e10dad8548a6e5eef11c5ff76f77ba865f186f6247d3d9502a59c37b588020000006b483045022100fc0d5caa16f3c21939a87b7724dca14c54b1be6a27b253bd1087009ec3873000022062a9b9e40028797526668cb07f91001f3d098461f0a610bd05db7888caac378a01210292ee82d9add0512294723f2c363aee24efdeb3f258cdaf5118a4fcf5263e92c9ffffffff03580200000000000017a914c590a1c93975aec75157e33ad904a74d2934e9d58700000000000000000b6a094f41010001d0860300f8d90000000000001976a91446c2fbfbecc99a63148fa076de58cf29b0bcf0b088ac00000000", 3 | "txid": "d76bf0e32520c2c38321938486f387d498f523fc0f9532afd51d2ffc098ec03e", 4 | "hash": "d76bf0e32520c2c38321938486f387d498f523fc0f9532afd51d2ffc098ec03e", 5 | "size": 244, 6 | "vsize": 244, 7 | "version": 1, 8 | "locktime": 0, 9 | "vin": [ 10 | { 11 | "txid": "88b5379ca502953d7d24f686f165a87bf776ffc511ef5e6e8a54d8da108ee00a", 12 | "vout": 2, 13 | "scriptSig": { 14 | "asm": "3045022100fc0d5caa16f3c21939a87b7724dca14c54b1be6a27b253bd1087009ec3873000022062a9b9e40028797526668cb07f91001f3d098461f0a610bd05db7888caac378a[ALL] 0292ee82d9add0512294723f2c363aee24efdeb3f258cdaf5118a4fcf5263e92c9", 15 | "hex": "483045022100fc0d5caa16f3c21939a87b7724dca14c54b1be6a27b253bd1087009ec3873000022062a9b9e40028797526668cb07f91001f3d098461f0a610bd05db7888caac378a01210292ee82d9add0512294723f2c363aee24efdeb3f258cdaf5118a4fcf5263e92c9" 16 | }, 17 | "sequence": 4294967295 18 | } 19 | ], 20 | "vout": [ 21 | { 22 | "value": 0.00000600, 23 | "n": 0, 24 | "scriptPubKey": { 25 | "asm": "OP_HASH160 c590a1c93975aec75157e33ad904a74d2934e9d5 OP_EQUAL", 26 | "hex": "a914c590a1c93975aec75157e33ad904a74d2934e9d587", 27 | "reqSigs": 1, 28 | "type": "scripthash", 29 | "addresses": [ 30 | "2NBFrNHDikgwjHoMmgJZdsNdB92PpotmaHk" 31 | ] 32 | } 33 | }, 34 | { 35 | "value": 0.00000000, 36 | "n": 1, 37 | "scriptPubKey": { 38 | "asm": "OP_RETURN 4f41010001d0860300", 39 | "hex": "6a094f41010001d0860300", 40 | "type": "nulldata" 41 | } 42 | }, 43 | { 44 | "value": 0.00055800, 45 | "n": 2, 46 | "scriptPubKey": { 47 | "asm": "OP_DUP OP_HASH160 46c2fbfbecc99a63148fa076de58cf29b0bcf0b0 OP_EQUALVERIFY OP_CHECKSIG", 48 | "hex": "76a91446c2fbfbecc99a63148fa076de58cf29b0bcf0b088ac", 49 | "reqSigs": 1, 50 | "type": "pubkeyhash", 51 | "addresses": [ 52 | "mmy7BEH1SUGAeSVUR22pt5hPaejo2645F1" 53 | ] 54 | } 55 | } 56 | ], 57 | "blockhash": "0000000000000344631261acbca74f259a7dd106fe6fe46a2324c15bf2c6c899", 58 | "confirmations": 63706, 59 | "time": 1475718079, 60 | "blocktime": 1475718079 61 | } -------------------------------------------------------------------------------- /spec/fixtures/tx/dd21295dd0aed5bb336e078994be1df0dc07fe79270e7ecab51136fb0b7cd59a.json: -------------------------------------------------------------------------------- 1 | { 2 | "hex": "01000000018e21aec0d7ad999c53f98de37725c0c3d3c36b24a7569051cb1c8996151a6819010000006b483045022100b4555aefc579317e9aa06f1fb1eaec01d5c4688e87ed8fc32b0ff2c3dfeba69002206556b1d8f0dd05be4435140b14cf2133f0dab662470f3a4eb6d754df4a5da4b80121035456a125cc30113748de2fff4a7bf93981876a690e1738fad91d14465be2c728ffffffff0358020000000000001976a914ce5807e32919e3e3df9806d03bd509207730e1a188ac00000000000000000a6a084f41010001e80700385d0100000000001976a914ce5807e32919e3e3df9806d03bd509207730e1a188ac00000000", 3 | "txid": "dd21295dd0aed5bb336e078994be1df0dc07fe79270e7ecab51136fb0b7cd59a", 4 | "hash": "dd21295dd0aed5bb336e078994be1df0dc07fe79270e7ecab51136fb0b7cd59a", 5 | "size": 245, 6 | "vsize": 245, 7 | "version": 1, 8 | "locktime": 0, 9 | "vin": [ 10 | { 11 | "txid": "19681a1596891ccb519056a7246bc3d3c3c02577e38df9539c99add7c0ae218e", 12 | "vout": 1, 13 | "scriptSig": { 14 | "asm": "3045022100b4555aefc579317e9aa06f1fb1eaec01d5c4688e87ed8fc32b0ff2c3dfeba69002206556b1d8f0dd05be4435140b14cf2133f0dab662470f3a4eb6d754df4a5da4b8[ALL] 035456a125cc30113748de2fff4a7bf93981876a690e1738fad91d14465be2c728", 15 | "hex": "483045022100b4555aefc579317e9aa06f1fb1eaec01d5c4688e87ed8fc32b0ff2c3dfeba69002206556b1d8f0dd05be4435140b14cf2133f0dab662470f3a4eb6d754df4a5da4b80121035456a125cc30113748de2fff4a7bf93981876a690e1738fad91d14465be2c728" 16 | }, 17 | "sequence": 4294967295 18 | } 19 | ], 20 | "vout": [ 21 | { 22 | "value": 0.00000600, 23 | "n": 0, 24 | "scriptPubKey": { 25 | "asm": "OP_DUP OP_HASH160 ce5807e32919e3e3df9806d03bd509207730e1a1 OP_EQUALVERIFY OP_CHECKSIG", 26 | "hex": "76a914ce5807e32919e3e3df9806d03bd509207730e1a188ac", 27 | "reqSigs": 1, 28 | "type": "pubkeyhash", 29 | "addresses": [ 30 | "mzKzx4NheRX3PmqprDnD8UUoXjTX7RqVeL" 31 | ] 32 | } 33 | }, 34 | { 35 | "value": 0.00000000, 36 | "n": 1, 37 | "scriptPubKey": { 38 | "asm": "OP_RETURN 4f41010001e80700", 39 | "hex": "6a084f41010001e80700", 40 | "type": "nulldata" 41 | } 42 | }, 43 | { 44 | "value": 0.00089400, 45 | "n": 2, 46 | "scriptPubKey": { 47 | "asm": "OP_DUP OP_HASH160 ce5807e32919e3e3df9806d03bd509207730e1a1 OP_EQUALVERIFY OP_CHECKSIG", 48 | "hex": "76a914ce5807e32919e3e3df9806d03bd509207730e1a188ac", 49 | "reqSigs": 1, 50 | "type": "pubkeyhash", 51 | "addresses": [ 52 | "mzKzx4NheRX3PmqprDnD8UUoXjTX7RqVeL" 53 | ] 54 | } 55 | } 56 | ], 57 | "blockhash": "0000000000010a4d2f5f1cdd34e90d6248e2227e6267a942d9e719c7256fc665", 58 | "confirmations": 134760, 59 | "time": 1469351808, 60 | "blocktime": 1469351808 61 | } -------------------------------------------------------------------------------- /spec/fixtures/tx/dd58300c4e6673d64f8ae3546fde4ac3e1445e707605c2f91ac6636b84fe28d8.json: -------------------------------------------------------------------------------- 1 | { 2 | "hex": "01000000018acea6b66f0c7d0da3a4e035724c71d798fd80cb971f0ea598482441ec93b021000000006b483045022100e39412857cf32417205eb1b647fb966244199f271996b68e592421b2b6598a6f022065d1245772886d693806b5629f7bc2ef9bb7a5a73732683acdf79f701336b958012103e5e18bb71cab9a0f3e4a8d86eddc8e28a10792ef1f1114e59c57165ed1085355ffffffff02b64d0300000000001976a91484a14fd7c4c522d59158f91f78c250278f66a89988aca0860100000000001976a914b7218fe503cd18555255e5b13d4f07f3fd00d0c988ac00000000", 3 | "txid": "dd58300c4e6673d64f8ae3546fde4ac3e1445e707605c2f91ac6636b84fe28d8", 4 | "size": 226, 5 | "version": 1, 6 | "locktime": 0, 7 | "vin": [ 8 | { 9 | "txid": "21b093ec41244898a50e1f97cb80fd98d7714c7235e0a4a30d7d0c6fb6a6ce8a", 10 | "vout": 0, 11 | "scriptSig": { 12 | "asm": "3045022100e39412857cf32417205eb1b647fb966244199f271996b68e592421b2b6598a6f022065d1245772886d693806b5629f7bc2ef9bb7a5a73732683acdf79f701336b958[ALL] 03e5e18bb71cab9a0f3e4a8d86eddc8e28a10792ef1f1114e59c57165ed1085355", 13 | "hex": "483045022100e39412857cf32417205eb1b647fb966244199f271996b68e592421b2b6598a6f022065d1245772886d693806b5629f7bc2ef9bb7a5a73732683acdf79f701336b958012103e5e18bb71cab9a0f3e4a8d86eddc8e28a10792ef1f1114e59c57165ed1085355" 14 | }, 15 | "sequence": 4294967295 16 | } 17 | ], 18 | "vout": [ 19 | { 20 | "value": 0.00216502, 21 | "n": 0, 22 | "scriptPubKey": { 23 | "asm": "OP_DUP OP_HASH160 84a14fd7c4c522d59158f91f78c250278f66a899 OP_EQUALVERIFY OP_CHECKSIG", 24 | "hex": "76a91484a14fd7c4c522d59158f91f78c250278f66a89988ac", 25 | "reqSigs": 1, 26 | "type": "pubkeyhash", 27 | "addresses": [ 28 | "1D6HSU9CcWyyaiBjFxWWPgVhDcwkMMn4jk" 29 | ] 30 | } 31 | }, 32 | { 33 | "value": 0.00100000, 34 | "n": 1, 35 | "scriptPubKey": { 36 | "asm": "OP_DUP OP_HASH160 b7218fe503cd18555255e5b13d4f07f3fd00d0c9 OP_EQUALVERIFY OP_CHECKSIG", 37 | "hex": "76a914b7218fe503cd18555255e5b13d4f07f3fd00d0c988ac", 38 | "reqSigs": 1, 39 | "type": "pubkeyhash", 40 | "addresses": [ 41 | "1HhJs3JgbiyxC8ktfi6nU4wTqVmrMtCVkG" 42 | ] 43 | } 44 | } 45 | ], 46 | "blockhash": "000000000000000000180fc5ecf13e313fb2086298e20ea18727cb5730e2d772", 47 | "confirmations": 78352, 48 | "time": 1434008745, 49 | "blocktime": 1434008745 50 | } -------------------------------------------------------------------------------- /spec/fixtures/tx/e1dcdb553d40ec35aac0a5b9bc2cce0112dd10c869a887b52b3b58071bb29f3c.json: -------------------------------------------------------------------------------- 1 | { 2 | "hex": "01000000016475d1c8e6d8c289191fe5810801c0285c3fef9d82dbe9da01b344ac446ef308000000006a473044022078405f742167e0e79cd371cc7618006b274ee37dc61182d7a925492a2b3bf684022009646930834c0d017059c7bfcfc4b0c79ae47548c64f3dcfe8375d6a81506d23012102bf9ae6b35ee08f18e4ff7a28cefcef511142e6169086579b8d468097327780ebffffffff0458020000000000001976a9148130f96080e598cc4e210067eb54403074aa1a8d88ac00000000000000000a6a084f41010001a30400fd905c05000000001976a914626871f87bfb20804d5b2ae2cde668efd70c60d388ac1b900000000000001976a9148130f96080e598cc4e210067eb54403074aa1a8d88ac00000000", 3 | "txid": "e1dcdb553d40ec35aac0a5b9bc2cce0112dd10c869a887b52b3b58071bb29f3c", 4 | "hash": "e1dcdb553d40ec35aac0a5b9bc2cce0112dd10c869a887b52b3b58071bb29f3c", 5 | "size": 278, 6 | "vsize": 278, 7 | "version": 1, 8 | "locktime": 0, 9 | "vin": [ 10 | { 11 | "txid": "08f36e44ac44b301dae9db829def3f5c28c0010881e51f1989c2d8e6c8d17564", 12 | "vout": 0, 13 | "scriptSig": { 14 | "asm": "3044022078405f742167e0e79cd371cc7618006b274ee37dc61182d7a925492a2b3bf684022009646930834c0d017059c7bfcfc4b0c79ae47548c64f3dcfe8375d6a81506d23[ALL] 02bf9ae6b35ee08f18e4ff7a28cefcef511142e6169086579b8d468097327780eb", 15 | "hex": "473044022078405f742167e0e79cd371cc7618006b274ee37dc61182d7a925492a2b3bf684022009646930834c0d017059c7bfcfc4b0c79ae47548c64f3dcfe8375d6a81506d23012102bf9ae6b35ee08f18e4ff7a28cefcef511142e6169086579b8d468097327780eb" 16 | }, 17 | "sequence": 4294967295 18 | } 19 | ], 20 | "vout": [ 21 | { 22 | "value": 0.00000600, 23 | "n": 0, 24 | "scriptPubKey": { 25 | "asm": "OP_DUP OP_HASH160 8130f96080e598cc4e210067eb54403074aa1a8d OP_EQUALVERIFY OP_CHECKSIG", 26 | "hex": "76a9148130f96080e598cc4e210067eb54403074aa1a8d88ac", 27 | "reqSigs": 1, 28 | "type": "pubkeyhash", 29 | "addresses": [ 30 | "msJ48aj11GcKuu3SK5nc5MPGrMxvE1oR5Y" 31 | ] 32 | } 33 | }, 34 | { 35 | "value": 0.00000000, 36 | "n": 1, 37 | "scriptPubKey": { 38 | "asm": "OP_RETURN 4f41010001a30400", 39 | "hex": "6a084f41010001a30400", 40 | "type": "nulldata" 41 | } 42 | }, 43 | { 44 | "value": 0.89952509, 45 | "n": 2, 46 | "scriptPubKey": { 47 | "asm": "OP_DUP OP_HASH160 626871f87bfb20804d5b2ae2cde668efd70c60d3 OP_EQUALVERIFY OP_CHECKSIG", 48 | "hex": "76a914626871f87bfb20804d5b2ae2cde668efd70c60d388ac", 49 | "reqSigs": 1, 50 | "type": "pubkeyhash", 51 | "addresses": [ 52 | "mpVHdqGN7XfBKNGwbJmaVYXVPPnmXpXf7Y" 53 | ] 54 | } 55 | }, 56 | { 57 | "value": 0.00036891, 58 | "n": 3, 59 | "scriptPubKey": { 60 | "asm": "OP_DUP OP_HASH160 8130f96080e598cc4e210067eb54403074aa1a8d OP_EQUALVERIFY OP_CHECKSIG", 61 | "hex": "76a9148130f96080e598cc4e210067eb54403074aa1a8d88ac", 62 | "reqSigs": 1, 63 | "type": "pubkeyhash", 64 | "addresses": [ 65 | "msJ48aj11GcKuu3SK5nc5MPGrMxvE1oR5Y" 66 | ] 67 | } 68 | } 69 | ], 70 | "blockhash": "0000000036e776641f8c2d35224a5a6d04cef2821f576b949e42a13be7fb4145", 71 | "confirmations": 638408, 72 | "time": 1431136755, 73 | "blocktime": 1431136755 74 | } -------------------------------------------------------------------------------- /spec/fixtures/tx/f2ab72a7f108c5f2c2f352d1918814975f89abb0a27ca3338e99514e771dfb30.json: -------------------------------------------------------------------------------- 1 | { 2 | "hex": "010000000196f0cfd7ee113fb3893bc75011ced86b0db321fa1de856a682e2a752642bd5b8030000006b48304502201c4dfcd9700a7af62a0e242b15bca0d6ab0a7e58a1a5b2673d314a7fe56506ae022100be488d23438044c598111735b7f5cfb657c9e826965de6832de2c4748ad441a701210233df159fad83540209cd32ad761893d90119354b40dad24c481b6c1f8e39cd8bffffffff02a0860100000000001976a914878bd346b688c798eeeff329c6ffafddddbaa0f288ac0af00200000000001976a91461879103f4db4f02b6dc9ba641bb3a29855fa8aa88ac00000000", 3 | "txid": "f2ab72a7f108c5f2c2f352d1918814975f89abb0a27ca3338e99514e771dfb30", 4 | "size": 226, 5 | "version": 1, 6 | "locktime": 0, 7 | "vin": [ 8 | { 9 | "txid": "b8d52b6452a7e282a656e81dfa21b30d6bd8ce1150c73b89b33f11eed7cff096", 10 | "vout": 3, 11 | "scriptSig": { 12 | "asm": "304502201c4dfcd9700a7af62a0e242b15bca0d6ab0a7e58a1a5b2673d314a7fe56506ae022100be488d23438044c598111735b7f5cfb657c9e826965de6832de2c4748ad441a7[ALL] 0233df159fad83540209cd32ad761893d90119354b40dad24c481b6c1f8e39cd8b", 13 | "hex": "48304502201c4dfcd9700a7af62a0e242b15bca0d6ab0a7e58a1a5b2673d314a7fe56506ae022100be488d23438044c598111735b7f5cfb657c9e826965de6832de2c4748ad441a701210233df159fad83540209cd32ad761893d90119354b40dad24c481b6c1f8e39cd8b" 14 | }, 15 | "sequence": 4294967295 16 | } 17 | ], 18 | "vout": [ 19 | { 20 | "value": 0.00100000, 21 | "n": 0, 22 | "scriptPubKey": { 23 | "asm": "OP_DUP OP_HASH160 878bd346b688c798eeeff329c6ffafddddbaa0f2 OP_EQUALVERIFY OP_CHECKSIG", 24 | "hex": "76a914878bd346b688c798eeeff329c6ffafddddbaa0f288ac", 25 | "reqSigs": 1, 26 | "type": "pubkeyhash", 27 | "addresses": [ 28 | "1DMhj8VLajNUvhzXnZYnX8tgi7bReYeS13" 29 | ] 30 | } 31 | }, 32 | { 33 | "value": 0.00192522, 34 | "n": 1, 35 | "scriptPubKey": { 36 | "asm": "OP_DUP OP_HASH160 61879103f4db4f02b6dc9ba641bb3a29855fa8aa OP_EQUALVERIFY OP_CHECKSIG", 37 | "hex": "76a91461879103f4db4f02b6dc9ba641bb3a29855fa8aa88ac", 38 | "reqSigs": 1, 39 | "type": "pubkeyhash", 40 | "addresses": [ 41 | "19tgwvzA19XDHcDnNGSw1WrzjC1pq7waMA" 42 | ] 43 | } 44 | } 45 | ], 46 | "blockhash": "0000000000000000029f400851f40a74e705ce9aeb603b3779eb64e65726433e", 47 | "confirmations": 61231, 48 | "time": 1444040344, 49 | "blocktime": 1444040344 50 | } -------------------------------------------------------------------------------- /spec/fixtures/tx/f98373ac2c09a99aef99db774538abe26bfbb543c0ca888ea3558cc881e9535d.json: -------------------------------------------------------------------------------- 1 | { 2 | "hex": "01000000017d0cb5a3201f4b9585a3b4bb0347b21c603a2fee95c5de56ee5b0834b49e1452000000006a473044022037bbfc19ea97d773e196d57bf13bd089041180c2a6f18768d9cba5f161a090120220707ed82a8d175b306af33db7b4e56dacb0946885fd5a4c414d1885926c5c78e801210233df159fad83540209cd32ad761893d90119354b40dad24c481b6c1f8e39cd8bffffffff0358020000000000001976a9147cbc38b45e36dbe96e991d737450f047a9899a6388ac0000000000000000206a1e4f41010001dc0b16753d687474703a2f2f676f6f2e676c2f6653346d456ab8770700000000001976a9147cbc38b45e36dbe96e991d737450f047a9899a6388ac00000000", 3 | "txid": "f98373ac2c09a99aef99db774538abe26bfbb543c0ca888ea3558cc881e9535d", 4 | "size": 266, 5 | "version": 1, 6 | "locktime": 0, 7 | "vin": [ 8 | { 9 | "txid": "52149eb434085bee56dec595ee2f3a601cb24703bbb4a385954b1f20a3b50c7d", 10 | "vout": 0, 11 | "scriptSig": { 12 | "asm": "3044022037bbfc19ea97d773e196d57bf13bd089041180c2a6f18768d9cba5f161a090120220707ed82a8d175b306af33db7b4e56dacb0946885fd5a4c414d1885926c5c78e8[ALL] 0233df159fad83540209cd32ad761893d90119354b40dad24c481b6c1f8e39cd8b", 13 | "hex": "473044022037bbfc19ea97d773e196d57bf13bd089041180c2a6f18768d9cba5f161a090120220707ed82a8d175b306af33db7b4e56dacb0946885fd5a4c414d1885926c5c78e801210233df159fad83540209cd32ad761893d90119354b40dad24c481b6c1f8e39cd8b" 14 | }, 15 | "sequence": 4294967295 16 | } 17 | ], 18 | "vout": [ 19 | { 20 | "value": 0.00000600, 21 | "n": 0, 22 | "scriptPubKey": { 23 | "asm": "OP_DUP OP_HASH160 7cbc38b45e36dbe96e991d737450f047a9899a63 OP_EQUALVERIFY OP_CHECKSIG", 24 | "hex": "76a9147cbc38b45e36dbe96e991d737450f047a9899a6388ac", 25 | "reqSigs": 1, 26 | "type": "pubkeyhash", 27 | "addresses": [ 28 | "1CNYGeUsJU6csL8ZkZATrJhzmhv7LM4vFx" 29 | ] 30 | } 31 | }, 32 | { 33 | "value": 0.00000000, 34 | "n": 1, 35 | "scriptPubKey": { 36 | "asm": "OP_RETURN 4f41010001dc0b16753d687474703a2f2f676f6f2e676c2f6653346d456a", 37 | "hex": "6a1e4f41010001dc0b16753d687474703a2f2f676f6f2e676c2f6653346d456a", 38 | "type": "nulldata" 39 | } 40 | }, 41 | { 42 | "value": 0.00489400, 43 | "n": 2, 44 | "scriptPubKey": { 45 | "asm": "OP_DUP OP_HASH160 7cbc38b45e36dbe96e991d737450f047a9899a63 OP_EQUALVERIFY OP_CHECKSIG", 46 | "hex": "76a9147cbc38b45e36dbe96e991d737450f047a9899a6388ac", 47 | "reqSigs": 1, 48 | "type": "pubkeyhash", 49 | "addresses": [ 50 | "1CNYGeUsJU6csL8ZkZATrJhzmhv7LM4vFx" 51 | ] 52 | } 53 | } 54 | ], 55 | "blockhash": "00000000000000000108a67c0ebddadfdd41008a82c9ff53e9db9d141bd84a95", 56 | "confirmations": 61685, 57 | "time": 1443778763, 58 | "blocktime": 1443778763 59 | } -------------------------------------------------------------------------------- /spec/openassets/cache/output_cache_spec.rb: -------------------------------------------------------------------------------- 1 | require 'spec_helper' 2 | describe OpenAssets::Cache::OutputCache do 3 | 4 | subject{ 5 | OpenAssets::Cache::OutputCache.new(':memory:') 6 | } 7 | 8 | it 'output cache' do 9 | txid = '7ed86d1c2824ea14bf8a2fe27202a1d229a4f58db52e2ba1ed13cf36765deaac' 10 | index = 0 11 | output = OpenAssets::Protocol::TransactionOutput.new( 12 | 100, Bitcoin::Script.from_string('OP_RETURN 4f41010001904e1b753d68747470733a2f2f6370722e736d2f35596753553150672d71'), 13 | 'AGHhobo7pVQN5fZWqv3rhdc324ryT7qVTB', 200, OpenAssets::Protocol::OutputType::ISSUANCE, 'u=https://goo.gl/Q0NZfe') 14 | 15 | expect(subject.get(txid, index)).to be nil 16 | 17 | subject.put(txid, index, output) 18 | 19 | expect(subject.get(txid, 1)).to be nil 20 | 21 | cached = subject.get(txid, index) 22 | 23 | expect(cached.value).to eq(100) 24 | expect(cached.script.to_string).to eq('OP_RETURN 4f41010001904e1b753d68747470733a2f2f6370722e736d2f35596753553150672d71') 25 | expect(cached.asset_id).to eq('AGHhobo7pVQN5fZWqv3rhdc324ryT7qVTB') 26 | expect(cached.asset_quantity).to eq(200) 27 | expect(cached.output_type).to eq(OpenAssets::Protocol::OutputType::ISSUANCE) 28 | expect(cached.metadata).to eq('u=https://goo.gl/Q0NZfe') 29 | end 30 | 31 | end -------------------------------------------------------------------------------- /spec/openassets/cache/ssl_certificate_cache_spec.rb: -------------------------------------------------------------------------------- 1 | require 'spec_helper' 2 | require 'timecop' 3 | describe OpenAssets::Cache::SSLCertificateCache do 4 | 5 | before :all do 6 | Timecop.freeze(Time.new(2016,2,21)) 7 | end 8 | 9 | after :all do 10 | Timecop.return 11 | end 12 | 13 | subject{ 14 | OpenAssets::Cache::SSLCertificateCache.new 15 | } 16 | 17 | it 'check expire date' do 18 | url = 'https://s3-ap-northeast-1.amazonaws.com/colorcoin-metadata/metadata.json' 19 | 20 | subject.put(url, 'Amazon.com Inc.', Time.parse('2016-02-20')) 21 | expect(subject.get(url)).to be nil 22 | 23 | subject.put(url, 'Amazon.com Inc.', Time.parse('2016-02-25')) 24 | expect(subject.get(url)).to eq('Amazon.com Inc.') 25 | end 26 | 27 | end -------------------------------------------------------------------------------- /spec/openassets/cache/transaction_cache_spec.rb: -------------------------------------------------------------------------------- 1 | require 'spec_helper' 2 | describe OpenAssets::Cache::TransactionCache do 3 | 4 | subject{ 5 | OpenAssets::Cache::TransactionCache.new(':memory:') 6 | } 7 | 8 | it 'get' do 9 | expect(subject.get('41fbb44dd78a11f8a1188983dfd63e70e47be94f7e644d20e2e673e811535bde')).to be nil 10 | end 11 | 12 | it 'put' do 13 | txid = '7ed86d1c2824ea14bf8a2fe27202a1d229a4f58db52e2ba1ed13cf36765deaac' 14 | serialized_tx = '0100000006106948b5ad069587da671acd3a1c71059e196516214645bd4728adb716dd8768010000006b483045022100b9e0cb64360c13299be81f2a8c07334e2913f2273f75ccfb919d48b83488ecb00220791aa7e596559be4acc9ce92141775b54d2c4017ddc7a6c2fd37b427c1d07d8c012102f61508529d9676dac201761069ba10eaf546586874e136b02e5d31e9880b5a2affffffff106948b5ad069587da671acd3a1c71059e196516214645bd4728adb716dd8768020000006a473044022030bf90882f9d22dfb13c782ecbe27ada99f8339a2ad780f0780691625c95f426022005246378a8d26ff56ceb6da210fa9e773b0639e12795f51c3cf96986be74c681012102f61508529d9676dac201761069ba10eaf546586874e136b02e5d31e9880b5a2affffffff106948b5ad069587da671acd3a1c71059e196516214645bd4728adb716dd8768030000006b483045022100fba1072d96a3972838dc1503de4509dd4b8c2ba365bea68a8d5c267b2104ede50220688f2e3d4f529b3921884d3b22f6ec26486ce432a8caaf20e45b0d24501d8ffc012102f61508529d9676dac201761069ba10eaf546586874e136b02e5d31e9880b5a2affffffff6f2db9cb1eac348ae672c39b92d5ef290c3cee89b3f06776e40558a9dd6cce9e010000006b483045022100c47feb60db13996e8c2bb46f7053733389385499b17c8ff10f5a23b21cc96be602200a4d4f66115a1b009c64b33e89b867afe3bcc516dda67e5cfe10c510f3465483012102f61508529d9676dac201761069ba10eaf546586874e136b02e5d31e9880b5a2affffffff6f2db9cb1eac348ae672c39b92d5ef290c3cee89b3f06776e40558a9dd6cce9e020000006b48304502210086eb2186d4728b641b392aecaef752a5938e791e4a5b8aa4b6c31a05f88c25c802202cfdc7ce96624f2f667854c12abc969cbd9a31197b7f557cf4d94ee3a1e4e9a0012102f61508529d9676dac201761069ba10eaf546586874e136b02e5d31e9880b5a2affffffff5caa4a08ae0ef0e765e95d8fca4d53bd6e3d5496f941cb8a42f1be453ba78e30010000006a47304402201285dcba61a3524ff6146157a14b354d0b8ed4480793186ccb9fb4196b68d49302205587cad2dc7f1d7cd1044cf5705748810388313182893a82140e8657cbe1a48a012102f61508529d9676dac201761069ba10eaf546586874e136b02e5d31e9880b5a2affffffff0600000000000000000c6a0a4f41010004321604020058020000000000001976a914fa7491ee214ab15241a613fb5906f6df996bb08b88ac58020000000000001976a9147d8dd16cc3413a64a9964c91cb0ee9358ab1dff688ac58020000000000001976a914fa7491ee214ab15241a613fb5906f6df996bb08b88ac58020000000000001976a9147d8dd16cc3413a64a9964c91cb0ee9358ab1dff688ace8610100000000001976a9147d8dd16cc3413a64a9964c91cb0ee9358ab1dff688ac00000000' 15 | subject.put(txid, serialized_tx) 16 | subject.put('9ece6cdda95805e47667f0b389ee3c0c29efd5929bc372e68a34ac1ecbb92d6f', '0100000002bab7d2b0bfdd11bb8e7757bc575398bbaa8f30110f56590e1bf2dfff0c210c37000000006b483045022100ef7e82e77372407da5586acd77cf61a9d7682782b7ead0450ae220d07913555c0220101cb1a026a4c81204a01ec0c02e237f0d0c22f31fd87030e85640f1a53a2d5c0121033917dfab0a99833380034fa77159a812feb8333382e53075b88dcbebfde7cc49ffffffffbab7d2b0bfdd11bb8e7757bc575398bbaa8f30110f56590e1bf2dfff0c210c37020000006b483045022100ae225c601583b1e8cf6190ac6f7ae32df94aeb347d6bb7d17ee98532b94e9379022010718ac1a2c68a21e1f80bdd7f7fcd42866d50006ecdcda341cc8c40419403770121033917dfab0a99833380034fa77159a812feb8333382e53075b88dcbebfde7cc49ffffffff0600000000000000000d6a0b4f41010004030304de070058020000000000001976a9147d8dd16cc3413a64a9964c91cb0ee9358ab1dff688ac58020000000000001976a9147d8dd16cc3413a64a9964c91cb0ee9358ab1dff688ac58020000000000001976a9147d8dd16cc3413a64a9964c91cb0ee9358ab1dff688ac58020000000000001976a914a938dad89bbd964cbaf5d9059e0bda1d900ce08388ac202f0100000000001976a914a938dad89bbd964cbaf5d9059e0bda1d900ce08388ac00000000') 17 | expect(subject.get(txid)).to eq(serialized_tx) 18 | end 19 | 20 | end -------------------------------------------------------------------------------- /spec/openassets/method_filter_spec.rb: -------------------------------------------------------------------------------- 1 | require 'spec_helper' 2 | describe OpenAssets::MethodFilter do 3 | 4 | it 'before filter' do 5 | class FilterSpec 6 | include OpenAssets::MethodFilter 7 | 8 | before_filter :before, {:include => [:hoge]} 9 | 10 | def hoge 11 | puts "hoge" 12 | end 13 | 14 | def before 15 | puts "before" 16 | end 17 | end 18 | 19 | s = FilterSpec.new 20 | expect {s.hoge}.to output("before\nhoge\n").to_stdout 21 | end 22 | 23 | end -------------------------------------------------------------------------------- /spec/openassets/protocol/asset_definition_loader_spec.rb: -------------------------------------------------------------------------------- 1 | require 'spec_helper' 2 | 3 | describe OpenAssets::Protocol::AssetDefinitionLoader, :network => :testnet do 4 | 5 | describe 'initialize' do 6 | 7 | context 'http or https' do 8 | subject{ 9 | OpenAssets::Protocol::AssetDefinitionLoader.new('http://goo.gl/fS4mEj').loader 10 | } 11 | it do 12 | expect(subject).to be_a(OpenAssets::Protocol::HttpAssetDefinitionLoader) 13 | end 14 | end 15 | 16 | context 'invalid scheme' do 17 | subject{ 18 | OpenAssets::Protocol::AssetDefinitionLoader.new('') 19 | } 20 | it do 21 | expect(subject.load_definition).to be_nil 22 | end 23 | end 24 | 25 | end 26 | 27 | describe 'create_pointer_redeem_script' do 28 | subject { 29 | OpenAssets::Protocol::AssetDefinitionLoader.create_pointer_redeem_script('https://goo.gl/bmVEuw', 'bWwvzRQ6Lux9rWgeqTe91XwbxvFuxzK56cx') 30 | } 31 | it do 32 | expect(subject.chunks[0]).to eq('u=https://goo.gl/bmVEuw') 33 | expect(subject.chunks[1]).to eq(Bitcoin::Script::OP_DROP) 34 | expect(subject.chunks[2]).to eq(Bitcoin::Script::OP_DUP) 35 | expect(subject.chunks[3]).to eq(Bitcoin::Script::OP_HASH160) 36 | expect(subject.chunks[4]).to eq('46c2fbfbecc99a63148fa076de58cf29b0bcf0b0'.htb) # bWwvzRQ6Lux9rWgeqTe91XwbxvFuxzK56cx のBitcoinアドレスのhash160 37 | expect(subject.chunks[5]).to eq(Bitcoin::Script::OP_EQUALVERIFY) 38 | expect(subject.chunks[6]).to eq(Bitcoin::Script::OP_CHECKSIG) 39 | end 40 | end 41 | 42 | describe 'create_pointer_p2sh' do 43 | subject { 44 | OpenAssets::Protocol::AssetDefinitionLoader.create_pointer_p2sh('https://goo.gl/bmVEuw', 'bWwvzRQ6Lux9rWgeqTe91XwbxvFuxzK56cx') 45 | } 46 | it do 47 | expect(subject.is_p2sh?).to be true 48 | redeem_script = OpenAssets::Protocol::AssetDefinitionLoader.create_pointer_redeem_script('https://goo.gl/bmVEuw', 'bWwvzRQ6Lux9rWgeqTe91XwbxvFuxzK56cx') 49 | expect(subject.chunks[1]).to eq(Bitcoin.hash160(redeem_script.to_payload.bth).htb) 50 | end 51 | end 52 | 53 | describe 'redeem pointer p2sh' do 54 | it do 55 | issuance_tx = Bitcoin::Protocol::Tx.new('01000000010ae08e10dad8548a6e5eef11c5ff76f77ba865f186f6247d3d9502a59c37b588020000006b483045022100fc0d5caa16f3c21939a87b7724dca14c54b1be6a27b253bd1087009ec3873000022062a9b9e40028797526668cb07f91001f3d098461f0a610bd05db7888caac378a01210292ee82d9add0512294723f2c363aee24efdeb3f258cdaf5118a4fcf5263e92c9ffffffff03580200000000000017a914c590a1c93975aec75157e33ad904a74d2934e9d58700000000000000000b6a094f41010001d0860300f8d90000000000001976a91446c2fbfbecc99a63148fa076de58cf29b0bcf0b088ac00000000'.htb) 56 | tx = Bitcoin::Protocol::Tx.new 57 | tx.add_in(Bitcoin::Protocol::TxIn.from_hex_hash(issuance_tx.hash, 0)) 58 | tx.add_out(Bitcoin::Protocol::TxOut.value_to_address(100, 'mmy7BEH1SUGAeSVUR22pt5hPaejo2645F1')) 59 | 60 | def_url = 'https://goo.gl/bmVEuw' 61 | to = 'bWwvzRQ6Lux9rWgeqTe91XwbxvFuxzK56cx' 62 | 63 | redeem_script = OpenAssets::Protocol::AssetDefinitionLoader.create_pointer_redeem_script(def_url, to) 64 | sigunature = '3045022100a48fedcab731c5cbd583a5aa482f3efdf73e855105f8c66e44a5852c4f7a54a802202fb7c9ecf223bf072f97c90cd21bcfc9600f4b51fcd08ab3080ff0ebdd39678d' 65 | pubkey = '0292ee82d9add0512294723f2c363aee24efdeb3f258cdaf5118a4fcf5263e92c9' 66 | sig = Bitcoin::Script.to_pubkey_script_sig(sigunature.htb, pubkey.htb) 67 | script_sig = Bitcoin::Script.new(sig + Bitcoin::Script.pack_pushdata(redeem_script.to_payload)) 68 | 69 | tx.in[0].script_sig = script_sig.to_payload 70 | expect(tx.verify_input_signature(0, issuance_tx)).to be true 71 | end 72 | end 73 | 74 | end -------------------------------------------------------------------------------- /spec/openassets/protocol/asset_definition_spec.rb: -------------------------------------------------------------------------------- 1 | require 'spec_helper' 2 | 3 | describe OpenAssets::Protocol::AssetDefinition do 4 | 5 | json = '{"asset_ids":["AGHhobo7pVQN5fZWqv3rhdc324ryT7qVTB","AWo3R89p5REmoSyMWB8AeUmud8456bRxZL","AJk2Gx5V67S2wNuwTK5hef3TpHunfbjcmX"],"version":"1.0","divisibility":1,"name_short":"HAWSCoin","name":"MHAWS Coin","contract_url":"http://techmedia-think.hatenablog.com/","issuer":"Shigeyuki Azuchi","description":"The OpenAsset test description.","description_mime":"text/x-markdown; charset=UTF-8","type":"Currency","link_to_website":false}' 6 | 7 | it 'parse_json' do 8 | definition = OpenAssets::Protocol::AssetDefinition.parse_json(json) 9 | expect(definition.asset_ids.length).to eq(3) 10 | expect(definition.asset_ids[0]).to eq('AGHhobo7pVQN5fZWqv3rhdc324ryT7qVTB') 11 | expect(definition.name_short).to eq('HAWSCoin') 12 | expect(definition.name).to eq('MHAWS Coin') 13 | expect(definition.contract_url).to eq('http://techmedia-think.hatenablog.com/') 14 | expect(definition.issuer).to eq('Shigeyuki Azuchi') 15 | expect(definition.description).to eq('The OpenAsset test description.') 16 | expect(definition.description_mime).to eq('text/x-markdown; charset=UTF-8') 17 | expect(definition.type).to eq('Currency') 18 | expect(definition.divisibility).to eq(1) 19 | expect(definition.link_to_website).to be false 20 | expect(definition.icon_url).to be_nil 21 | expect(definition.image_url).to be_nil 22 | expect(definition.version).to eq('1.0') 23 | end 24 | 25 | it 'include asset id' do 26 | definition = OpenAssets::Protocol::AssetDefinition.parse_json(json) 27 | expect(definition.include_asset_id?('AboLrT5sHA1epmW2CL7UPqQ1AwwhomK8Si')).to be false 28 | expect(definition.include_asset_id?('AJk2Gx5V67S2wNuwTK5hef3TpHunfbjcmX')).to be true 29 | end 30 | 31 | it 'to_json' do 32 | definition = OpenAssets::Protocol::AssetDefinition.new 33 | definition.asset_ids[0] = 'AGHhobo7pVQN5fZWqv3rhdc324ryT7qVTB' 34 | definition.asset_ids[1] = 'AWo3R89p5REmoSyMWB8AeUmud8456bRxZL' 35 | definition.asset_ids[2] = 'AJk2Gx5V67S2wNuwTK5hef3TpHunfbjcmX' 36 | definition.name_short = 'HAWSCoin' 37 | definition.name = 'MHAWS Coin' 38 | definition.contract_url = 'http://techmedia-think.hatenablog.com/' 39 | definition.issuer = 'Shigeyuki Azuchi' 40 | definition.description = 'The OpenAsset test description.' 41 | definition.description_mime = 'text/x-markdown; charset=UTF-8' 42 | definition.type = 'Currency' 43 | definition.divisibility = 1 44 | definition.link_to_website = false 45 | definition.version = '1.0' 46 | definition.proof_of_authenticity = false 47 | 48 | expect(definition.to_json).to eq(json) 49 | end 50 | 51 | it 'proof of authenticity' do 52 | definition = OpenAssets::Protocol::AssetDefinition.new 53 | definition.link_to_website = false 54 | definition.asset_definition_url = 'http://techmedia-think.hatenablog.com/' 55 | expect(definition.proof_of_authenticity).to eq(false) 56 | 57 | definition = OpenAssets::Protocol::AssetDefinition.new 58 | definition.link_to_website = true 59 | definition.asset_definition_url = 'http://techmedia-think.hatenablog.com/' 60 | expect(definition.proof_of_authenticity).to eq(false) 61 | 62 | ssl_site = 'https://goo.gl/6pNP27' 63 | 64 | definition = OpenAssets::Protocol::AssetDefinition.new 65 | definition.link_to_website = true 66 | definition.asset_definition_url = ssl_site 67 | expect(definition.proof_of_authenticity).to eq(false) 68 | 69 | definition = OpenAssets::Protocol::AssetDefinition.new 70 | definition.link_to_website = true 71 | definition.asset_definition_url = ssl_site 72 | definition.issuer = 'Amazon.com, Inc.' 73 | expect(definition.proof_of_authenticity).to eq(true) 74 | 75 | definition = OpenAssets::Protocol::AssetDefinition.new 76 | definition.link_to_website = true 77 | definition.asset_definition_url = ssl_site 78 | definition.issuer = 'Amazon.com, Inc.' 79 | expect(definition.proof_of_authenticity).to eq(true) 80 | definition.link_to_website = false 81 | expect(definition.proof_of_authenticity).to eq(false) 82 | end 83 | 84 | end -------------------------------------------------------------------------------- /spec/openassets/protocol/http_asset_definition_loader_spec.rb: -------------------------------------------------------------------------------- 1 | require 'spec_helper' 2 | 3 | describe OpenAssets::Protocol::HttpAssetDefinitionLoader do 4 | 5 | describe 'load' do 6 | 7 | context 'correct content' do 8 | subject{ 9 | OpenAssets::Protocol::HttpAssetDefinitionLoader.new('http://goo.gl/fS4mEj').load 10 | } 11 | it do 12 | expect(subject.asset_ids.length).to eq(4) 13 | expect(subject.asset_ids[0]).to eq('AGHhobo7pVQN5fZWqv3rhdc324ryT7qVTB') 14 | expect(subject.name_short).to eq('HAWSCoin') 15 | expect(subject.name).to eq('MHAWS Coin') 16 | expect(subject.contract_url).to eq('http://techmedia-think.hatenablog.com/') 17 | expect(subject.issuer).to eq('Shigeyuki Azuchi') 18 | expect(subject.description).to eq('カラーコインの実験用通貨です。') 19 | expect(subject.description_mime).to eq('text/x-markdown; charset=UTF-8') 20 | expect(subject.type).to eq('Currency') 21 | expect(subject.divisibility).to eq(1) 22 | expect(subject.link_to_website).to be false 23 | expect(subject.icon_url).to be_nil 24 | expect(subject.image_url).to be_nil 25 | expect(subject.version).to eq('1.0') 26 | end 27 | end 28 | 29 | context '404' do 30 | subject{ 31 | OpenAssets::Protocol::HttpAssetDefinitionLoader.new('https://github.com/haw-itn/openassets-ruby/hoge').load 32 | } 33 | it do 34 | expect(subject).to be_nil 35 | end 36 | end 37 | end 38 | 39 | end -------------------------------------------------------------------------------- /spec/openassets/transaction/out_point_spec.rb: -------------------------------------------------------------------------------- 1 | require 'spec_helper' 2 | 3 | describe OpenAssets::Transaction::OutPoint do 4 | 5 | it "initialize success" do 6 | out_point = OpenAssets::Transaction::OutPoint.new('8a7e2adf117199f93c8515266497d2b9954f3f3dea0f043e06c19ad2b21b8220', 0) 7 | expect(out_point.hash).to eq('8a7e2adf117199f93c8515266497d2b9954f3f3dea0f043e06c19ad2b21b8220') 8 | expect(out_point.index).to eq(0) 9 | end 10 | 11 | it "invalid transaction hash" do 12 | expect{OpenAssets::Transaction::OutPoint.new("", 1)}.to raise_error(ArgumentError) 13 | end 14 | 15 | it "invalid index" do 16 | expect{OpenAssets::Transaction::OutPoint.new("\x01" * 32, -1)}.to raise_error(ArgumentError) 17 | end 18 | 19 | end -------------------------------------------------------------------------------- /spec/openassets/transaction/spendable_output_spec.rb: -------------------------------------------------------------------------------- 1 | require 'spec_helper' 2 | 3 | describe OpenAssets::Transaction::SpendableOutput, :network => :testnet do 4 | 5 | it 'to hash' do 6 | issue_spec = Bitcoin::Protocol::Tx.new('010000000154f5a67cb14d7e50056f53263b72165daaf438164e7e825b862b9062a4e40612000000006b48304502210098e16e338e9600876e30d9dc0894bcd1bbb612431e7a36732c5feab0686d0641022044e7dcd512073f31d0c67e0fbbf2269c4a31d5bf3bb1fcc8fbdd2e4d3c0d7e58012103e46fdcbf2062598a221c0e34d0505c270fb77c2c305c40ef0919f8efc0c7f959ffffffff0358020000000000001976a91438a6ebdf20cae2c9287ea014464042112ea3dbfd88ac0000000000000000216a1f4f410100018f4e17753d68747470733a2f2f676f6f2e676c2f755667737434b8770700000000001976a91438a6ebdf20cae2c9287ea014464042112ea3dbfd88ac00000000'.htb) 7 | transfer_spec = Bitcoin::Protocol::Tx.new('0100000002dd6cee22d848a609df2d316112ca26b569c97c189400ad6f01046d65aa7b5f52000000006a473044022021806c9f0d888862cb6e8eb3952c48499fe4c0bedc4fb3ef20743c418109a23b02206249fceeeb4c2f496a3a48b57087f97e540af465f8b9328919f6f536ba5346ed012103e46fdcbf2062598a221c0e34d0505c270fb77c2c305c40ef0919f8efc0c7f959ffffffffdd6cee22d848a609df2d316112ca26b569c97c189400ad6f01046d65aa7b5f52020000006b483045022100981c9757ddf1280a47e9274fae9ff331a1a5b750c7f0c2a18de0b18413a3121e0220395d8baeb7802f9f3947152098442144946987d6be4065a0febe20bc20ca55df012103e46fdcbf2062598a221c0e34d0505c270fb77c2c305c40ef0919f8efc0c7f959ffffffff0400000000000000000b6a094f4101000263ac4d0058020000000000001976a914e9ac589641f17a2286631c24d6d2d00b8c959eb588ac58020000000000001976a91438a6ebdf20cae2c9287ea014464042112ea3dbfd88ac504e0700000000001976a91438a6ebdf20cae2c9287ea014464042112ea3dbfd88ac00000000'.htb) 8 | metadata = OpenAssets::Protocol::MarkerOutput.deserialize_payload( 9 | OpenAssets::Protocol::MarkerOutput.parse_script(issue_spec.outputs[1].parsed_script.to_payload)).metadata 10 | output = OpenAssets::Protocol::TransactionOutput.new( 11 | 600, transfer_spec.outputs[2].parsed_script, 'oK31ByjFuNhfnFuRMmZgchsdiprYmRzuz5', 9900, OpenAssets::Protocol::OutputType::TRANSFER, metadata) 12 | output.account = '' 13 | result = OpenAssets::Transaction::SpendableOutput.new( 14 | OpenAssets::Transaction::OutPoint.new('2ef6aaf051229ff755a137a51466b54da6d8c87d17130bca8a879e9e64172ebd', 2), output) 15 | result.confirmations = 20842 16 | expect(result.to_hash).to match( 17 | 'txid' => '2ef6aaf051229ff755a137a51466b54da6d8c87d17130bca8a879e9e64172ebd', 18 | 'vout' => 2, 19 | 'address' => 'mkgW6hNYBctmqDtTTsTJrsf2Gh2NPtoCU4', 20 | 'oa_address' => 'bWvePLsBsf6nThU3pWVZVWjZbcJCYQxHCpE', 21 | 'script' => '76a91438a6ebdf20cae2c9287ea014464042112ea3dbfd88ac', 22 | 'script_type' => 'pubkeyhash', 23 | 'amount' => '0.00000600', 24 | 'confirmations' => 20842, 25 | 'asset_id' => 'oK31ByjFuNhfnFuRMmZgchsdiprYmRzuz5', 26 | 'account' => '', 27 | 'asset_quantity' => '9900', 28 | 'asset_amount' => '990.0', 29 | 'asset_definition_url' => 'https://goo.gl/uVgst4', 30 | 'proof_of_authenticity' => false, 31 | 'output_type' => 'transfer') 32 | end 33 | 34 | end -------------------------------------------------------------------------------- /spec/openassets/util_spec.rb: -------------------------------------------------------------------------------- 1 | require 'spec_helper' 2 | 3 | describe OpenAssets::Util do 4 | 5 | let(:test_class) {Struct.new(:util) {include OpenAssets::Util}} 6 | let(:util) {test_class.new} 7 | 8 | context 'mainnet' do 9 | it 'convert address ' do 10 | btc_address = '1F2AQr6oqNtcJQ6p9SiCLQTrHuM9en44H8' 11 | oa_address = 'akQz3f1v9JrnJAeGBC4pNzGNRdWXKan4U6E' 12 | expect(util.address_to_oa_address(btc_address)).to eq(oa_address) 13 | expect(util.oa_address_to_address(oa_address)).to eq(btc_address) 14 | end 15 | 16 | it 'generate asset ID from public key' do 17 | expect(util.generate_asset_id( 18 | '0450863ad64a87ae8a2fe83c1af1a8403cb53f53e486d8511dad8a04887e5b23522cd470243453a299fa9e77237716103abc11a1df38855ed6f2ee187e9c582ba6')) 19 | .to eq('ALn3aK1fSuG27N96UGYB1kUYUpGKRhBuBC') 20 | end 21 | 22 | it 'validate asset ID' do 23 | puts 24 | expect(util.valid_asset_id?('ALn3aK1fSuG27N96UGYB1kUYUpGKRhBuBC')).to be true 25 | expect(util.valid_asset_id?('')).to be false 26 | expect(util.valid_asset_id?(nil)).to be false 27 | expect(util.valid_asset_id?('oLn3aK1fSuG27N96UGYB1kUYUpGKRhBuBC')).to be false 28 | expect(util.valid_asset_id?('ALn3aK1fSuG27N96UGYB1kUYUpGKRhBuBC3')).to be false 29 | end 30 | end 31 | 32 | context 'testnet', :network => :testnet do 33 | it 'pubkey_hash_to_asset_id' do 34 | expect(util.pubkey_hash_to_asset_id('081522820f2ccef873e47ee62b31cb9e9267e725')).to eq('oWLkUn44E45cnQtsP6x1wrvJ2iRx9XyFny') 35 | end 36 | 37 | it 'script_to_asset_id' do 38 | expect(util.script_to_asset_id('a914f9d499817e88ef7b10a88673296c6d6df2f4292d87')).to eq('oMb2yzA542yQgwn8XtmGefTzBv5NJ2nDjh') 39 | end 40 | 41 | it 'validate asset ID' do 42 | puts 43 | expect(util.valid_asset_id?('oWLkUn44E45cnQtsP6x1wrvJ2iRx9XyFny')).to be true 44 | expect(util.valid_asset_id?('')).to be false 45 | expect(util.valid_asset_id?(nil)).to be false 46 | expect(util.valid_asset_id?('kXiQGL32ybiiZKfznYMAAPQnVy35LRDL7M')).to be false 47 | expect(util.valid_asset_id?('oXiQGL32ybiiZKfznYMAAPQnVy35LRDL7M1')).to be false 48 | end 49 | end 50 | 51 | it 'leb128 encode' do 52 | expect(util.encode_leb128(300)).to eq('ac02') 53 | end 54 | 55 | it 'satoshi to coin' do 56 | expect(util.satoshi_to_coin(100000)).to eq('0.00100000') 57 | end 58 | 59 | it 'coin to satoshi' do 60 | expect(util.coin_to_satoshi('0.00100000')).to eq(100000) 61 | end 62 | 63 | it 'variable integer' do 64 | expect(util.read_var_integer("fd0000").first).to eq(0) 65 | expect(util.read_var_integer("fd1100").first).to eq(17) 66 | 67 | expect(util.read_var_integer("fe00000000").first).to eq(0) 68 | expect(util.read_var_integer("fe11000000").first).to eq(17) 69 | expect(util.read_var_integer("fe11220000").first).to eq(8721) 70 | 71 | expect(util.read_var_integer("ff0000000000000000").first).to eq(0) 72 | expect(util.read_var_integer("ff1100000000000000").first).to eq(17) 73 | expect(util.read_var_integer("ff1122000000000000").first).to eq(8721) 74 | expect(util.read_var_integer("ff1122334400000000").first).to eq(1144201745) 75 | end 76 | end -------------------------------------------------------------------------------- /spec/openassets_spec.rb: -------------------------------------------------------------------------------- 1 | require 'spec_helper' 2 | 3 | describe OpenAssets do 4 | 5 | it 'has a version number' do 6 | expect(OpenAssets::VERSION).not_to be nil 7 | end 8 | 9 | end 10 | -------------------------------------------------------------------------------- /spec/spec_helper.rb: -------------------------------------------------------------------------------- 1 | # $LOAD_PATH.unshift File.expand_path('../lib', __FILE__) 2 | require 'rubygems' 3 | require 'openassets' 4 | require 'json' 5 | 6 | RSpec.configure do |config| 7 | config.before(:each) do |example| 8 | if example.metadata[:network] == :testnet 9 | Bitcoin.network = :testnet3 10 | elsif example.metadata[:network] == :litecoin 11 | Bitcoin.network = :litecoin 12 | elsif example.metadata[:network] == :litecoin_testnet 13 | Bitcoin.network = :litecoin_testnet 14 | else 15 | Bitcoin.network = :bitcoin 16 | end 17 | end 18 | end 19 | 20 | def fixture_file(relative_path) 21 | file = File.read(File.join(File.dirname(__FILE__), 'fixtures', relative_path)) 22 | JSON.parse(file) 23 | end 24 | 25 | def load_tx_mock(provider_mock) 26 | Dir::entries(__dir__ + "/fixtures/tx").each do |file_name| 27 | next unless file_name.include?(".json") 28 | txid = file_name.delete(".json") 29 | json = fixture_file("tx/#{txid}.json") 30 | allow(provider_mock).to receive(:get_transaction).with(txid, 0).and_return(json['hex']) 31 | allow(provider_mock).to receive(:get_transaction).with(txid, 1).and_return(json) 32 | allow(provider_mock).to receive(:getrawtransaction).with(txid, 0).and_return(json['hex']) 33 | allow(provider_mock).to receive(:getrawtransaction).with(txid, 1).and_return(json) 34 | end 35 | end 36 | 37 | def load_block_mock(provider_mock) 38 | Dir::entries(__dir__ + "/fixtures/block").each do |file_name| 39 | next unless file_name.include?(".json") 40 | block_hash = file_name.delete(".json") 41 | json = fixture_file("block/#{block_hash}.json") 42 | allow(provider_mock).to receive(:getblockhash).with(json['height']).and_return(block_hash) 43 | allow(provider_mock).to receive(:getblock).with(block_hash).and_return(json) 44 | end 45 | end 46 | 47 | def load_help(version) 48 | File.read("#{File.dirname(__FILE__)}/fixtures/help-result-#{version}.txt") 49 | end 50 | 51 | class OpenAssets::Provider::BitcoinCoreProvider 52 | alias_method :original_request, :request 53 | 54 | def request(command, *params) 55 | return load_help(core_version) if command == :help 56 | original_request(command, *params) 57 | end 58 | 59 | def core_version 60 | "0.16.0" 61 | end 62 | 63 | end -------------------------------------------------------------------------------- /spec/test-config.json: -------------------------------------------------------------------------------- 1 | { 2 | "network": "testnet", 3 | "min_confirmation": 0, 4 | "max_confirmation": 1 5 | } --------------------------------------------------------------------------------