block_io 2.0.0 → 3.0.0

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.
Files changed (113) hide show
  1. checksums.yaml +4 -4
  2. data/{.appveyor.yml → .appveyor.yml-disabled} +2 -2
  3. data/.gitignore +1 -0
  4. data/.travis.yml +1 -1
  5. data/LICENSE +1 -1
  6. data/README.md +14 -13
  7. data/block_io.gemspec +6 -6
  8. data/examples/basic.rb +29 -5
  9. data/examples/dtrust.rb +43 -24
  10. data/examples/sweeper.rb +21 -16
  11. data/lib/block_io.rb +3 -2
  12. data/lib/block_io/api_exception.rb +11 -0
  13. data/lib/block_io/chainparams/BTC.yml +8 -0
  14. data/lib/block_io/chainparams/BTCTEST.yml +8 -0
  15. data/lib/block_io/chainparams/DOGE.yml +8 -0
  16. data/lib/block_io/chainparams/DOGETEST.yml +8 -0
  17. data/lib/block_io/chainparams/LTC.yml +8 -0
  18. data/lib/block_io/chainparams/LTCTEST.yml +8 -0
  19. data/lib/block_io/client.rb +143 -79
  20. data/lib/block_io/extended_bitcoinrb.rb +127 -0
  21. data/lib/block_io/helper.rb +137 -39
  22. data/lib/block_io/key.rb +11 -124
  23. data/lib/block_io/version.rb +1 -1
  24. data/spec/client_misc_spec.rb +76 -0
  25. data/spec/client_spec.rb +23 -178
  26. data/spec/dtrust_spec.rb +167 -0
  27. data/spec/helper_spec.rb +1 -1
  28. data/spec/key_spec.rb +50 -19
  29. data/spec/larger_transaction_spec.rb +351 -0
  30. data/spec/sweep_spec.rb +115 -0
  31. data/spec/test-cases/.gitignore +2 -0
  32. data/spec/test-cases/LICENSE +21 -0
  33. data/spec/test-cases/README.md +2 -0
  34. data/spec/test-cases/json/create_and_sign_transaction_response.json +61 -0
  35. data/spec/test-cases/json/create_and_sign_transaction_response_P2WSH-over-P2SH_1of2_251inputs.json +1261 -0
  36. data/spec/test-cases/json/create_and_sign_transaction_response_P2WSH-over-P2SH_1of2_252inputs.json +1266 -0
  37. data/spec/test-cases/json/create_and_sign_transaction_response_P2WSH-over-P2SH_1of2_253inputs.json +1271 -0
  38. data/spec/test-cases/json/create_and_sign_transaction_response_P2WSH-over-P2SH_1of2_762inputs.json +3816 -0
  39. data/spec/test-cases/json/create_and_sign_transaction_response_dtrust_P2SH_3of5_195inputs.json +2931 -0
  40. data/spec/test-cases/json/create_and_sign_transaction_response_dtrust_P2SH_4of5_195inputs.json +5 -0
  41. data/spec/test-cases/json/create_and_sign_transaction_response_dtrust_P2WSH-over-P2SH_3of5_251inputs.json +3771 -0
  42. data/spec/test-cases/json/create_and_sign_transaction_response_dtrust_P2WSH-over-P2SH_3of5_252inputs.json +3786 -0
  43. data/spec/test-cases/json/create_and_sign_transaction_response_dtrust_P2WSH-over-P2SH_3of5_253inputs.json +3801 -0
  44. data/spec/test-cases/json/create_and_sign_transaction_response_dtrust_P2WSH-over-P2SH_4of5_251inputs.json +5 -0
  45. data/spec/test-cases/json/create_and_sign_transaction_response_dtrust_P2WSH-over-P2SH_4of5_252inputs.json +5 -0
  46. data/spec/test-cases/json/create_and_sign_transaction_response_dtrust_P2WSH-over-P2SH_4of5_253inputs.json +5 -0
  47. data/spec/test-cases/json/create_and_sign_transaction_response_dtrust_WITNESS_V0_3of5_251inputs.json +3771 -0
  48. data/spec/test-cases/json/create_and_sign_transaction_response_dtrust_WITNESS_V0_3of5_252inputs.json +3786 -0
  49. data/spec/test-cases/json/create_and_sign_transaction_response_dtrust_WITNESS_V0_3of5_253inputs.json +3801 -0
  50. data/spec/test-cases/json/create_and_sign_transaction_response_dtrust_WITNESS_V0_4of5_251inputs.json +5 -0
  51. data/spec/test-cases/json/create_and_sign_transaction_response_dtrust_WITNESS_V0_4of5_252inputs.json +5 -0
  52. data/spec/test-cases/json/create_and_sign_transaction_response_dtrust_WITNESS_V0_4of5_253inputs.json +5 -0
  53. data/spec/test-cases/json/create_and_sign_transaction_response_dtrust_p2sh_3_of_5_keys.json +21 -0
  54. data/spec/test-cases/json/create_and_sign_transaction_response_dtrust_p2sh_4_of_5_keys.json +5 -0
  55. data/spec/test-cases/json/create_and_sign_transaction_response_dtrust_p2wsh_over_p2sh_3_of_5_keys.json +21 -0
  56. data/spec/test-cases/json/create_and_sign_transaction_response_dtrust_p2wsh_over_p2sh_4_of_5_keys.json +5 -0
  57. data/spec/test-cases/json/create_and_sign_transaction_response_dtrust_witness_v0_3_of_5_keys.json +36 -0
  58. data/spec/test-cases/json/create_and_sign_transaction_response_dtrust_witness_v0_3of5_251outputs.json +591 -0
  59. data/spec/test-cases/json/create_and_sign_transaction_response_dtrust_witness_v0_3of5_252outputs.json +576 -0
  60. data/spec/test-cases/json/create_and_sign_transaction_response_dtrust_witness_v0_3of5_253outputs.json +531 -0
  61. data/spec/test-cases/json/create_and_sign_transaction_response_dtrust_witness_v0_4_of_5_keys.json +5 -0
  62. data/spec/test-cases/json/create_and_sign_transaction_response_dtrust_witness_v0_4of5_251outputs.json +5 -0
  63. data/spec/test-cases/json/create_and_sign_transaction_response_dtrust_witness_v0_4of5_252outputs.json +5 -0
  64. data/spec/test-cases/json/create_and_sign_transaction_response_dtrust_witness_v0_4of5_253outputs.json +5 -0
  65. data/spec/test-cases/json/create_and_sign_transaction_response_sweep_p2pkh.json +5 -0
  66. data/spec/test-cases/json/create_and_sign_transaction_response_sweep_p2wpkh.json +5 -0
  67. data/spec/test-cases/json/create_and_sign_transaction_response_sweep_p2wpkh_over_p2sh.json +5 -0
  68. data/spec/test-cases/json/create_and_sign_transaction_response_with_blockio_fee_and_expected_unsigned_txid.json +21 -0
  69. data/spec/test-cases/json/get_balance_response.json +8 -0
  70. data/spec/test-cases/json/prepare_dtrust_transaction_response_P2SH_3of5_195inputs.json +1397 -0
  71. data/spec/test-cases/json/prepare_dtrust_transaction_response_P2SH_4of5_195inputs.json +1397 -0
  72. data/spec/test-cases/json/prepare_dtrust_transaction_response_P2WSH-over-P2SH_3of5_251inputs.json +1795 -0
  73. data/spec/test-cases/json/prepare_dtrust_transaction_response_P2WSH-over-P2SH_3of5_252inputs.json +1802 -0
  74. data/spec/test-cases/json/prepare_dtrust_transaction_response_P2WSH-over-P2SH_3of5_253inputs.json +1809 -0
  75. data/spec/test-cases/json/prepare_dtrust_transaction_response_P2WSH-over-P2SH_4of5_251inputs.json +1789 -0
  76. data/spec/test-cases/json/prepare_dtrust_transaction_response_P2WSH-over-P2SH_4of5_252inputs.json +1802 -0
  77. data/spec/test-cases/json/prepare_dtrust_transaction_response_P2WSH-over-P2SH_4of5_253inputs.json +1809 -0
  78. data/spec/test-cases/json/prepare_dtrust_transaction_response_WITNESS_V0_3of5_251inputs.json +1795 -0
  79. data/spec/test-cases/json/prepare_dtrust_transaction_response_WITNESS_V0_3of5_252inputs.json +1802 -0
  80. data/spec/test-cases/json/prepare_dtrust_transaction_response_WITNESS_V0_3of5_253inputs.json +1809 -0
  81. data/spec/test-cases/json/prepare_dtrust_transaction_response_WITNESS_V0_4of5_251inputs.json +1795 -0
  82. data/spec/test-cases/json/prepare_dtrust_transaction_response_WITNESS_V0_4of5_252inputs.json +1802 -0
  83. data/spec/test-cases/json/prepare_dtrust_transaction_response_WITNESS_V0_4of5_253inputs.json +1809 -0
  84. data/spec/test-cases/json/prepare_dtrust_transaction_response_p2sh.json +45 -0
  85. data/spec/test-cases/json/prepare_dtrust_transaction_response_p2wsh_over_p2sh.json +45 -0
  86. data/spec/test-cases/json/prepare_dtrust_transaction_response_witness_v0.json +52 -0
  87. data/spec/test-cases/json/prepare_dtrust_transaction_response_witness_v0_3of5_251outputs.json +1805 -0
  88. data/spec/test-cases/json/prepare_dtrust_transaction_response_witness_v0_3of5_252outputs.json +1804 -0
  89. data/spec/test-cases/json/prepare_dtrust_transaction_response_witness_v0_3of5_253outputs.json +1789 -0
  90. data/spec/test-cases/json/prepare_dtrust_transaction_response_witness_v0_4of5_251outputs.json +1805 -0
  91. data/spec/test-cases/json/prepare_dtrust_transaction_response_witness_v0_4of5_252outputs.json +1804 -0
  92. data/spec/test-cases/json/prepare_dtrust_transaction_response_witness_v0_4of5_253outputs.json +1789 -0
  93. data/spec/test-cases/json/prepare_sweep_transaction_response_p2pkh.json +35 -0
  94. data/spec/test-cases/json/prepare_sweep_transaction_response_p2wpkh.json +35 -0
  95. data/spec/test-cases/json/prepare_sweep_transaction_response_p2wpkh_over_p2sh.json +35 -0
  96. data/spec/test-cases/json/prepare_transaction_response.json +164 -0
  97. data/spec/test-cases/json/prepare_transaction_response_P2WSH-over-P2SH_1of2_251inputs.json +1796 -0
  98. data/spec/test-cases/json/prepare_transaction_response_P2WSH-over-P2SH_1of2_252inputs.json +1803 -0
  99. data/spec/test-cases/json/prepare_transaction_response_P2WSH-over-P2SH_1of2_253inputs.json +1810 -0
  100. data/spec/test-cases/json/prepare_transaction_response_P2WSH-over-P2SH_1of2_762inputs.json +5367 -0
  101. data/spec/test-cases/json/prepare_transaction_response_with_blockio_fee_and_expected_unsigned_txid.json +76 -0
  102. data/spec/test-cases/json/summarize_prepared_transaction_response_with_blockio_fee_and_expected_unsigned_txid.json +6 -0
  103. metadata +187 -45
  104. data/examples/max_withdrawal.rb +0 -29
  105. data/lib/block_io/constants.rb +0 -10
  106. data/spec/data/sign_and_finalize_dtrust_withdrawal_request.json +0 -1
  107. data/spec/data/sign_and_finalize_sweep_request.json +0 -1
  108. data/spec/data/sign_and_finalize_withdrawal_request.json +0 -4
  109. data/spec/data/sweep_from_address_response.json +0 -1
  110. data/spec/data/withdraw_from_dtrust_address_response.json +0 -1
  111. data/spec/data/withdraw_response.json +0 -1227
  112. data/spec/rfc6979_spec.rb +0 -59
  113. data/spec/withdraw_spec.rb +0 -90
@@ -0,0 +1,76 @@
1
+ {
2
+ "status": "success",
3
+ "data": {
4
+ "network": "LTCTEST",
5
+ "tx_type": "basic",
6
+ "inputs": [
7
+ {
8
+ "input_index": 0,
9
+ "previous_txid": "5d5d9a902f572449786ce65a586481dfa646f66f8500cadbed811eaf82370630",
10
+ "previous_output_index": 0,
11
+ "input_value": "0.00249485",
12
+ "spending_address": "Qjgm6PfqcCmQr31DKnnch7zwG7sFpVc7xb"
13
+ },
14
+ {
15
+ "input_index": 1,
16
+ "previous_txid": "adc348dcfed62799718e375d9097fa71d2a321c9137c4a52067a13181203ead4",
17
+ "previous_output_index": 0,
18
+ "input_value": "0.00090000",
19
+ "spending_address": "QN7WkTwGmTxEnK4EpzsspPofsKPXvjLKxC"
20
+ },
21
+ {
22
+ "input_index": 2,
23
+ "previous_txid": "9ffa4dceac8b09fb099fb0ebcc5d0bcb132c98b3e8a2b1381d8d9654f82a5cf0",
24
+ "previous_output_index": 1,
25
+ "input_value": "0.17464160",
26
+ "spending_address": "QN7WkTwGmTxEnK4EpzsspPofsKPXvjLKxC"
27
+ }
28
+ ],
29
+ "outputs": [
30
+ {
31
+ "output_index": 0,
32
+ "output_category": "user-specified",
33
+ "output_value": "0.01234500",
34
+ "receiving_address": "QN9ShoLwKTnW7ms7bfSrH7YgMPh2cjUkdi"
35
+ },
36
+ {
37
+ "output_index": 1,
38
+ "output_category": "blockio-fee",
39
+ "output_value": "0.00012345",
40
+ "receiving_address": "tltc1qyhn4wkpzt0e8qm7a9kk8v0cpxn775wlqfgl32s20n00p3q5q7uksc4xqfe"
41
+ },
42
+ {
43
+ "output_index": 2,
44
+ "output_category": "change",
45
+ "output_value": "0.16546580",
46
+ "receiving_address": "QN7WkTwGmTxEnK4EpzsspPofsKPXvjLKxC"
47
+ }
48
+ ],
49
+ "input_address_data": [
50
+ {
51
+ "required_signatures": 2,
52
+ "public_keys": [
53
+ "0325e036e22b3ee1593baba8052e92505a11446a1ba3e8bc3f9f74b17f2e6b6a3e",
54
+ "034309721935937713a2dd1c33c5c44a10a30674bebe0542aeb145ce4c9790e742"
55
+ ],
56
+ "address": "Qjgm6PfqcCmQr31DKnnch7zwG7sFpVc7xb",
57
+ "address_type": "P2WSH-over-P2SH"
58
+ },
59
+ {
60
+ "required_signatures": 2,
61
+ "public_keys": [
62
+ "03b934de0933b8b80051530d353f5fb22ec7e5d6233d8b6bf2ddcaf7119e2f4fe7",
63
+ "034309721935937713a2dd1c33c5c44a10a30674bebe0542aeb145ce4c9790e742"
64
+ ],
65
+ "address": "QN7WkTwGmTxEnK4EpzsspPofsKPXvjLKxC",
66
+ "address_type": "P2WSH-over-P2SH"
67
+ }
68
+ ],
69
+ "user_key": {
70
+ "public_key": "034309721935937713a2dd1c33c5c44a10a30674bebe0542aeb145ce4c9790e742",
71
+ "encrypted_passphrase": "UMT6oOUQf/hRNCdiSc3HAHRdn95G9iSxvU5pqTCveqaQxpVShoyCBfgDOfzbgrk3Cw4oNY0sBStoWqCc4ha4kFXBblt/6DzxV7YBD2lDkjGYdrYISrGG+kAHEbLxcVwHL/6Feep9ve3NgvCSEV0MTrm2HBNfX1ke/+XBoYhn7ZX9QioLnUJW5ZH1OkSdM849"
72
+ },
73
+ "estimated_tx_size": 511,
74
+ "expected_unsigned_txid": "4ee43869f50d226686a0ad0949e4adeb02f4d93bb7ea2efda62dfc36f2a1b0b7"
75
+ }
76
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "network": "LTCTEST",
3
+ "network_fee": "0.00010220",
4
+ "blockio_fee": "0.00012345",
5
+ "total_amount_to_send": "0.01234500"
6
+ }
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: block_io
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0
4
+ version: 3.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Atif Nazir
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-07-02 00:00:00.000000000 Z
11
+ date: 2021-05-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -36,20 +36,20 @@ dependencies:
36
36
  requirements:
37
37
  - - "~>"
38
38
  - !ruby/object:Gem::Version
39
- version: '12.3'
39
+ version: '13.0'
40
40
  - - ">="
41
41
  - !ruby/object:Gem::Version
42
- version: 12.3.3
42
+ version: '13.0'
43
43
  type: :development
44
44
  prerelease: false
45
45
  version_requirements: !ruby/object:Gem::Requirement
46
46
  requirements:
47
47
  - - "~>"
48
48
  - !ruby/object:Gem::Version
49
- version: '12.3'
49
+ version: '13.0'
50
50
  - - ">="
51
51
  - !ruby/object:Gem::Version
52
- version: 12.3.3
52
+ version: '13.0'
53
53
  - !ruby/object:Gem::Dependency
54
54
  name: rspec
55
55
  requirement: !ruby/object:Gem::Requirement
@@ -76,7 +76,7 @@ dependencies:
76
76
  requirements:
77
77
  - - "~>"
78
78
  - !ruby/object:Gem::Version
79
- version: '3.8'
79
+ version: '3.12'
80
80
  - - "<"
81
81
  - !ruby/object:Gem::Version
82
82
  version: '4.0'
@@ -86,30 +86,30 @@ dependencies:
86
86
  requirements:
87
87
  - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: '3.8'
89
+ version: '3.12'
90
90
  - - "<"
91
91
  - !ruby/object:Gem::Version
92
92
  version: '4.0'
93
93
  - !ruby/object:Gem::Dependency
94
- name: ecdsa
94
+ name: bitcoinrb
95
95
  requirement: !ruby/object:Gem::Requirement
96
96
  requirements:
97
97
  - - "~>"
98
98
  - !ruby/object:Gem::Version
99
- version: 1.2.0
100
- - - ">="
99
+ version: 0.7.0
100
+ - - '='
101
101
  - !ruby/object:Gem::Version
102
- version: 1.2.0
102
+ version: 0.7.0
103
103
  type: :runtime
104
104
  prerelease: false
105
105
  version_requirements: !ruby/object:Gem::Requirement
106
106
  requirements:
107
107
  - - "~>"
108
108
  - !ruby/object:Gem::Version
109
- version: 1.2.0
110
- - - ">="
109
+ version: 0.7.0
110
+ - - '='
111
111
  - !ruby/object:Gem::Version
112
- version: 1.2.0
112
+ version: 0.7.0
113
113
  - !ruby/object:Gem::Dependency
114
114
  name: http
115
115
  requirement: !ruby/object:Gem::Requirement
@@ -136,27 +136,27 @@ dependencies:
136
136
  requirements:
137
137
  - - "~>"
138
138
  - !ruby/object:Gem::Version
139
- version: 3.10.6
139
+ version: '3.11'
140
140
  - - ">="
141
141
  - !ruby/object:Gem::Version
142
- version: '3.10'
142
+ version: '3.11'
143
143
  type: :runtime
144
144
  prerelease: false
145
145
  version_requirements: !ruby/object:Gem::Requirement
146
146
  requirements:
147
147
  - - "~>"
148
148
  - !ruby/object:Gem::Version
149
- version: 3.10.6
149
+ version: '3.11'
150
150
  - - ">="
151
151
  - !ruby/object:Gem::Version
152
- version: '3.10'
152
+ version: '3.11'
153
153
  - !ruby/object:Gem::Dependency
154
154
  name: connection_pool
155
155
  requirement: !ruby/object:Gem::Requirement
156
156
  requirements:
157
157
  - - "~>"
158
158
  - !ruby/object:Gem::Version
159
- version: 2.2.3
159
+ version: 2.2.5
160
160
  - - ">="
161
161
  - !ruby/object:Gem::Version
162
162
  version: '2.2'
@@ -166,7 +166,7 @@ dependencies:
166
166
  requirements:
167
167
  - - "~>"
168
168
  - !ruby/object:Gem::Version
169
- version: 2.2.3
169
+ version: 2.2.5
170
170
  - - ">="
171
171
  - !ruby/object:Gem::Version
172
172
  version: '2.2'
@@ -179,7 +179,7 @@ executables: []
179
179
  extensions: []
180
180
  extra_rdoc_files: []
181
181
  files:
182
- - ".appveyor.yml"
182
+ - ".appveyor.yml-disabled"
183
183
  - ".gitignore"
184
184
  - ".rspec"
185
185
  - ".travis.yml"
@@ -190,32 +190,106 @@ files:
190
190
  - block_io.gemspec
191
191
  - examples/basic.rb
192
192
  - examples/dtrust.rb
193
- - examples/max_withdrawal.rb
194
193
  - examples/proxy.rb
195
194
  - examples/sweeper.rb
196
195
  - lib/block_io.rb
196
+ - lib/block_io/api_exception.rb
197
+ - lib/block_io/chainparams/BTC.yml
198
+ - lib/block_io/chainparams/BTCTEST.yml
199
+ - lib/block_io/chainparams/DOGE.yml
200
+ - lib/block_io/chainparams/DOGETEST.yml
201
+ - lib/block_io/chainparams/LTC.yml
202
+ - lib/block_io/chainparams/LTCTEST.yml
197
203
  - lib/block_io/client.rb
198
- - lib/block_io/constants.rb
204
+ - lib/block_io/extended_bitcoinrb.rb
199
205
  - lib/block_io/helper.rb
200
206
  - lib/block_io/key.rb
201
207
  - lib/block_io/version.rb
208
+ - spec/client_misc_spec.rb
202
209
  - spec/client_spec.rb
203
- - spec/data/sign_and_finalize_dtrust_withdrawal_request.json
204
- - spec/data/sign_and_finalize_sweep_request.json
205
- - spec/data/sign_and_finalize_withdrawal_request.json
206
- - spec/data/sweep_from_address_response.json
207
- - spec/data/withdraw_from_dtrust_address_response.json
208
- - spec/data/withdraw_response.json
210
+ - spec/dtrust_spec.rb
209
211
  - spec/helper_spec.rb
210
212
  - spec/key_spec.rb
211
- - spec/rfc6979_spec.rb
213
+ - spec/larger_transaction_spec.rb
212
214
  - spec/spec_helper.rb
213
- - spec/withdraw_spec.rb
215
+ - spec/sweep_spec.rb
216
+ - spec/test-cases/.gitignore
217
+ - spec/test-cases/LICENSE
218
+ - spec/test-cases/README.md
219
+ - spec/test-cases/json/create_and_sign_transaction_response.json
220
+ - spec/test-cases/json/create_and_sign_transaction_response_P2WSH-over-P2SH_1of2_251inputs.json
221
+ - spec/test-cases/json/create_and_sign_transaction_response_P2WSH-over-P2SH_1of2_252inputs.json
222
+ - spec/test-cases/json/create_and_sign_transaction_response_P2WSH-over-P2SH_1of2_253inputs.json
223
+ - spec/test-cases/json/create_and_sign_transaction_response_P2WSH-over-P2SH_1of2_762inputs.json
224
+ - spec/test-cases/json/create_and_sign_transaction_response_dtrust_P2SH_3of5_195inputs.json
225
+ - spec/test-cases/json/create_and_sign_transaction_response_dtrust_P2SH_4of5_195inputs.json
226
+ - spec/test-cases/json/create_and_sign_transaction_response_dtrust_P2WSH-over-P2SH_3of5_251inputs.json
227
+ - spec/test-cases/json/create_and_sign_transaction_response_dtrust_P2WSH-over-P2SH_3of5_252inputs.json
228
+ - spec/test-cases/json/create_and_sign_transaction_response_dtrust_P2WSH-over-P2SH_3of5_253inputs.json
229
+ - spec/test-cases/json/create_and_sign_transaction_response_dtrust_P2WSH-over-P2SH_4of5_251inputs.json
230
+ - spec/test-cases/json/create_and_sign_transaction_response_dtrust_P2WSH-over-P2SH_4of5_252inputs.json
231
+ - spec/test-cases/json/create_and_sign_transaction_response_dtrust_P2WSH-over-P2SH_4of5_253inputs.json
232
+ - spec/test-cases/json/create_and_sign_transaction_response_dtrust_WITNESS_V0_3of5_251inputs.json
233
+ - spec/test-cases/json/create_and_sign_transaction_response_dtrust_WITNESS_V0_3of5_252inputs.json
234
+ - spec/test-cases/json/create_and_sign_transaction_response_dtrust_WITNESS_V0_3of5_253inputs.json
235
+ - spec/test-cases/json/create_and_sign_transaction_response_dtrust_WITNESS_V0_4of5_251inputs.json
236
+ - spec/test-cases/json/create_and_sign_transaction_response_dtrust_WITNESS_V0_4of5_252inputs.json
237
+ - spec/test-cases/json/create_and_sign_transaction_response_dtrust_WITNESS_V0_4of5_253inputs.json
238
+ - spec/test-cases/json/create_and_sign_transaction_response_dtrust_p2sh_3_of_5_keys.json
239
+ - spec/test-cases/json/create_and_sign_transaction_response_dtrust_p2sh_4_of_5_keys.json
240
+ - spec/test-cases/json/create_and_sign_transaction_response_dtrust_p2wsh_over_p2sh_3_of_5_keys.json
241
+ - spec/test-cases/json/create_and_sign_transaction_response_dtrust_p2wsh_over_p2sh_4_of_5_keys.json
242
+ - spec/test-cases/json/create_and_sign_transaction_response_dtrust_witness_v0_3_of_5_keys.json
243
+ - spec/test-cases/json/create_and_sign_transaction_response_dtrust_witness_v0_3of5_251outputs.json
244
+ - spec/test-cases/json/create_and_sign_transaction_response_dtrust_witness_v0_3of5_252outputs.json
245
+ - spec/test-cases/json/create_and_sign_transaction_response_dtrust_witness_v0_3of5_253outputs.json
246
+ - spec/test-cases/json/create_and_sign_transaction_response_dtrust_witness_v0_4_of_5_keys.json
247
+ - spec/test-cases/json/create_and_sign_transaction_response_dtrust_witness_v0_4of5_251outputs.json
248
+ - spec/test-cases/json/create_and_sign_transaction_response_dtrust_witness_v0_4of5_252outputs.json
249
+ - spec/test-cases/json/create_and_sign_transaction_response_dtrust_witness_v0_4of5_253outputs.json
250
+ - spec/test-cases/json/create_and_sign_transaction_response_sweep_p2pkh.json
251
+ - spec/test-cases/json/create_and_sign_transaction_response_sweep_p2wpkh.json
252
+ - spec/test-cases/json/create_and_sign_transaction_response_sweep_p2wpkh_over_p2sh.json
253
+ - spec/test-cases/json/create_and_sign_transaction_response_with_blockio_fee_and_expected_unsigned_txid.json
254
+ - spec/test-cases/json/get_balance_response.json
255
+ - spec/test-cases/json/prepare_dtrust_transaction_response_P2SH_3of5_195inputs.json
256
+ - spec/test-cases/json/prepare_dtrust_transaction_response_P2SH_4of5_195inputs.json
257
+ - spec/test-cases/json/prepare_dtrust_transaction_response_P2WSH-over-P2SH_3of5_251inputs.json
258
+ - spec/test-cases/json/prepare_dtrust_transaction_response_P2WSH-over-P2SH_3of5_252inputs.json
259
+ - spec/test-cases/json/prepare_dtrust_transaction_response_P2WSH-over-P2SH_3of5_253inputs.json
260
+ - spec/test-cases/json/prepare_dtrust_transaction_response_P2WSH-over-P2SH_4of5_251inputs.json
261
+ - spec/test-cases/json/prepare_dtrust_transaction_response_P2WSH-over-P2SH_4of5_252inputs.json
262
+ - spec/test-cases/json/prepare_dtrust_transaction_response_P2WSH-over-P2SH_4of5_253inputs.json
263
+ - spec/test-cases/json/prepare_dtrust_transaction_response_WITNESS_V0_3of5_251inputs.json
264
+ - spec/test-cases/json/prepare_dtrust_transaction_response_WITNESS_V0_3of5_252inputs.json
265
+ - spec/test-cases/json/prepare_dtrust_transaction_response_WITNESS_V0_3of5_253inputs.json
266
+ - spec/test-cases/json/prepare_dtrust_transaction_response_WITNESS_V0_4of5_251inputs.json
267
+ - spec/test-cases/json/prepare_dtrust_transaction_response_WITNESS_V0_4of5_252inputs.json
268
+ - spec/test-cases/json/prepare_dtrust_transaction_response_WITNESS_V0_4of5_253inputs.json
269
+ - spec/test-cases/json/prepare_dtrust_transaction_response_p2sh.json
270
+ - spec/test-cases/json/prepare_dtrust_transaction_response_p2wsh_over_p2sh.json
271
+ - spec/test-cases/json/prepare_dtrust_transaction_response_witness_v0.json
272
+ - spec/test-cases/json/prepare_dtrust_transaction_response_witness_v0_3of5_251outputs.json
273
+ - spec/test-cases/json/prepare_dtrust_transaction_response_witness_v0_3of5_252outputs.json
274
+ - spec/test-cases/json/prepare_dtrust_transaction_response_witness_v0_3of5_253outputs.json
275
+ - spec/test-cases/json/prepare_dtrust_transaction_response_witness_v0_4of5_251outputs.json
276
+ - spec/test-cases/json/prepare_dtrust_transaction_response_witness_v0_4of5_252outputs.json
277
+ - spec/test-cases/json/prepare_dtrust_transaction_response_witness_v0_4of5_253outputs.json
278
+ - spec/test-cases/json/prepare_sweep_transaction_response_p2pkh.json
279
+ - spec/test-cases/json/prepare_sweep_transaction_response_p2wpkh.json
280
+ - spec/test-cases/json/prepare_sweep_transaction_response_p2wpkh_over_p2sh.json
281
+ - spec/test-cases/json/prepare_transaction_response.json
282
+ - spec/test-cases/json/prepare_transaction_response_P2WSH-over-P2SH_1of2_251inputs.json
283
+ - spec/test-cases/json/prepare_transaction_response_P2WSH-over-P2SH_1of2_252inputs.json
284
+ - spec/test-cases/json/prepare_transaction_response_P2WSH-over-P2SH_1of2_253inputs.json
285
+ - spec/test-cases/json/prepare_transaction_response_P2WSH-over-P2SH_1of2_762inputs.json
286
+ - spec/test-cases/json/prepare_transaction_response_with_blockio_fee_and_expected_unsigned_txid.json
287
+ - spec/test-cases/json/summarize_prepared_transaction_response_with_blockio_fee_and_expected_unsigned_txid.json
214
288
  homepage: https://block.io/api/simple/ruby
215
289
  licenses:
216
290
  - MIT
217
291
  metadata: {}
218
- post_install_message:
292
+ post_install_message:
219
293
  rdoc_options: []
220
294
  require_paths:
221
295
  - lib
@@ -223,28 +297,96 @@ required_ruby_version: !ruby/object:Gem::Requirement
223
297
  requirements:
224
298
  - - ">="
225
299
  - !ruby/object:Gem::Version
226
- version: 2.3.0
300
+ version: 2.4.0
227
301
  required_rubygems_version: !ruby/object:Gem::Requirement
228
302
  requirements:
229
303
  - - ">="
230
304
  - !ruby/object:Gem::Version
231
305
  version: '0'
232
306
  requirements: []
233
- rubygems_version: 3.1.2
234
- signing_key:
307
+ rubygems_version: 3.2.15
308
+ signing_key:
235
309
  specification_version: 4
236
310
  summary: An easy to use Dogecoin, Bitcoin, Litecoin wallet API by Block.io. Sign up
237
311
  required at Block.io.
238
312
  test_files:
313
+ - spec/client_misc_spec.rb
239
314
  - spec/client_spec.rb
240
- - spec/data/sign_and_finalize_dtrust_withdrawal_request.json
241
- - spec/data/sign_and_finalize_sweep_request.json
242
- - spec/data/sign_and_finalize_withdrawal_request.json
243
- - spec/data/sweep_from_address_response.json
244
- - spec/data/withdraw_from_dtrust_address_response.json
245
- - spec/data/withdraw_response.json
315
+ - spec/dtrust_spec.rb
246
316
  - spec/helper_spec.rb
247
317
  - spec/key_spec.rb
248
- - spec/rfc6979_spec.rb
318
+ - spec/larger_transaction_spec.rb
249
319
  - spec/spec_helper.rb
250
- - spec/withdraw_spec.rb
320
+ - spec/sweep_spec.rb
321
+ - spec/test-cases/.gitignore
322
+ - spec/test-cases/LICENSE
323
+ - spec/test-cases/README.md
324
+ - spec/test-cases/json/create_and_sign_transaction_response.json
325
+ - spec/test-cases/json/create_and_sign_transaction_response_P2WSH-over-P2SH_1of2_251inputs.json
326
+ - spec/test-cases/json/create_and_sign_transaction_response_P2WSH-over-P2SH_1of2_252inputs.json
327
+ - spec/test-cases/json/create_and_sign_transaction_response_P2WSH-over-P2SH_1of2_253inputs.json
328
+ - spec/test-cases/json/create_and_sign_transaction_response_P2WSH-over-P2SH_1of2_762inputs.json
329
+ - spec/test-cases/json/create_and_sign_transaction_response_dtrust_P2SH_3of5_195inputs.json
330
+ - spec/test-cases/json/create_and_sign_transaction_response_dtrust_P2SH_4of5_195inputs.json
331
+ - spec/test-cases/json/create_and_sign_transaction_response_dtrust_P2WSH-over-P2SH_3of5_251inputs.json
332
+ - spec/test-cases/json/create_and_sign_transaction_response_dtrust_P2WSH-over-P2SH_3of5_252inputs.json
333
+ - spec/test-cases/json/create_and_sign_transaction_response_dtrust_P2WSH-over-P2SH_3of5_253inputs.json
334
+ - spec/test-cases/json/create_and_sign_transaction_response_dtrust_P2WSH-over-P2SH_4of5_251inputs.json
335
+ - spec/test-cases/json/create_and_sign_transaction_response_dtrust_P2WSH-over-P2SH_4of5_252inputs.json
336
+ - spec/test-cases/json/create_and_sign_transaction_response_dtrust_P2WSH-over-P2SH_4of5_253inputs.json
337
+ - spec/test-cases/json/create_and_sign_transaction_response_dtrust_WITNESS_V0_3of5_251inputs.json
338
+ - spec/test-cases/json/create_and_sign_transaction_response_dtrust_WITNESS_V0_3of5_252inputs.json
339
+ - spec/test-cases/json/create_and_sign_transaction_response_dtrust_WITNESS_V0_3of5_253inputs.json
340
+ - spec/test-cases/json/create_and_sign_transaction_response_dtrust_WITNESS_V0_4of5_251inputs.json
341
+ - spec/test-cases/json/create_and_sign_transaction_response_dtrust_WITNESS_V0_4of5_252inputs.json
342
+ - spec/test-cases/json/create_and_sign_transaction_response_dtrust_WITNESS_V0_4of5_253inputs.json
343
+ - spec/test-cases/json/create_and_sign_transaction_response_dtrust_p2sh_3_of_5_keys.json
344
+ - spec/test-cases/json/create_and_sign_transaction_response_dtrust_p2sh_4_of_5_keys.json
345
+ - spec/test-cases/json/create_and_sign_transaction_response_dtrust_p2wsh_over_p2sh_3_of_5_keys.json
346
+ - spec/test-cases/json/create_and_sign_transaction_response_dtrust_p2wsh_over_p2sh_4_of_5_keys.json
347
+ - spec/test-cases/json/create_and_sign_transaction_response_dtrust_witness_v0_3_of_5_keys.json
348
+ - spec/test-cases/json/create_and_sign_transaction_response_dtrust_witness_v0_3of5_251outputs.json
349
+ - spec/test-cases/json/create_and_sign_transaction_response_dtrust_witness_v0_3of5_252outputs.json
350
+ - spec/test-cases/json/create_and_sign_transaction_response_dtrust_witness_v0_3of5_253outputs.json
351
+ - spec/test-cases/json/create_and_sign_transaction_response_dtrust_witness_v0_4_of_5_keys.json
352
+ - spec/test-cases/json/create_and_sign_transaction_response_dtrust_witness_v0_4of5_251outputs.json
353
+ - spec/test-cases/json/create_and_sign_transaction_response_dtrust_witness_v0_4of5_252outputs.json
354
+ - spec/test-cases/json/create_and_sign_transaction_response_dtrust_witness_v0_4of5_253outputs.json
355
+ - spec/test-cases/json/create_and_sign_transaction_response_sweep_p2pkh.json
356
+ - spec/test-cases/json/create_and_sign_transaction_response_sweep_p2wpkh.json
357
+ - spec/test-cases/json/create_and_sign_transaction_response_sweep_p2wpkh_over_p2sh.json
358
+ - spec/test-cases/json/create_and_sign_transaction_response_with_blockio_fee_and_expected_unsigned_txid.json
359
+ - spec/test-cases/json/get_balance_response.json
360
+ - spec/test-cases/json/prepare_dtrust_transaction_response_P2SH_3of5_195inputs.json
361
+ - spec/test-cases/json/prepare_dtrust_transaction_response_P2SH_4of5_195inputs.json
362
+ - spec/test-cases/json/prepare_dtrust_transaction_response_P2WSH-over-P2SH_3of5_251inputs.json
363
+ - spec/test-cases/json/prepare_dtrust_transaction_response_P2WSH-over-P2SH_3of5_252inputs.json
364
+ - spec/test-cases/json/prepare_dtrust_transaction_response_P2WSH-over-P2SH_3of5_253inputs.json
365
+ - spec/test-cases/json/prepare_dtrust_transaction_response_P2WSH-over-P2SH_4of5_251inputs.json
366
+ - spec/test-cases/json/prepare_dtrust_transaction_response_P2WSH-over-P2SH_4of5_252inputs.json
367
+ - spec/test-cases/json/prepare_dtrust_transaction_response_P2WSH-over-P2SH_4of5_253inputs.json
368
+ - spec/test-cases/json/prepare_dtrust_transaction_response_WITNESS_V0_3of5_251inputs.json
369
+ - spec/test-cases/json/prepare_dtrust_transaction_response_WITNESS_V0_3of5_252inputs.json
370
+ - spec/test-cases/json/prepare_dtrust_transaction_response_WITNESS_V0_3of5_253inputs.json
371
+ - spec/test-cases/json/prepare_dtrust_transaction_response_WITNESS_V0_4of5_251inputs.json
372
+ - spec/test-cases/json/prepare_dtrust_transaction_response_WITNESS_V0_4of5_252inputs.json
373
+ - spec/test-cases/json/prepare_dtrust_transaction_response_WITNESS_V0_4of5_253inputs.json
374
+ - spec/test-cases/json/prepare_dtrust_transaction_response_p2sh.json
375
+ - spec/test-cases/json/prepare_dtrust_transaction_response_p2wsh_over_p2sh.json
376
+ - spec/test-cases/json/prepare_dtrust_transaction_response_witness_v0.json
377
+ - spec/test-cases/json/prepare_dtrust_transaction_response_witness_v0_3of5_251outputs.json
378
+ - spec/test-cases/json/prepare_dtrust_transaction_response_witness_v0_3of5_252outputs.json
379
+ - spec/test-cases/json/prepare_dtrust_transaction_response_witness_v0_3of5_253outputs.json
380
+ - spec/test-cases/json/prepare_dtrust_transaction_response_witness_v0_4of5_251outputs.json
381
+ - spec/test-cases/json/prepare_dtrust_transaction_response_witness_v0_4of5_252outputs.json
382
+ - spec/test-cases/json/prepare_dtrust_transaction_response_witness_v0_4of5_253outputs.json
383
+ - spec/test-cases/json/prepare_sweep_transaction_response_p2pkh.json
384
+ - spec/test-cases/json/prepare_sweep_transaction_response_p2wpkh.json
385
+ - spec/test-cases/json/prepare_sweep_transaction_response_p2wpkh_over_p2sh.json
386
+ - spec/test-cases/json/prepare_transaction_response.json
387
+ - spec/test-cases/json/prepare_transaction_response_P2WSH-over-P2SH_1of2_251inputs.json
388
+ - spec/test-cases/json/prepare_transaction_response_P2WSH-over-P2SH_1of2_252inputs.json
389
+ - spec/test-cases/json/prepare_transaction_response_P2WSH-over-P2SH_1of2_253inputs.json
390
+ - spec/test-cases/json/prepare_transaction_response_P2WSH-over-P2SH_1of2_762inputs.json
391
+ - spec/test-cases/json/prepare_transaction_response_with_blockio_fee_and_expected_unsigned_txid.json
392
+ - spec/test-cases/json/summarize_prepared_transaction_response_with_blockio_fee_and_expected_unsigned_txid.json
@@ -1,29 +0,0 @@
1
- # withdraws maximum balance to a given destination in a single transaction
2
- # you will need to repeat this if a single transaction does not suffice for withdrawing the entire balance
3
- # for error handling, please check response['data']['status'] != 'success'
4
-
5
- require 'block_io'
6
-
7
- blockio = BlockIo::Client.new(:api_key => ENV['API_KEY'], :pin => ENV['PIN'], :version => 2)
8
- puts blockio.get_balance
9
- puts blockio.network
10
-
11
- TO_ADDRESS = ENV['TO_ADDRESS']
12
-
13
- raise "must specify a TO_ADDRESS" unless TO_ADDRESS.to_s.size > 0
14
-
15
- total_balance = blockio.get_balance['data']['available_balance']
16
-
17
- puts " -- total balance: #{total_balance} #{blockio.network}"
18
-
19
- while true do
20
- response = blockio.withdraw(:to_address => TO_ADDRESS, :amount => total_balance)
21
- maximum_withdrawable_balance = response['data']['max_withdrawal_available']
22
- break if BigDecimal(maximum_withdrawable_balance).zero?
23
- puts blockio.withdraw(:to_address => TO_ADDRESS, :amount => maximum_withdrawable_balance)
24
- end
25
-
26
- final_balance = blockio.get_balance['data']['available_balance']
27
-
28
- puts " -- final balance: #{final_balance} #{blockio.network}"
29
-