bitcoin2graphdb 0.1.6 → 0.1.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 3abd39596fb30ef8f52ff0387fbcc0adcd18efc1
4
- data.tar.gz: 73c24c9bf6fbfd0821fa1916709cafba35487118
3
+ metadata.gz: 75f690fbe30d0ad157becf1dd15cc8a4b16e906e
4
+ data.tar.gz: b1bc20f6a77c16e6639bbb888af0ddb1a307cc8c
5
5
  SHA512:
6
- metadata.gz: f5bb775614cc38d5984bd180bb752fc4de6f7eb3605bccff9d95674792e2b3d02999be1ff3a80357a00f2476ce05951e921e8ef5865b9a37db36b17cb91c761a
7
- data.tar.gz: 771e9ee594c438532fd41ff59b3e43ad6534c8ec16316d96c919a1ae0a14e8ce749393bc96212edf4ef1715a4cffb76eb73743292b2a4f06626586df1fd481a1
6
+ metadata.gz: ca6097456ea0180ff55cc0f7519c0ef25ba99671b3ec54ebf924c43bda44e09fc7dc896677070d11143061eeb5551469a145b6c1be55783e677b82914c72c526
7
+ data.tar.gz: ed380cd3af6f18a5315017802cad28274a147bb8f59f1743869222d3321f8e33eedc0b9d01a234a7cf39b3fa7ab9e946a66ae7b4635f03c03dc28dcecbdb4dde
data/Rakefile CHANGED
@@ -12,39 +12,34 @@ namespace :b2g do
12
12
  desc 'Import specified block to neo4j database.'
13
13
  task :import_block, [:block_height,:config_path] do |task, args|
14
14
  puts "import #{args.block_height} block."
15
- Bitcoin2Graphdb::Migration.new(load_config(args.config_path)).run_with_height(args.block_height.to_i)
15
+ get_migration(args.config_path).run_with_height(args.block_height.to_i)
16
16
  end
17
17
 
18
18
  desc 'Remove specified block from neo4j database.'
19
19
  task :remove_block, [:block_height,:config_path] do |task, args|
20
- load_neo4j_session(args.config_path)
21
- block = Graphdb::Model::Block.with_height(args.block_height.to_i).first
22
- if block.nil?
23
- puts "block height #{args.block_height} does not exist."
24
- else
25
- block.destroy
26
- puts "block height #{args.block_height} is deleted."
27
- end
20
+ puts "remove #{args.block_height} block."
21
+ get_migration(args.config_path).remove_block(args.block_height.to_i)
22
+ end
23
+
24
+ desc 'Import specified transaction to neo4j database.'
25
+ task :import_tx, [:txid,:config_path] do |task, args|
26
+ get_migration(args.config_path).import_tx(args.txid)
28
27
  end
29
28
 
30
29
  desc 'Remove specified transaction from neo4j database.'
31
30
  task :remove_tx, [:txid,:config_path] do |task, args|
32
- load_neo4j_session(args.config_path)
33
- tx = Graphdb::Model::Transaction.with_txid(args.txid).first
34
- if tx.nil?
35
- puts "txid #{args.txid} does not exist."
36
- else
37
- tx.destroy
38
- puts "tixd #{args.txid} is deleted."
39
- end
31
+ get_migration(args.config_path).remove_tx(args.txid)
40
32
  end
41
33
 
42
- def load_neo4j_session(config_path)
43
- config = load_config(config_path)
44
- Neo4j::Session.open(:server_db, config[:neo4j][:server], {basic_auth: config[:neo4j][:basic_auth]})
34
+ desc 'Repair specified transaction.'
35
+ task :repair_tx, [:txid,:config_path] do |task, args|
36
+ get_migration(args.config_path).remove_tx(args.txid)
37
+ get_migration(args.config_path).import_tx(args.txid)
45
38
  end
46
39
 
47
- def load_config(config_path)
48
- YAML.load(File.read(config_path)).deep_symbolize_keys[:bitcoin2graphdb]
40
+ private
41
+ def get_migration(config_path)
42
+ config = YAML.load(File.read(config_path)).deep_symbolize_keys[:bitcoin2graphdb]
43
+ Bitcoin2Graphdb::Migration.new(config)
49
44
  end
50
45
  end
@@ -36,6 +36,57 @@ module Bitcoin2Graphdb
36
36
  puts "end migration for block height #{block_height}. #{Time.now}"
37
37
  end
38
38
 
39
+ def remove_block(block_height)
40
+ Neo4j::Transaction.run do |tx|
41
+ begin
42
+ block = Graphdb::Model::Block.with_height(block_height).first
43
+ if block.nil?
44
+ puts "block height #{block_height} does not exist."
45
+ else
46
+ block.destroy
47
+ puts "block height #{block_height} is deleted."
48
+ end
49
+ rescue => e
50
+ puts e.message
51
+ tx.failure
52
+ end
53
+ end
54
+ end
55
+
56
+ def import_tx(txid)
57
+ Neo4j::Transaction.run do |tx|
58
+ begin
59
+ tx = Graphdb::Model::Transaction.with_txid(txid).first
60
+ if tx.nil?
61
+ Graphdb::Model::Transaction.create_from_txid(txid)
62
+ puts "import #{txid} tx."
63
+ else
64
+ puts "txid #{txid} is already exist."
65
+ end
66
+ rescue => e
67
+ puts e.message
68
+ tx.failure
69
+ end
70
+ end
71
+ end
72
+
73
+ def remove_tx(txid)
74
+ Neo4j::Transaction.run do |tx|
75
+ begin
76
+ tx = Graphdb::Model::Transaction.with_txid(txid).first
77
+ if tx.nil?
78
+ puts "txid #{txid} does not exist."
79
+ else
80
+ tx.destroy
81
+ puts "tixd #{txid} is deleted."
82
+ end
83
+ rescue => e
84
+ puts e.message
85
+ tx.failure
86
+ end
87
+ end
88
+ end
89
+
39
90
  private
40
91
  def current_block_height
41
92
  return @block_height if @block_height
@@ -1,3 +1,3 @@
1
1
  module Bitcoin2Graphdb
2
- VERSION = "0.1.6"
2
+ VERSION = "0.1.7"
3
3
  end
@@ -3,6 +3,7 @@ module Graphdb
3
3
 
4
4
  class AssetId < ActiveNodeBase
5
5
  property :asset_id, index: :exact, constraint: :unique
6
+ has_many :in, :outputs, origin: :asset_id, model_class: TxOut
6
7
 
7
8
  validates :asset_id, :presence => true
8
9
 
@@ -17,6 +18,12 @@ module Graphdb
17
18
  end
18
19
  a
19
20
  end
21
+
22
+ # Get issuance transactions
23
+ def issuance_txs
24
+ outputs.select{|o|o.oa_output_type == 'issuance'}.map{|o|o.transaction}.sort{|a,b| b.block_time <=> a.block_time}
25
+ end
26
+
20
27
  end
21
28
  end
22
29
  end
@@ -23,6 +23,14 @@ module Graphdb
23
23
 
24
24
  end
25
25
 
26
+ # Check this tx contains open assets transaction
27
+ def openassets_tx?
28
+ outputs.each do |o|
29
+ return true unless o.asset_id.nil?
30
+ end
31
+ false
32
+ end
33
+
26
34
  end
27
35
 
28
36
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bitcoin2graphdb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.6
4
+ version: 0.1.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - azuchi
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-04-06 00:00:00.000000000 Z
11
+ date: 2016-04-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: openassets-ruby