minter 0.2.0 → 1.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (61) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +208 -278
  3. data/lib/ffi/{transaction → sign}/compile.rb +5 -3
  4. data/lib/ffi/sign/go.mod +5 -0
  5. data/lib/ffi/sign/go.sum +520 -0
  6. data/lib/ffi/sign/sign-darwin-10.6-amd64.dylib +0 -0
  7. data/lib/ffi/sign/sign-darwin-10.6-amd64.h +78 -0
  8. data/lib/ffi/sign/sign-linux-amd64.h +78 -0
  9. data/lib/ffi/sign/sign-linux-amd64.so +0 -0
  10. data/lib/ffi/sign/sign.go +84 -0
  11. data/lib/ffi/sign/sign_ffi.rb +12 -0
  12. data/lib/ffi/tx_hash/compile.rb +16 -0
  13. data/lib/ffi/tx_hash/go.mod +5 -0
  14. data/lib/ffi/tx_hash/go.sum +525 -0
  15. data/lib/ffi/tx_hash/tx-hash-darwin-10.6-amd64.dylib +0 -0
  16. data/lib/ffi/tx_hash/tx-hash-darwin-10.6-amd64.h +100 -0
  17. data/lib/ffi/tx_hash/tx-hash-linux-amd64.h +100 -0
  18. data/lib/ffi/tx_hash/tx-hash-linux-amd64.so +0 -0
  19. data/lib/ffi/tx_hash/tx_hash.go +618 -0
  20. data/lib/ffi/tx_hash/tx_hash_ffi.rb +25 -0
  21. data/lib/ffi/wallet/compile.rb +5 -3
  22. data/lib/ffi/wallet/go.mod +5 -0
  23. data/lib/ffi/wallet/go.sum +525 -0
  24. data/lib/ffi/wallet/wallet-darwin-10.6-amd64.dylib +0 -0
  25. data/lib/ffi/wallet/wallet-darwin-10.6-amd64.h +86 -0
  26. data/lib/ffi/wallet/wallet-linux-amd64.h +86 -0
  27. data/lib/ffi/wallet/wallet-linux-amd64.so +0 -0
  28. data/lib/ffi/wallet/wallet.go +50 -0
  29. data/lib/ffi/wallet/wallet_ffi.rb +1 -1
  30. data/lib/minter.rb +2 -1
  31. data/lib/minter/api/client.rb +4 -1
  32. data/lib/minter/api/connection.rb +6 -0
  33. data/lib/minter/api/resources/address_resource.rb +2 -6
  34. data/lib/minter/api/resources/block_resource.rb +2 -3
  35. data/lib/minter/api/resources/candidate_resource.rb +2 -2
  36. data/lib/minter/api/resources/coin_resource.rb +2 -2
  37. data/lib/minter/api/resources/estimate_resource.rb +1 -1
  38. data/lib/minter/api/resources/events_resource.rb +2 -3
  39. data/lib/minter/api/resources/max_gas_resource.rb +1 -1
  40. data/lib/minter/api/resources/nonce_resource.rb +3 -4
  41. data/lib/minter/api/resources/send_transaction_resource.rb +2 -3
  42. data/lib/minter/api/resources/transactions_resource.rb +2 -3
  43. data/lib/minter/transactions/buy_coin_tx.rb +0 -1
  44. data/lib/minter/transactions/create_coin_tx.rb +0 -1
  45. data/lib/minter/transactions/create_multisig_address_tx.rb +38 -0
  46. data/lib/minter/transactions/declare_candidacy_tx.rb +0 -2
  47. data/lib/minter/transactions/delegate_tx.rb +0 -1
  48. data/lib/minter/transactions/edit_candidate_tx.rb +4 -3
  49. data/lib/minter/transactions/multi_send_tx.rb +2 -3
  50. data/lib/minter/transactions/redeem_check_tx.rb +0 -1
  51. data/lib/minter/transactions/sell_all_coin_tx.rb +0 -1
  52. data/lib/minter/transactions/sell_coin_tx.rb +0 -1
  53. data/lib/minter/transactions/send_coin_tx.rb +0 -2
  54. data/lib/minter/transactions/set_candidate_off_tx.rb +0 -1
  55. data/lib/minter/transactions/set_candidate_on_tx.rb +0 -1
  56. data/lib/minter/transactions/signed_tx.rb +3 -3
  57. data/lib/minter/transactions/transaction.rb +34 -10
  58. data/lib/minter/transactions/unbond_tx.rb +0 -1
  59. data/lib/minter/version.rb +1 -1
  60. metadata +32 -8
  61. data/lib/ffi/transaction/transaction_ffi.rb +0 -93
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2fb9bd69dc66c7e056d03f510826cac63ebfdb73e9aa516458660c97fe17998b
4
- data.tar.gz: 77afdd7d8847d641930e16b50779aade041f5afa9634534b955cd68cf253bf89
3
+ metadata.gz: e10891bf917d27419af0d90b52cc7d4d5a2de676da0b7be134b0bddf50df6a2c
4
+ data.tar.gz: 939bba264597e2812c07af37a2b4d73ddf1a2feb0564cfada331c72ce7b96d4c
5
5
  SHA512:
6
- metadata.gz: 3fc9c2d0bfa3c85758a931de46ce86afb67b7c0afb253e328ef5e275d9d76db6c5bd8dc97c1de2ce87631a639b5cc1ca7d092a5f5fbb52539ed0560217cd3ab4
7
- data.tar.gz: 37d5fc9507bc6aaf2776ba2fad4215aece8f6c367d80f2e7806032de367781696b3f8f510b16215be8758125b7160304c5bff03637b1ba00a5afad7ac27ef8f9
6
+ metadata.gz: 802ddfd9fffc238d336c4f1e5467e08cbbc43d45f9e903d4bfda8d61ae68a2cb18869c23cd95e0907241e41f8a2010c96a02bd424683d9f1aa5985003e5d71a4
7
+ data.tar.gz: 628e29cc4b4f5c41d573bbb75b5b3af1ec5b251c60588bd4f19e26eab560d2caace416c85de6fbe67a37dba7cc20b79b89cecfce5c25b6f93b8ec2d31bf7b0c0
data/README.md CHANGED
@@ -62,6 +62,7 @@ Or install it yourself as:
62
62
  - [Unbond](#unbond-transaction)
63
63
  - [Multisend](#multisend-transaction)
64
64
  - [EditCandidate](#edit-candidate-transaction)
65
+ - [CreateMultisigAddress](#create-multisig-address)
65
66
  - [Sign transaction](#sign-transaction)
66
67
  - [Single signature](#single-signature)
67
68
  - [Multi signature](#multi-signatures)
@@ -91,7 +92,7 @@ Create Minter::Api client
91
92
  require "minter"
92
93
 
93
94
  client = Minter::Api::Client.new
94
- client.node_url = "https://minter-node-1.testnet.minter.network:8841"
95
+ client.node_url = "https://node-api.testnet.minter.network/v2"
95
96
  ```
96
97
 
97
98
  ### Address
@@ -100,14 +101,14 @@ Returns coins list, balance and transaction count (for nonce) of an address.
100
101
 
101
102
  ```ruby
102
103
  client = Minter::Api::Client.new
103
- client.node_url = "https://minter-node-1.testnet.minter.network:8841"
104
+ client.node_url = "https://node-api.testnet.minter.network/v2"
104
105
 
105
106
  address = "Mx251cb0043a0240779103aa7c210f638f887699f8"
106
107
  response = client.address(address: address)
107
108
  response.status
108
109
  #=> 200
109
110
  response.body
110
- #=> {"jsonrpc"=>"2.0", "id"=>"", "result"=>{"balance"=>{"DEVDEV"=>"1000000000000002000", "DEVTWO"=>"1000000000000000000", "MNT"=>"66565140000000800001000"}, "transaction_count"=>"31"}}
111
+ #=> {"balance"=>[{"coin"=>{"id"=>"0", "symbol"=>"MNT"}, "value"=>"29999857000000000000000", "bip_value"=>"29999857000000000000000"}], "delegated"=>[], "total"=>[], "transaction_count"=>"13", "bip_value"=>"29999857000000000000000"}
111
112
  ````
112
113
 
113
114
  ### Address at height
@@ -116,14 +117,14 @@ Returns coins list, balance and transaction count (for nonce) of an address.
116
117
 
117
118
  ```ruby
118
119
  client = Minter::Api::Client.new
119
- client.node_url = "https://minter-node-1.testnet.minter.network:8841"
120
+ client.node_url = "https://node-api.testnet.minter.network/v2"
120
121
 
121
122
  address = "Mx251cb0043a0240779103aa7c210f638f887699f8"
122
123
  response = client.address(address: address, height: 1)
123
124
  response.status
124
125
  #=> 200
125
126
  response.body
126
- #=> {"jsonrpc"=>"2.0", "id"=>"", "result"=>{"balance"=>{"MNT"=>"0"}, "transaction_count"=>"0"}}
127
+ #=> {"balance"=>[], "delegated"=>[], "total"=>[], "transaction_count"=>"0", "bip_value"=>"0"}
127
128
 
128
129
  ````
129
130
 
@@ -133,14 +134,14 @@ Returns coins list, balance and transaction count (for nonce) of an address.
133
134
 
134
135
  ```ruby
135
136
  client = Minter::Api::Client.new
136
- client.node_url = "https://minter-node-1.testnet.minter.network:8841"
137
+ client.node_url = "https://node-api.testnet.minter.network/v2"
137
138
 
138
139
  address = "Mx251cb0043a0240779103aa7c210f638f887699f8"
139
140
  response = client.balance(address: address)
140
141
  response.status
141
142
  #=> 200
142
143
  response.body
143
- #=> {"jsonrpc"=>"2.0", "id"=>"", "result"=>{"balance"=>{"DEVDEV"=>"1000000000000002000", "DEVTWO"=>"1000000000000000000", "MNT"=>"66565140000000800001000"}, "transaction_count"=>"31"}}
144
+ #=> {"balance"=>[{"coin"=>{"id"=>"0", "symbol"=>"MNT"}, "value"=>"29999857000000000000000", "bip_value"=>"29999857000000000000000"}], "delegated"=>[], "total"=>[], "transaction_count"=>"13", "bip_value"=>"29999857000000000000000"}
144
145
  ````
145
146
 
146
147
 
@@ -151,11 +152,11 @@ Returns next transaction number (nonce) of an address.
151
152
 
152
153
  ```ruby
153
154
  client = Minter::Api::Client.new
154
- client.node_url = "https://minter-node-1.testnet.minter.network:8841"
155
+ client.node_url = "https://node-api.testnet.minter.network/v2"
155
156
 
156
157
  address = "Mx251cb0043a0240779103aa7c210f638f887699f8"
157
158
  nonce = client.nonce(address: address)
158
- #=> 28
159
+ #=> 14
159
160
  ```
160
161
 
161
162
  ### Block
@@ -164,22 +165,14 @@ Returns block data at given height.
164
165
 
165
166
  ```ruby
166
167
  client = Minter::Api::Client.new
167
- client.node_url = "https://minter-node-1.testnet.minter.network:8841"
168
+ client.node_url = "https://node-api.testnet.minter.network/v2"
168
169
 
169
170
  response = client.block(height: 1)
170
171
  response.status
171
172
  #=> 200
172
173
  response.body
173
- #=> {"jsonrpc"=>"2.0",
174
- # "id"=>"",
175
- # "result"=>
176
- # {"hash"=>"499a3ba23ec8a046eb7d1eecdf4123b795e2ba3df0e57122f75fa656144553ea",
177
- # "height"=>"1",
178
- # "time"=>"2020-04-08T13:00:00Z",
179
- # "num_txs"=>"0",
180
- # "transactions"=>[],
181
- # "block_reward"=>"331000000000000000000",
182
- # "size"=>"280"}}
174
+ #=> {"hash"=>"8e2534065f3fb281b3834ae79383cd75cb06245b33bd96a0d87370340039f7bc", "height"=>"1", "time"=>"1970-01-01T00:00:00Z", "transaction_count"=>"0", "transactions"=>[], "block_reward"=>"333000000000000000000", "size"=>"270", "proposer"=>"Mpd83e627510eea6aefa46d9914b0715dabf4a561ced78d34267b31d41d5f700b5", "validators"=>[{"public_key"=>"Mpd83e627510eea6aefa46d9914b0715dabf4a561ced78d34267b31d41d5f700b5", "signed"=>false}], "evidence"=>{"evidence"=>[]}, "missed"=>[]}
175
+
183
176
 
184
177
  ```
185
178
 
@@ -189,23 +182,14 @@ Returns candidate’s info by provided public_key. It will respond with 404 code
189
182
 
190
183
  ```ruby
191
184
  client = Minter::Api::Client.new
192
- client.node_url = "https://minter-node-1.testnet.minter.network:8841"
185
+ client.node_url = "https://node-api.testnet.minter.network/v2"
193
186
 
194
- public_key = "Mp4d2900d19ee3ce815bdb38daa3bc8d15c2bbe4945c3cdfac80df3ae6da31464b"
187
+ public_key = "Mpd83e627510eea6aefa46d9914b0715dabf4a561ced78d34267b31d41d5f700b5"
195
188
  response = client.candidate(public_key: public_key)
196
189
  response.status
197
190
  #=> 200
198
191
  response.body
199
- #=> {"jsonrpc"=>"2.0",
200
- # "id"=>"",
201
- # "result"=>
202
- # {"reward_address"=>"Mx251cb0043a0240779103aa7c210f638f887699f8",
203
- # "owner_address"=>"Mx251cb0043a0240779103aa7c210f638f887699f8",
204
- # "total_stake"=>"4950000000000000000",
205
- # "pub_key"=>"Mp4d2900d19ee3ce815bdb38daa3bc8d15c2bbe4945c3cdfac80df3ae6da31464b",
206
- # "commission"=>"10",
207
- # "stakes"=>[{"owner"=>"Mx251cb0043a0240779103aa7c210f638f887699f8", "coin"=>"MNT", "value"=>"4950000000000000000", "bip_value"=>"4950000000000000000"}],
208
- # "status"=>1}}
192
+ #=> {"reward_address"=>"Mxa83d8ebbe688b853775a698683b77afa305a661e", "owner_address"=>"Mxa83d8ebbe688b853775a698683b77afa305a661e", "control_address"=>"Mxa83d8ebbe688b853775a698683b77afa305a661e", "total_stake"=>"2444011225306401876946221", "public_key"=>"Mpd83e627510eea6aefa46d9914b0715dabf4a561ced78d34267b31d41d5f700b5", "commission"=>"5", "used_slots"=>"10", "uniq_users"=>"6", "min_stake"=>"0", "stakes"=>[{"owner"=>"Mxa83d8ebbe688b853775a698683b77afa305a661e", "coin"=>{"id"=>"0", "symbol"=>"MNT"}, "value"=>"1000000000000000000000000", "bip_value"=>"1000000000000000000000000"}, {"owner"=>"Mx69ebd94f75444b22953c7a439f7ccef6d9e9be5a", "coin"=>{"id"=>"0", "symbol"=>"MNT"}, "value"=>"10000000000000000000", "bip_value"=>"10000000000000000000"}, {"owner"=>"Mx3e3b5d6087f58f2592623a62da9618a2ee020d2d", "coin"=>{"id"=>"0", "symbol"=>"MNT"}, "value"=>"824272819147233530716891", "bip_value"=>"824272819147233530716891"}, {"owner"=>"Mxeb92ae39b84012968f63b2dd260a94d791fe79bd", "coin"=>{"id"=>"0", "symbol"=>"MNT"}, "value"=>"609007403767000000000000", "bip_value"=>"609007403767000000000000"}, {"owner"=>"Mxeb92ae39b84012968f63b2dd260a94d791fe79bd", "coin"=>{"id"=>"5", "symbol"=>"SMALCOIN-1"}, "value"=>"27704575686000000000000", "bip_value"=>"163214040105490477218"}, {"owner"=>"Mxeb92ae39b84012968f63b2dd260a94d791fe79bd", "coin"=>{"id"=>"6", "symbol"=>"SMALCOIN"}, "value"=>"23500946264000000000000", "bip_value"=>"5258446493070597814637"}, {"owner"=>"Mxeb92ae39b84012968f63b2dd260a94d791fe79bd", "coin"=>{"id"=>"1", "symbol"=>"CUSTOM"}, "value"=>"7648158824000000000000", "bip_value"=>"1530873792242471521"}, {"owner"=>"Mxeb92ae39b84012968f63b2dd260a94d791fe79bd", "coin"=>{"id"=>"4", "symbol"=>"BIGCOIN"}, "value"=>"22993066314000000000000", "bip_value"=>"5286810985200015465954"}, {"owner"=>"Mxeeda61bbe9929bf883af6b22f5796e4b92563ba4", "coin"=>{"id"=>"0", "symbol"=>"MNT"}, "value"=>"5000000000000000000", "bip_value"=>"5000000000000000000"}, {"owner"=>"Mx0004ae43810ac75200a0c681487d1748a4f1e0b3", "coin"=>{"id"=>"0", "symbol"=>"MNT"}, "value"=>"6000000000000000000", "bip_value"=>"6000000000000000000"}], "status"=>"2"}
209
193
  ```
210
194
  ### Candidates
211
195
 
@@ -213,29 +197,27 @@ Returns list of candidates.
213
197
 
214
198
  ```ruby
215
199
  client = Minter::Api::Client.new
216
- client.node_url = "https://minter-node-1.testnet.minter.network:8841"
200
+ client.node_url = "https://node-api.testnet.minter.network/v2"
217
201
 
218
202
  response = client.candidates
219
203
  response.status
220
204
  #=> 200
221
205
  response.body
222
- #=> {"jsonrpc"=>"2.0",
223
- # "id"=>"",
224
- # "result"=>
225
- # [
226
- # {"reward_address"=>"Mx9816046484c7c50fc43d5a564cadb494910a27b7",
227
- # "owner_address"=>"Mx9816046484c7c50fc43d5a564cadb494910a27b7",
228
- # "total_stake"=>"100019333250000000000000",
229
- # "pub_key"=>"Mpf17328239cd81453b9e9393f66137e5442fb108c7b4fc36b6acfd838f7e6e0c4",
230
- # "commission"=>"85",
231
- # "status"=>2},
232
- # {"reward_address"=>"Mx69ebd94f75444b22953c7a439f7ccef6d9e9be5a",
233
- # "owner_address"=>"Mx3b3af9a8520910b29735ca44a64f52f09f057d64",
234
- # "total_stake"=>"49500000000000000000",
235
- # "pub_key"=>"Mpab7a9b763569a45b3221d4276e72466c225524354eee6c7d2e12858ac0eef864",
236
- # "commission"=>"1",
237
- # "status"=>1}
238
- # ]
206
+ {
207
+ "candidates" => [{
208
+ "reward_address" => "Mxa83d8ebbe688b853775a698683b77afa305a661e",
209
+ "owner_address" => "Mxa83d8ebbe688b853775a698683b77afa305a661e",
210
+ "control_address" => "Mxa83d8ebbe688b853775a698683b77afa305a661e",
211
+ "total_stake" => "1000000000000000000000000",
212
+ "public_key" => "Mpd83e627510eea6aefa46d9914b0715dabf4a561ced78d34267b31d41d5f700b5",
213
+ "commission" => "5",
214
+ "used_slots" => nil,
215
+ "uniq_users" => nil,
216
+ "min_stake" => nil,
217
+ "stakes" => [],
218
+ "status" => "2"
219
+ }]
220
+ }
239
221
  ```
240
222
 
241
223
  ### CoinInfo
@@ -245,7 +227,7 @@ Note: this method does not return information about base coins (MNT and BIP).
245
227
 
246
228
  ```ruby
247
229
  client = Minter::Api::Client.new
248
- client.node_url = "https://minter-node-1.testnet.minter.network:8841"
230
+ client.node_url = "https://node-api.testnet.minter.network/v2"
249
231
 
250
232
  response = client.coin_info("CAPITAL")
251
233
  response.status
@@ -268,7 +250,7 @@ Return estimate of buy coin transaction.
268
250
 
269
251
  ```ruby
270
252
  client = Minter::Api::Client.new
271
- client.node_url = "https://minter-node-1.testnet.minter.network:8841"
253
+ client.node_url = "https://node-api.testnet.minter.network/v2"
272
254
 
273
255
  response = client.estimate_coin_buy(coinToSell: "BIP", valueToBuy: 1, coinToBuy: "MNT")
274
256
  response.status
@@ -281,7 +263,7 @@ Return estimate of sell coin transaction.
281
263
 
282
264
  ```ruby
283
265
  client = Minter::Api::Client.new
284
- client.node_url = "https://minter-node-1.testnet.minter.network:8841"
266
+ client.node_url = "https://node-api.testnet.minter.network/v2"
285
267
 
286
268
  response = client.estimate_coin_sell(coinToSell: "BIP", valueToSell: 1, coinToBuy: "MNT")
287
269
  response.status
@@ -293,7 +275,7 @@ Return estimate of transaction.
293
275
 
294
276
  ```ruby
295
277
  client = Minter::Api::Client.new
296
- client.node_url = "https://minter-node-1.testnet.minter.network:8841"
278
+ client.node_url = "https://node-api.testnet.minter.network/v2"
297
279
 
298
280
  response = client.estimate_tx_comission(transaction: "0xf88522020a8a4d4e540000000000000001abea8a4d4e540000000000000094e7812ab98ac5ac37e2ab20da3136ad91bb22d49789014d1120d7b1600000808001b845f8431ba07424d88d612132c847c1c92c1f471471fa8034914260223cb547f097e2bd7587a0201fa4d869ba564538996a71e6aa1e2b069d746b8fa0a563e023989986ae91a7")
299
281
  ```
@@ -304,7 +286,7 @@ Returns events at given height.
304
286
 
305
287
  ```ruby
306
288
  client = Minter::Api::Client.new
307
- client.node_url = "https://minter-node-1.testnet.minter.network:8841"
289
+ client.node_url = "https://node-api.testnet.minter.network/v2"
308
290
 
309
291
  response = client.events(height: 1)
310
292
  ```
@@ -316,13 +298,13 @@ Returns current max gas.
316
298
 
317
299
  ```ruby
318
300
  client = Minter::Api::Client.new
319
- client.node_url = "https://minter-node-1.testnet.minter.network:8841"
301
+ client.node_url = "https://node-api.testnet.minter.network/v2"
320
302
 
321
303
  response = client.max_gas
322
304
  response.status
323
305
  #=>200
324
306
  response.body
325
- #=> {"jsonrpc"=>"2.0", "id"=>"", "result"=>"100000"}
307
+ #=> {"max_gas_price"=>"100000"}
326
308
  ```
327
309
 
328
310
  ### MinGasPrice
@@ -331,13 +313,13 @@ Returns current min gas price.
331
313
 
332
314
  ```ruby
333
315
  client = Minter::Api::Client.new
334
- client.node_url = "https://minter-node-1.testnet.minter.network:8841"
316
+ client.node_url = "https://node-api.testnet.minter.network/v2"
335
317
 
336
318
  response = client.min_gas_price
337
319
  response.status
338
320
  #=>200
339
321
  response.body
340
- #=> {"jsonrpc"=>"2.0", "id"=>"", "result"=>"1"}
322
+ #=> {"min_gas_price"=>"1"}
341
323
 
342
324
  ```
343
325
 
@@ -347,7 +329,7 @@ Returns missed blocks by validator public key.
347
329
 
348
330
  ```ruby
349
331
  client = Minter::Api::Client.new
350
- client.node_url = "https://minter-node-1.testnet.minter.network:8841"
332
+ client.node_url = "https://node-api.testnet.minter.network/v2"
351
333
 
352
334
  response = client.missed_block(public_key: public_key)
353
335
  ```
@@ -365,7 +347,7 @@ response.status
365
347
  #=> 200
366
348
  response.body
367
349
  #=>
368
- {"jsonrpc"=>"2.0", "id"=>"", "result"=>{"code"=>0, "data"=>"", "log"=>"", "hash"=>"9219C1FA06D72C2A4ACDFB4D20F52E3F536C6134E20F485F1E2EA6D71C0DFA20"}}
350
+ {"code"=>"0", "log"=>"", "hash"=>"Mt0cfac66950c621db243fcdd68530b455f2c579dda7a7c602822355a80e9815d2"}
369
351
  ```
370
352
 
371
353
  ### Status
@@ -374,40 +356,26 @@ Returns node status info.
374
356
 
375
357
  ```ruby
376
358
  client = Minter::Api::Client.new
377
- client.node_url = "https://minter-node-1.testnet.minter.network:8841"
359
+ client.node_url = "https://node-api.testnet.minter.network/v2"
378
360
 
379
361
  response = client.status
380
362
  response.status
381
363
  #=>200
382
364
  response.body
383
365
  #=>
384
- {"jsonrpc"=>"2.0",
385
- "id"=>"",
386
- "result"=>
387
- {"version"=>"1.1.6-testnet",
388
- "latest_block_hash"=>"E20E0B26DAB8CEE5AC1CB46B5184C63565522978EDF153DA3017C7D34F2D3F30",
389
- "latest_app_hash"=>"995C21A980D4E0A7649E56252CB4E279A5820655B717A017FC09FE2E9D841554",
390
- "latest_block_height"=>"702448",
391
- "latest_block_time"=>"2020-05-12T20:59:23.252868652Z",
392
- "keep_last_states"=>"120",
393
- "tm_status"=>
394
- {"node_info"=>
395
- {"protocol_version"=>{"p2p"=>"7", "block"=>"10", "app"=>"6"},
396
- "id"=>"4735e67924e611b89fbd3f951441b5e912e226d3",
397
- "listen_addr"=>"tcp://0.0.0.0:26656",
398
- "network"=>"minter-testnet-08-04",
399
- "version"=>"0.33.2",
400
- "channels"=>"4020212223303800",
401
- "moniker"=>"minter-node-1.testnet.minter.network",
402
- "other"=>{"tx_index"=>"on", "rpc_address"=>"tcp://127.0.0.1:26657"}},
403
- "sync_info"=>
404
- {"latest_block_hash"=>"E20E0B26DAB8CEE5AC1CB46B5184C63565522978EDF153DA3017C7D34F2D3F30",
405
- "latest_app_hash"=>"995C21A980D4E0A7649E56252CB4E279A5820655B717A017FC09FE2E9D841554",
406
- "latest_block_height"=>"702448",
407
- "latest_block_time"=>"2020-05-12T20:59:23.252868652Z",
408
- "catching_up"=>false},
409
- "validator_info"=>
410
- {"address"=>"43253BE55C58BCA3045BEFABEF873944B56E3555", "pub_key"=>{"type"=>"tendermint/PubKeyEd25519", "value"=>"DSmoPlRlOh1fNOVh4BNfHoHLyuFS8fMnqzaFen4y3kw="}, "voting_power"=>"98784385"}}}}
366
+ {
367
+ "version" => "1.2.0-a7c02e42-testnet",
368
+ "network" => "minter-1-2-testnet",
369
+ "latest_block_hash" => "553F412E3BDD05932F96AFC79C750ACCB6C6D65D253D627A9D8A88D5C893CD1A",
370
+ "latest_app_hash" => "4337152D2F002F604CF338C29BC4AA1AF1729A93228E074153FDFF722CE33324",
371
+ "latest_block_height" => "281797",
372
+ "latest_block_time" => "2020-11-05T06:05:39.586760081Z",
373
+ "keep_last_states" => "1000000",
374
+ "total_slashed" => "433000000000000015854",
375
+ "catching_up" => false,
376
+ "public_key" => "Mpd83e627510eea6aefa46d9914b0715dabf4a561ced78d34267b31d41d5f700b5",
377
+ "node_id" => "95fa41d84670bc98691101406d62aed9d64459f4"
378
+ }
411
379
 
412
380
  ```
413
381
 
@@ -417,32 +385,30 @@ Returns transaction info.
417
385
 
418
386
  ```ruby
419
387
  client = Minter::Api::Client.new
420
- client.node_url = "https://minter-node-1.testnet.minter.network:8841"
388
+ client.node_url = "https://node-api.testnet.minter.network/v2"
421
389
 
422
- transaction_hash = "Mt56c1957d15bf4143f7cd180f837bce51564a054cfbdaf5c5e179f9b0aad8e8b2"
390
+ transaction_hash = "Mt0cfac66950c621db243fcdd68530b455f2c579dda7a7c602822355a80e9815d2"
423
391
 
424
392
  response = client.transaction_info(transaction_hash: transaction_hash)
425
393
  response.status
426
394
  #=>200
427
395
  response.body
428
396
  #=>
429
- {"jsonrpc"=>"2.0",
430
- "id"=>"",
431
- "result"=>
432
- {"hash"=>"56C1957D15BF4143F7CD180F837BCE51564A054CFBDAF5C5E179F9B0AAD8E8B2",
433
- "raw_tx"=>
434
- "f88522020a8a4d4e540000000000000001abea8a4d4e540000000000000094e7812ab98ac5ac37e2ab20da3136ad91bb22d49789014d1120d7b1600000808001b845f8431ba07424d88d612132c847c1c92c1f471471fa8034914260223cb547f097e2bd7587a0201fa4d869ba564538996a71e6aa1e2b069d746b8fa0a563e023989986ae91a7",
435
- "height"=>"701284",
436
- "index"=>0,
437
- "from"=>"Mx251cb0043a0240779103aa7c210f638f887699f8",
438
- "nonce"=>"34",
439
- "gas"=>"10",
440
- "gas_price"=>10,
441
- "gas_coin"=>"MNT",
442
- "type"=>1,
443
- "data"=>{"coin"=>"MNT", "to"=>"Mxe7812ab98ac5ac37e2ab20da3136ad91bb22d497", "value"=>"24000000000000000000"},
444
- "payload"=>"",
445
- "tags"=>{"tx.type"=>"01", "tx.from"=>"251cb0043a0240779103aa7c210f638f887699f8", "tx.to"=>"e7812ab98ac5ac37e2ab20da3136ad91bb22d497", "tx.coin"=>"MNT"}}}
397
+ {
398
+ "hash" => "Mt0cfac66950c621db243fcdd68530b455f2c579dda7a7c602822355a80e9815d2", "raw_tx" => "f86f0e020180019fde8094eeee1973381ab793719fff497b9a516719fcd5a287038d7ea4c68000808001b845f8431ba0b4f6ef634625c12a7cb08ca568dca87fec2ca696bde99f2669c4e297748ce7a2a00ba8fab69667b0d849054ac8d21c3194f1dfcfca01ddafacd19d0e7f708933bd", "height" => "281792", "index" => "0", "from" => "Mx251cb0043a0240779103aa7c210f638f887699f8", "nonce" => "14", "gas" => "10", "gas_price" => "1", "gas_coin" => {
399
+ "id" => "0", "symbol" => "MNT"
400
+ },
401
+ "type" => "1", "data" => {
402
+ "@type" => "type.googleapis.com/api_pb.SendData", "coin" => {
403
+ "id" => "0", "symbol" => "MNT"
404
+ }, "to" => "Mxeeee1973381ab793719fff497b9a516719fcd5a2", "value" => "1000000000000000"
405
+ },
406
+ "payload" => nil, "tags" => {
407
+ "tx.coin_id" => "0", "tx.from" => "251cb0043a0240779103aa7c210f638f887699f8", "tx.to" => "eeee1973381ab793719fff497b9a516719fcd5a2", "tx.type" => "01"
408
+ },
409
+ "code" => "0",
410
+ "log" => ""
411
+ }
446
412
  ```
447
413
 
448
414
  ### Transactions
@@ -451,34 +417,14 @@ Return transactions by query.
451
417
 
452
418
  ```ruby
453
419
  client = Minter::Api::Client.new
454
- client.node_url = "https://minter-node-1.testnet.minter.network:8841"
420
+ client.node_url = "https://node-api.testnet.minter.network/v2"
455
421
 
456
- query = "tags.tx.coin='MNT'"
422
+ query = "tags.tx.coin='0'"
457
423
  page = 1
458
424
  per_page = 1
459
425
  response = client.transactions(query: query, per_page: per_page, page: page)
460
426
  response.status
461
427
  #=> 200
462
- response.body
463
- #=>
464
- {"jsonrpc"=>"2.0",
465
- "id"=>"",
466
- "result"=>
467
- [{"hash"=>"9398DB947BC1397212C3F7FBE3D4131E68DDD1CA5AD36860DF5D7700E1C279EB",
468
- "raw_tx"=>
469
- "f87e82229102018a4d4e540000000000000001a2e18a4d4e540000000000000094a1f103c242237370d409ff5ff9f1817d42f94dda80808001b845f8431ba0a377be8dcab2a0cd005a8b392876724ed97aea4c312dc1081f581384ec938a1da01851f86f174c6d104ebb61cdab4e38056641147777e12e1184d8140c2b85d080",
470
- "height"=>"702308",
471
- "index"=>0,
472
- "from"=>"Mxa1f103c242237370d409ff5ff9f1817d42f94dda",
473
- "nonce"=>"8849",
474
- "gas"=>"10",
475
- "gas_price"=>1,
476
- "gas_coin"=>"MNT",
477
- "type"=>1,
478
- "data"=>{"coin"=>"MNT", "to"=>"Mxa1f103c242237370d409ff5ff9f1817d42f94dda", "value"=>"0"},
479
- "payload"=>"",
480
- "tags"=>{"tx.type"=>"01", "tx.from"=>"a1f103c242237370d409ff5ff9f1817d42f94dda", "tx.to"=>"a1f103c242237370d409ff5ff9f1817d42f94dda", "tx.coin"=>"MNT"}}]}
481
-
482
428
  ```
483
429
 
484
430
  ### Unconfirmed Transactions
@@ -488,7 +434,7 @@ Returns unconfirmed transactions.
488
434
 
489
435
  ```ruby
490
436
  client = Minter::Api::Client.new
491
- client.node_url = "https://minter-node-1.testnet.minter.network:8841"
437
+ client.node_url = "https://node-api.testnet.minter.network/v2"
492
438
 
493
439
  query = "tags.tx.coin='MNT'"
494
440
  page = 1
@@ -496,9 +442,6 @@ per_page = 1
496
442
  response = client.unconfirmed_transactions
497
443
  response.status
498
444
  #=> 200
499
- response.body
500
- #=>
501
- {"jsonrpc"=>"2.0", "id"=>"", "result"=>{"n_txs"=>"0", "total"=>"0", "total_bytes"=>"0", "txs"=>[]}}
502
445
  ```
503
446
 
504
447
  ### Validators
@@ -507,21 +450,14 @@ Returns list of active validators.
507
450
 
508
451
  ```ruby
509
452
  client = Minter::Api::Client.new
510
- client.node_url = "https://minter-node-1.testnet.minter.network:8841"
453
+ client.node_url = "https://node-api.testnet.minter.network/v2"
511
454
 
512
455
  response = client.validators
513
456
  response.status
514
457
  #=>200
515
458
  response.body
516
459
  #=>
517
- {"jsonrpc"=>"2.0",
518
- "id"=>"",
519
- "result"=>
520
- [{"pub_key"=>"Mp0d29a83e54653a1d5f34e561e0135f1e81cbcae152f1f327ab36857a7e32de4c", "voting_power"=>"99121402"},
521
- {"pub_key"=>"Mpa3c16ffc2af26f199dd23c52932ce22441f848aa3ab2b7015de01e2f9c293464", "voting_power"=>"49661"},
522
- {"pub_key"=>"Mpf17328239cd81453b9e9393f66137e5442fb108c7b4fc36b6acfd838f7e6e0c4", "voting_power"=>"9911"},
523
- {"pub_key"=>"Mp14c93843ca40a62b9e7d02a824e7ffe83b49e3329ae963afdd7e500071ab9bfc", "voting_power"=>"819024"}]}
524
-
460
+ {"validators"=>[{"public_key"=>"Mpd83e627510eea6aefa46d9914b0715dabf4a561ced78d34267b31d41d5f700b5", "voting_power"=>"100000000"}]}
525
461
 
526
462
  ```
527
463
 
@@ -534,24 +470,44 @@ Returns a signed tx.
534
470
  #### Single signature
535
471
 
536
472
  ```ruby
473
+ mnemonic = "oppose gym crucial devote skin robust exile antique split clean bright move"
474
+ sender_address = Minter::Key.address_from_mnemonic(mnemonic)
475
+ sender_private_key = Minter::Key.private_key_from_mnemonic(mnemonic)
476
+ nonce = client.nonce(address: sender_address)
477
+
478
+ receiver_address = "Mxeeee1973381ab793719fff497b9a516719fcd5a2"
479
+
537
480
  transaction = Minter::SendCoinTx.new(
538
- address_to: "Mxe7812ab98ac5ac37e2ab20da3136ad91bb22d497",
539
- value: 24_000_000_000_000_000_000,
540
- coin: "MNT",
541
- nonce: 1,
542
- chain_id: 2,
543
- gas_coin: "MNT",
544
- gas_price: 10
481
+ address_to: receiver_address,
482
+ value: 1_000_000_000_000_000,
483
+ coin: 0,
484
+ nonce: nonce,
485
+ chain_id: 2,
486
+ gas_coin: 0,
487
+ gas_price: 1
545
488
  )
546
489
 
547
- signed_tx = sign(private_key)
490
+ signed_tx = transaction.sign(sender_private_key)
548
491
  signed_tx.tx_hash
549
- #=> "0xf88501020a8a4d4e540000000000000001abea8a4d4e540000000000000094e7812ab98ac5ac37e2ab20da3136ad91bb22d49789014d1120d7b1600000808001b845f8431ba07fde3c0e8d9ffb5fd7025099c9f3672deffab0b784787f5d45ea8f27b0ffe989a02f7cd63ac0d75e559f540d8b33464b11da4605e623d62a5b2ddce5adf70c35cb"
492
+ #=> "0xf86f0f020180019fde8094eeee1973381ab793719fff497b9a516719fcd5a287038d7ea4c68000808001b845f8431ca029870ea74e51ca5f89749860875ce69d7afd8b9bff6debebf127d14a27a83043a044f8b98aaa128f8cf41f5556d7b8fddd224021ac7d28024daafed2362d4144b6"
550
493
  ```
551
494
 
552
495
  #### Multi signatures
553
496
  ```ruby
554
- # IN PROGRESS
497
+ multisig_address = "Mxeda4bb5456f5eb8a19f57c8c6ec844d05feae879"
498
+ private_key1 = "4de029ca7b95c163f88c66e6351f2a986a48834b4681ec1e43eed5d120227103"
499
+ private_key2 = "49e48cd0f81e7aabfc840301c66f00318f50b25c79664c3f337d7ad4f919638e"
500
+ transaction = Minter::SendCoinTx.new(
501
+ address_to: "Mxe7812ab98ac5ac37e2ab20da3136ad91bb22d497",
502
+ value: 4_000_000_000_000_000_000,
503
+ coin: 0,
504
+ nonce: 2,
505
+ chain_id: 2,
506
+ gas_coin: 0,
507
+ gas_price: 10
508
+ )
509
+ signed_tx = transaction.multisign(multisig_address, private_key1, private_key2)
510
+ #=> #<Minter::SignedTx:0x00007f97f0249ca0 @tx_hash="0xf8ce02020a8001a0df8094e7812ab98ac5ac37e2ab20da3136ad91bb22d497883782dace9d900000808002b8a3f8a194eda4bb5456f5eb8a19f57c8c6ec844d05feae879f88af8431ca04613dae08d6d729a2cb55cd1ef508fcabbd516c219cca15cff61bd5cff0dca2fa06dd29d4fa41517b1701520412f2892b82a10b0fd9b7ddf00060105d418e78f3bf8431ba0d13870020138ae7d6bc14dff8a720c97767af19b648facddb997a8c7baa771c2a01879cee21cd8e315752eae1190981541418fe49ff3def116fd123a2fd066ba84", @transaction=#<Minter::SendCoinTx:0x00007f97f11b2a48 @address_to="Mxe7812ab98ac5ac37e2ab20da3136ad91bb22d497", @value=4000000000000000000, @coin=0, @nonce=2, @chain_id=2, @gas_coin=0, @gas_price=10>>
555
511
  ```
556
512
 
557
513
  ### Create transaction
@@ -567,15 +523,15 @@ value - Amount of Coin to send.
567
523
  ##### Example
568
524
 
569
525
  ```ruby
570
- Minter::SendCoinTx.new(
571
- address_to: "Mxe7812ab98ac5ac37e2ab20da3136ad91bb22d497",
572
- value: 24_000_000_000_000_000_000,
573
- coin: "MNT",
574
- nonce: 1,
575
- chain_id: 2,
576
- gas_coin: "MNT",
577
- gas_price: 10
578
- )
526
+ transaction = Minter::SendCoinTx.new(
527
+ address_to: "Mx1b685a7c1e78726c48f619c497a07ed75fe00483",
528
+ value: 1_000_000_000_000_000_000,
529
+ coin: 1,
530
+ nonce: 1,
531
+ chain_id: 2,
532
+ gas_coin: 1,
533
+ gas_price: 1
534
+ )
579
535
  ```
580
536
 
581
537
  #### Sell coin transaction
@@ -591,13 +547,13 @@ minimum_value_to_buy - Minimum value of coins to get.
591
547
 
592
548
  ```ruby
593
549
  Minter::SellCoinTx.new(
594
- coin_to_sell: "MNT",
550
+ coin_to_sell: 1,
595
551
  value_to_sell: 1_000_000_000_000_000_000,
596
- coin_to_buy: "TEST",
552
+ coin_to_buy: 2,
597
553
  minimum_value_to_buy: 1_000_000_000_000_000_000,
598
554
  nonce: 1,
599
555
  chain_id: 2,
600
- gas_coin: "MNT",
556
+ gas_coin: 1,
601
557
  gas_price: 1
602
558
  )
603
559
  ```
@@ -614,14 +570,14 @@ minimum_value_to_buy - Minimum value of coins to get.
614
570
 
615
571
  ```ruby
616
572
  Minter::SellAllCoinTx.new(
617
- coin_to_sell: "MNT",
618
- coin_to_buy: "TEST",
619
- minimum_value_to_buy: 1_000_000_000_000_000_000,
620
- nonce: 1,
621
- chain_id: 2,
622
- gas_coin: "MNT",
623
- gas_price: 1
624
- )
573
+ coin_to_sell: 1,
574
+ coin_to_buy: 2,
575
+ minimum_value_to_buy: 1_000_000_000_000_000_000,
576
+ nonce: 1,
577
+ chain_id: 2,
578
+ gas_coin: 1,
579
+ gas_price: 1
580
+ )
625
581
  ```
626
582
 
627
583
  #### Buy coin transaction
@@ -636,16 +592,16 @@ maximum_value_to_sell - Maximum value of coins to sell.
636
592
  ##### Example
637
593
 
638
594
  ```ruby
639
- transaction = Minter::BuyCoinTx.new(
640
- coin_to_buy: "TEST",
641
- value_to_buy: 1_000_000_000_000_000_000,
642
- coin_to_sell: "MNT",
643
- maximum_value_to_sell: 1_000_000_000_000_000_000,
644
- nonce: 1,
645
- chain_id: 2,
646
- gas_coin: "MNT",
647
- gas_price: 1
648
- )
595
+ Minter::BuyCoinTx.new(
596
+ coin_to_buy: 2,
597
+ value_to_buy: 1_000_000_000_000_000_000,
598
+ coin_to_sell: 1,
599
+ maximum_value_to_sell: 1_000_000_000_000_000_000,
600
+ nonce: 1,
601
+ chain_id: 2,
602
+ gas_coin: 1,
603
+ gas_price: 1
604
+ )
649
605
  ```
650
606
 
651
607
  #### Create coin transaction
@@ -661,17 +617,17 @@ initial_reserve - Initial reserve in BIP's. ConstantReserveRatio - CRR, uint, sh
661
617
 
662
618
  ```ruby
663
619
  Minter::CreateCoinTx.new(
664
- name: "SUPER TEST",
665
- symbol: "SPRTEST",
666
- initial_amount: 100_000_000_000_000_000_000,
667
- initial_reserve: 10_000_000_000_000_000_000,
668
- reserve_ratio: 10,
669
- max_supply: 1_000_000_000_000_000_000_000,
670
- nonce: 1,
671
- chain_id: 2,
672
- gas_coin: "MNT",
673
- gas_price: 1
674
- )
620
+ name: "SUPER TEST",
621
+ symbol: "SPRTEST",
622
+ initial_amount: 100_000_000_000_000_000_000,
623
+ initial_reserve: 20_000_000_000_000_000_000_000,
624
+ reserve_ratio: 10,
625
+ max_supply: 1_000_000_000_000_000_000_000,
626
+ nonce: 1,
627
+ chain_id: 2,
628
+ gas_coin: 1,
629
+ gas_price: 1
630
+ )
675
631
  ```
676
632
 
677
633
  #### Declare candidacy transaction
@@ -687,16 +643,16 @@ coin - Symbol of coin to stake. Stake - Amount of coins to stake.
687
643
 
688
644
  ```ruby
689
645
  Minter::DeclareCandidacyTx.new(
690
- address: "Mx9f7fd953c2c69044b901426831ed03ee0bd0597a",
691
- pubkey: "Mp0eb98ea04ae466d8d38f490db3c99b3996a90e24243952ce9822c6dc1e2c1a43",
692
- commission: 10,
693
- coin: "MNT",
694
- stake: 5_000_000_000_000_000_000,
695
- nonce: 1,
696
- chain_id: 2,
697
- gas_coin: "MNT",
698
- gas_price: 1
699
- )
646
+ address: "Mx9f7fd953c2c69044b901426831ed03ee0bd0597a",
647
+ pubkey: "Mp0eb98ea04ae466d8d38f490db3c99b3996a90e24243952ce9822c6dc1e2c1a43",
648
+ commission: 10,
649
+ coin: 1,
650
+ stake: 5_000_000_000_000_000_000,
651
+ nonce: 1,
652
+ chain_id: 2,
653
+ gas_coin: 1,
654
+ gas_price: 1
655
+ )
700
656
  ```
701
657
 
702
658
  #### Delegate transaction
@@ -711,14 +667,14 @@ value - Amount of coins to stake.
711
667
 
712
668
  ```ruby
713
669
  Minter::DelegateTx.new(
714
- pubkey: "Mp0eb98ea04ae466d8d38f490db3c99b3996a90e24243952ce9822c6dc1e2c1a43",
715
- coin: "MNT",
716
- value: 10_000_000_000_000_000_000,
717
- nonce: 1,
718
- chain_id: 2,
719
- gas_coin: "MNT",
720
- gas_price: 1
721
- )
670
+ pubkey: "Mp0eb98ea04ae466d8d38f490db3c99b3996a90e24243952ce9822c6dc1e2c1a43",
671
+ coin: 1,
672
+ value: 10_000_000_000_000_000_000,
673
+ nonce: 1,
674
+ chain_id: 2,
675
+ gas_coin: 1,
676
+ gas_price: 1
677
+ )
722
678
  ```
723
679
 
724
680
  #### Unbond transaction
@@ -733,14 +689,14 @@ value - Amount of coins to stake.
733
689
 
734
690
  ```ruby
735
691
  Minter::UnbondTx.new(
736
- pubkey: "Mp0eb98ea04ae466d8d38f490db3c99b3996a90e24243952ce9822c6dc1e2c1a43",
737
- coin: "MNT",
738
- value: 10_000_000_000_000_000_000,
739
- nonce: 1,
740
- chain_id: 2,
741
- gas_coin: "MNT",
742
- gas_price: 1
743
- )
692
+ pubkey: "Mp0eb98ea04ae466d8d38f490db3c99b3996a90e24243952ce9822c6dc1e2c1a43",
693
+ coin: 1,
694
+ value: 10_000_000_000_000_000_000,
695
+ nonce: 1,
696
+ chain_id: 2,
697
+ gas_coin: 1,
698
+ gas_price: 1
699
+ )
744
700
  ```
745
701
 
746
702
  #### Redeem check transaction
@@ -759,7 +715,7 @@ Minter::RedeemCheckTx.new(
759
715
  proof: proof,
760
716
  nonce: 1,
761
717
  chain_id: 2,
762
- gas_coin: "MNT",
718
+ gas_coin: 1,
763
719
  gas_price: 1
764
720
  )
765
721
  ```
@@ -777,7 +733,7 @@ Minter::SetCandidateOnTx.new(
777
733
  pubkey: "Mp0eb98ea04ae466d8d38f490db3c99b3996a90e24243952ce9822c6dc1e2c1a43",
778
734
  nonce: 1,
779
735
  chain_id: 2,
780
- gas_coin: "MNT",
736
+ gas_coin: 1,
781
737
  gas_price: 1
782
738
  )
783
739
  ```
@@ -795,7 +751,7 @@ Minter::SetCandidateOffTx.new(
795
751
  pubkey: "Mp0eb98ea04ae466d8d38f490db3c99b3996a90e24243952ce9822c6dc1e2c1a43",
796
752
  nonce: 1,
797
753
  chain_id: 2,
798
- gas_coin: "MNT",
754
+ gas_coin: 1,
799
755
  gas_price: 1
800
756
  )
801
757
  ```
@@ -810,87 +766,61 @@ Minter::EditCandidateTx.new(
810
766
  pubkey: "Mp4ae1ee73e6136c85b0ca933a9a1347758a334885f10b3238398a67ac2eb153b8",
811
767
  reward_address: "Mx89e5dc185e6bab772ac8e00cf3fb3f4cb0931c47",
812
768
  owner_address: "Mxe731fcddd37bb6e72286597d22516c8ba3ddffa0",
769
+ control_address: "Mx1b685a7c1e78726c48f619c497a07ed75fe00483",
813
770
  nonce: 1,
814
771
  chain_id: 2,
815
- gas_coin: "MNT",
772
+ gas_coin: 1,
816
773
  gas_price: 1
817
774
  )
818
775
  ```
819
776
 
820
- #### Create multisig address
821
-
822
- Transaction for creating multisignature address.
823
-
824
- ```ruby
825
- # IN PROGRESS
826
- ```
827
777
  #### Multisend transaction
828
778
 
829
779
  Transaction for sending coins to multiple addresses.
830
780
 
831
781
  ```ruby
832
782
  transaction = Minter::MultiSendTx.new(
833
- nonce: 1,
834
- chain_id: 2,
835
- gas_coin: "MNT",
836
- gas_price: 1
783
+ nonce: 1,
784
+ chain_id: 2,
785
+ gas_coin: 1,
786
+ gas_price: 1
837
787
  )
838
-
788
+
839
789
  transaction.add_item(
840
- symbol: "MNT",
841
- address_to: "Mxfe60014a6e9ac91618f5d1cab3fd58cded61ee99",
842
- value: 100_000_000_000_000_000
790
+ coin_id: 1,
791
+ address_to: "Mxfe60014a6e9ac91618f5d1cab3fd58cded61ee99",
792
+ value: 100_000_000_000_000_000
843
793
  )
844
-
794
+
845
795
  transaction.add_item(
846
- symbol: "MNT",
847
- address_to: "Mxddab6281766ad86497741ff91b6b48fe85012e3c",
848
- value: 200_000_000_000_000_000
796
+ coin_id: 1,
797
+ address_to: "Mxddab6281766ad86497741ff91b6b48fe85012e3c",
798
+ value: 200_000_000_000_000_000
849
799
  )
850
- ```
851
- ### Get fee of transaction
852
- ```ruby
853
- # IN PROGRESS
854
- ```
855
- ### Decode Transaction
856
800
 
857
- ```ruby
858
- # IN PROGRESS
801
+ signed_tx = transaction.sign(private_key)
859
802
  ```
860
- ### Minter Deep Links
861
-
862
- ```ruby
863
- # IN PROGRESS
864
- ```
865
- More info about [Minter Link Protocol](https://github.com/MinterTeam/minter-link-protocol)
866
-
867
- ### Minter Check
868
-
869
- Minter Check is like an ordinary bank check. Each user of network can issue check with any amount of coins and pass it to another person. Receiver will be able to cash a check from arbitrary account.
870
-
871
- * Create Issue Check. Nonce - unique "id" of the check. Coin Symbol - symbol of coin. Value - amount of coins. Due Block - defines last block height in which the check can be used.
872
803
 
804
+ ### Get fee of transaction
873
805
  ```ruby
874
- # IN PROGRESS
875
- ```
806
+ transaction = Minter::SendCoinTx.new(
807
+ address_to: "Mxe7812ab98ac5ac37e2ab20da3136ad91bb22d497",
808
+ value: 24_000_000_000_000_000_000,
809
+ coin: "MNT",
810
+ nonce: 65,
811
+ chain_id: 2,
812
+ gas_coin: "MNT",
813
+ gas_price: 10
814
+ )
876
815
 
877
- * Sign Issue Check
816
+ transaction.fee
817
+ #=> ""
878
818
 
879
- ```ruby
880
- # IN PROGRESS
881
819
  ```
882
820
 
883
- * Prepare check string and convert to data
884
-
885
- ```ruby
886
- # IN PROGRESS
887
- ```
821
+ More info about [Minter Link Protocol](https://github.com/MinterTeam/minter-link-protocol)
888
822
 
889
- * Proof check
890
823
 
891
- ```ruby
892
- # IN PROGRESS
893
- ```
894
824
 
895
825
  ### Minter Wallet
896
826
 
@@ -966,7 +896,7 @@ To run tests:
966
896
 
967
897
  ```shell script
968
898
  bundle install
969
- rpsec
899
+ rspec
970
900
  ```
971
901
 
972
902
  ## Development