cardano_wallet 0.3.0 → 0.3.5

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,15 +1,16 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module CardanoWallet
4
+ ##
5
+ # misc
2
6
  module Misc
3
-
4
7
  def self.new(opt)
5
8
  Init.new opt
6
9
  end
7
10
 
11
+ ##
12
+ # Base Class for Misc API
8
13
  class Init < Base
9
- def initialize opt
10
- super
11
- end
12
-
13
14
  # Call API for Network
14
15
  # @see https://input-output-hk.github.io/cardano-wallet/api/edge/#tag/Network
15
16
  def network
@@ -30,72 +31,57 @@ module CardanoWallet
30
31
  def settings
31
32
  Settings.new @opt
32
33
  end
33
-
34
34
  end
35
35
 
36
36
  # API for Network
37
37
  # @see https://input-output-hk.github.io/cardano-wallet/api/edge/#tag/Settings
38
38
  class Settings < Base
39
- def initialize opt
40
- super
41
- end
42
-
43
39
  # @see https://input-output-hk.github.io/cardano-wallet/api/edge/#operation/getSettings
44
40
  def get
45
- self.class.get("/settings")
41
+ self.class.get('/settings')
46
42
  end
47
43
 
48
44
  # @see https://input-output-hk.github.io/cardano-wallet/api/edge/#operation/putSettings
49
45
  def update(params)
50
46
  CardanoWallet::Utils.verify_param_is_hash!(params)
51
- self.class.put("/settings",
52
- :body => {"settings" => params}.to_json,
53
- :headers => { 'Content-Type' => 'application/json' }
54
- )
47
+ self.class.put('/settings',
48
+ body: { 'settings' => params }.to_json,
49
+ headers: { 'Content-Type' => 'application/json' })
55
50
  end
56
51
  end
57
52
 
58
53
  # API for Network
59
54
  # @see https://input-output-hk.github.io/cardano-wallet/api/edge/#tag/Network
60
55
  class Network < Base
61
- def initialize opt
62
- super
63
- end
64
-
65
56
  # Get network information
66
57
  # @see https://input-output-hk.github.io/cardano-wallet/api/edge/#operation/getNetworkInformation
67
58
  def information
68
- self.class.get("/network/information")
59
+ self.class.get('/network/information')
69
60
  end
70
61
 
71
62
  # Check network clock
72
63
  # @see https://input-output-hk.github.io/cardano-wallet/api/edge/#operation/getNetworkClock
73
64
  def clock
74
- self.class.get("/network/clock")
65
+ self.class.get('/network/clock')
75
66
  end
76
67
 
77
68
  # Check network parameters
78
69
  # @see https://input-output-hk.github.io/cardano-wallet/api/edge/#operation/getNetworkParameters
79
70
  def parameters
80
- self.class.get("/network/parameters")
71
+ self.class.get('/network/parameters')
81
72
  end
82
-
83
73
  end
84
74
 
85
75
  # @see https://input-output-hk.github.io/cardano-wallet/api/edge/#tag/Utils
86
76
  class Utils < Base
87
- def initialize opt
88
- super
89
- end
90
-
91
77
  # @see https://input-output-hk.github.io/cardano-wallet/api/#operation/signMetadata
92
78
  def sign_metadata(wid, role, index, pass, metadata)
93
79
  payload = { passphrase: pass }
94
80
  payload[:metadata] = metadata if metadata
95
81
 
96
82
  self.class.post("/wallets/#{wid}/signatures/#{role}/#{index}",
97
- :body => payload.to_json,
98
- :headers => { 'Content-Type' => 'application/json' } )
83
+ body: payload.to_json,
84
+ headers: { 'Content-Type' => 'application/json' })
99
85
  end
100
86
 
101
87
  # @see https://input-output-hk.github.io/cardano-wallet/api/#operation/getWalletKey
@@ -111,10 +97,10 @@ module CardanoWallet
111
97
  # @see https://input-output-hk.github.io/cardano-wallet/api/edge/#operation/postAnyAddress
112
98
  def post_address(payload)
113
99
  CardanoWallet::Utils.verify_param_is_hash!(payload)
114
- self.class.post("/addresses",
115
- :body => payload.to_json,
116
- :headers => { 'Content-Type' => 'application/json',
117
- 'Accept' => 'application/json'} )
100
+ self.class.post('/addresses',
101
+ body: payload.to_json,
102
+ headers: { 'Content-Type' => 'application/json',
103
+ 'Accept' => 'application/json' })
118
104
  end
119
105
 
120
106
  # Current SMASH health
@@ -122,26 +108,21 @@ module CardanoWallet
122
108
  #
123
109
  # @example
124
110
  # smash_health({url: "https://smash.cardano-mainnet.iohk.io/"})
125
- def smash_health(q = {})
126
- q.empty? ? query = '' : query = CardanoWallet::Utils.to_query(q)
127
- self.class.get("/smash/health#{query}")
111
+ def smash_health(query = {})
112
+ query_formatted = query.empty? ? '' : CardanoWallet::Utils.to_query(query)
113
+ self.class.get("/smash/health#{query_formatted}")
128
114
  end
129
-
130
115
  end
131
116
 
132
117
  # @see https://input-output-hk.github.io/cardano-wallet/api/edge/#tag/Proxy
133
118
  class Proxy < Base
134
- def initialize opt
135
- super
136
- end
137
-
138
119
  # Submit a transaction that was created and signed outside of cardano-wallet.
139
120
  # @see https://input-output-hk.github.io/cardano-wallet/api/edge/#operation/postExternalTransaction
140
121
  # @param binary_blob [String] Signed transaction message binary blob.
141
122
  def submit_external_transaction(binary_blob)
142
- self.class.post("/proxy/transactions",
143
- :body => binary_blob,
144
- :headers => { 'Content-Type' => 'application/octet-stream' })
123
+ self.class.post('/proxy/transactions',
124
+ body: binary_blob,
125
+ headers: { 'Content-Type' => 'application/octet-stream' })
145
126
  end
146
127
  end
147
128
  end
@@ -0,0 +1,76 @@
1
+ # frozen_string_literal: true
2
+
3
+ module CardanoWallet
4
+ # Init API for Shelley Shared wallets
5
+ module Shared
6
+ def self.new(opt)
7
+ Init.new opt
8
+ end
9
+
10
+ ##
11
+ # Base class for Shelley Shared Wallets API
12
+ class Init < Base
13
+ # Call API for Wallets
14
+ # @see https://input-output-hk.github.io/cardano-wallet/api/edge/#tag/Shared-Wallets
15
+ def wallets
16
+ Wallets.new @opt
17
+ end
18
+ end
19
+
20
+ # API for Wallets
21
+ # @see https://input-output-hk.github.io/cardano-wallet/api/edge/#tag/Shared-Wallets
22
+ class Wallets < Base
23
+ # List all wallets
24
+ # @see https://input-output-hk.github.io/cardano-wallet/api/edge/#operation/listWallets
25
+ # def list
26
+ # self.class.get('/shared-wallets')
27
+ # end
28
+
29
+ # Get wallet details
30
+ # @see https://input-output-hk.github.io/cardano-wallet/api/edge/#operation/getSharedWallet
31
+ def get(wid)
32
+ self.class.get("/shared-wallets/#{wid}")
33
+ end
34
+
35
+ # Create a wallet based on the params.
36
+ # @see https://input-output-hk.github.io/cardano-wallet/api/edge/#operation/postSharedWallet
37
+ #
38
+ # @example Create wallet from mnemonic sentence
39
+ # create({name: "Wallet from mnemonic_sentence",
40
+ # passphrase: "Secure Passphrase",
41
+ # mnemonic_sentence: %w[story egg fun ... ],
42
+ # account_index: "1852H",
43
+ # payment_script_template: {...},
44
+ # ...
45
+ # })
46
+ def create(params)
47
+ Utils.verify_param_is_hash!(params)
48
+ self.class.post('/shared-wallets',
49
+ body: params.to_json,
50
+ headers: { 'Content-Type' => 'application/json' })
51
+ end
52
+
53
+ # Delete wallet
54
+ # @see https://input-output-hk.github.io/cardano-wallet/api/edge/#operation/deleteSharedWallet
55
+ def delete(wid)
56
+ self.class.delete("/shared-wallets/#{wid}")
57
+ end
58
+
59
+ # Update payment script
60
+ # @see https://input-output-hk.github.io/cardano-wallet/api/edge/#operation/patchSharedWalletInPayment
61
+ def update_payment_script(wid, cosigner, acc_pub_key)
62
+ self.class.patch("/shared-wallets/#{wid}/payment-script-template",
63
+ body: { cosigner => acc_pub_key }.to_json,
64
+ headers: { 'Content-Type' => 'application/json' })
65
+ end
66
+
67
+ # Update delegation script
68
+ # @see https://input-output-hk.github.io/cardano-wallet/api/edge/#operation/patchSharedWalletInDelegation
69
+ def update_delegation_script(wid, cosigner, acc_pub_key)
70
+ self.class.patch("/shared-wallets/#{wid}/delegation-script-template",
71
+ body: { cosigner => acc_pub_key }.to_json,
72
+ headers: { 'Content-Type' => 'application/json' })
73
+ end
74
+ end
75
+ end
76
+ end
@@ -1,17 +1,15 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module CardanoWallet
2
4
  # Init API for Shelley
3
5
  module Shelley
4
-
5
6
  def self.new(opt)
6
7
  Init.new opt
7
8
  end
8
9
 
10
+ ##
11
+ # Base class for Shelley API
9
12
  class Init < Base
10
-
11
- def initialize opt
12
- super
13
- end
14
-
15
13
  # Call API for Wallets
16
14
  # @see https://input-output-hk.github.io/cardano-wallet/api/edge/#tag/Wallets
17
15
  def wallets
@@ -59,14 +57,11 @@ module CardanoWallet
59
57
  def assets
60
58
  Assets.new @opt
61
59
  end
62
-
63
60
  end
64
61
 
62
+ ##
63
+ # Base class for Shelley Assets API
65
64
  class Assets < Base
66
- def initialize opt
67
- super
68
- end
69
-
70
65
  # @see https://input-output-hk.github.io/cardano-wallet/api/edge/#operation/listAssets
71
66
  # @see https://input-output-hk.github.io/cardano-wallet/api/edge/#operation/getAsset
72
67
  # @see https://input-output-hk.github.io/cardano-wallet/api/edge/#operation/getAssetDefault
@@ -76,23 +71,20 @@ module CardanoWallet
76
71
  ep += "/#{asset_name}" if asset_name
77
72
  self.class.get(ep)
78
73
  end
79
-
80
74
  end
81
75
 
76
+ ##
77
+ # Base class for Shelley Keys API
82
78
  class Keys < Base
83
- def initialize opt
84
- super
85
- end
86
-
87
79
  # @see https://input-output-hk.github.io/cardano-wallet/api/#operation/signMetadata
88
80
  def sign_metadata(wid, role, index, pass, metadata)
89
81
  payload = { passphrase: pass }
90
82
  payload[:metadata] = metadata if metadata
91
83
 
92
84
  self.class.post("/wallets/#{wid}/signatures/#{role}/#{index}",
93
- :body => payload.to_json,
94
- :headers => { 'Content-Type' => 'application/json',
95
- 'Accept' => 'application/octet-stream'} )
85
+ body: payload.to_json,
86
+ headers: { 'Content-Type' => 'application/json',
87
+ 'Accept' => 'application/octet-stream' })
96
88
  end
97
89
 
98
90
  # @see https://input-output-hk.github.io/cardano-wallet/api/#operation/getWalletKey
@@ -104,24 +96,18 @@ module CardanoWallet
104
96
  def create_acc_public_key(wid, index, pass, extended)
105
97
  payload = { passphrase: pass, extended: extended }
106
98
  self.class.post("/wallets/#{wid}/keys/#{index}",
107
- :body => payload.to_json,
108
- :headers => { 'Content-Type' => 'application/json' }
109
- )
99
+ body: payload.to_json,
100
+ headers: { 'Content-Type' => 'application/json' })
110
101
  end
111
-
112
102
  end
113
103
 
114
104
  # API for Wallets
115
105
  # @see https://input-output-hk.github.io/cardano-wallet/api/edge/#tag/Wallets
116
106
  class Wallets < Base
117
- def initialize opt
118
- super
119
- end
120
-
121
107
  # List all wallets
122
108
  # @see https://input-output-hk.github.io/cardano-wallet/api/edge/#operation/listWallets
123
109
  def list
124
- self.class.get("/wallets")
110
+ self.class.get('/wallets')
125
111
  end
126
112
 
127
113
  # Get wallet details
@@ -136,19 +122,18 @@ module CardanoWallet
136
122
  # @example Create wallet from mnemonic sentence
137
123
  # create({name: "Wallet from mnemonic_sentence",
138
124
  # passphrase: "Secure Passphrase",
139
- # mnemonic_sentence: %w[story egg fun dismiss gasp mad spoon human cloud become garbage panel rhythm knee help],
125
+ # mnemonic_sentence: %w[story egg fun ... ],
140
126
  # })
141
127
  # @example Create wallet from pub key
142
128
  # create({name: "Wallet from pub key",
143
- # account_public_key: "b47546e661b6c1791452d003d375756dde6cac2250093ce4630f16b9b9c0ac87411337bda4d5bc0216462480b809824ffb48f17e08d95ab9f1b91d391e48e66b",
129
+ # account_public_key: "b47546e...",
144
130
  # address_pool_gap: 20,
145
131
  # })
146
132
  def create(params)
147
133
  Utils.verify_param_is_hash!(params)
148
- self.class.post( "/wallets",
149
- :body => params.to_json,
150
- :headers => { 'Content-Type' => 'application/json' }
151
- )
134
+ self.class.post('/wallets',
135
+ body: params.to_json,
136
+ headers: { 'Content-Type' => 'application/json' })
152
137
  end
153
138
 
154
139
  # Delete wallet
@@ -165,9 +150,8 @@ module CardanoWallet
165
150
  def update_metadata(wid, params)
166
151
  Utils.verify_param_is_hash!(params)
167
152
  self.class.put("/wallets/#{wid}",
168
- :body => params.to_json,
169
- :headers => { 'Content-Type' => 'application/json' }
170
- )
153
+ body: params.to_json,
154
+ headers: { 'Content-Type' => 'application/json' })
171
155
  end
172
156
 
173
157
  # See wallet's utxo distribution
@@ -184,47 +168,50 @@ module CardanoWallet
184
168
  def update_passphrase(wid, params)
185
169
  Utils.verify_param_is_hash!(params)
186
170
  self.class.put("/wallets/#{wid}/passphrase",
187
- :body => params.to_json,
188
- :headers => { 'Content-Type' => 'application/json' }
189
- )
171
+ body: params.to_json,
172
+ headers: { 'Content-Type' => 'application/json' })
190
173
  end
191
174
  end
192
175
 
193
176
  # API for Addresses
194
177
  # @see https://input-output-hk.github.io/cardano-wallet/api/edge/#tag/Addresses
195
178
  class Addresses < Base
196
- def initialize opt
197
- super
198
- end
199
-
200
179
  # List addresses
201
180
  # @see https://input-output-hk.github.io/cardano-wallet/api/edge/#operation/listAddresses
202
181
  #
203
182
  # @example
204
183
  # list(wid, {state: "used"})
205
- def list(wid, q = {})
206
- q.empty? ? query = '' : query = Utils.to_query(q)
207
- self.class.get("/wallets/#{wid}/addresses#{query}")
184
+ def list(wid, query = {})
185
+ query_formatted = query.empty? ? '' : Utils.to_query(query)
186
+ self.class.get("/wallets/#{wid}/addresses#{query_formatted}")
208
187
  end
209
188
  end
210
189
 
211
190
  # API for CoinSelections
212
191
  # @see https://input-output-hk.github.io/cardano-wallet/api/edge/#tag/Coin-Selections
213
192
  class CoinSelections < Base
214
- def initialize opt
215
- super
216
- end
217
-
218
193
  # Show random coin selection for particular payment
219
194
  # @see https://input-output-hk.github.io/cardano-wallet/api/edge/#operation/selectCoins
220
195
  #
221
196
  # @example
222
197
  # random(wid, [{addr1: 1000000}, {addr2: 1000000}])
223
- def random(wid, payments)
224
- payments_formatted = Utils.format_payments(payments)
198
+ # random(wid, [{ "address": "addr1..",
199
+ # "amount": { "quantity": 42000000, "unit": "lovelace" },
200
+ # "assets": [{"policy_id": "pid", "asset_name": "name", "quantity": 0 } ] } ])
201
+ def random(wid, payments, withdrawal = nil, metadata = nil)
202
+ Utils.verify_param_is_array!(payments)
203
+ payments_formatted = if payments.any? { |p| p.key?(:address) || p.key?('address') }
204
+ payments
205
+ else
206
+ Utils.format_payments(payments)
207
+ end
208
+ payload = { payments: payments_formatted }
209
+ payload[:withdrawal] = withdrawal if withdrawal
210
+ payload[:metadata] = metadata if metadata
211
+
225
212
  self.class.post("/wallets/#{wid}/coin-selections/random",
226
- :body => {:payments => payments_formatted}.to_json,
227
- :headers => { 'Content-Type' => 'application/json' })
213
+ body: payload.to_json,
214
+ headers: { 'Content-Type' => 'application/json' })
228
215
  end
229
216
 
230
217
  # Coin selection -> Delegation action
@@ -236,18 +223,14 @@ module CardanoWallet
236
223
  def random_deleg(wid, deleg_action)
237
224
  Utils.verify_param_is_hash!(deleg_action)
238
225
  self.class.post("/wallets/#{wid}/coin-selections/random",
239
- :body => {:delegation_action => deleg_action}.to_json,
240
- :headers => { 'Content-Type' => 'application/json' })
226
+ body: { delegation_action: deleg_action }.to_json,
227
+ headers: { 'Content-Type' => 'application/json' })
241
228
  end
242
229
  end
243
230
 
244
231
  # API for Transactions
245
232
  # @see https://input-output-hk.github.io/cardano-wallet/api/edge/#tag/Transactions
246
233
  class Transactions < Base
247
- def initialize opt
248
- super
249
- end
250
-
251
234
  # Get tx by id
252
235
  # @see https://input-output-hk.github.io/cardano-wallet/api/edge/#operation/getTransaction
253
236
  def get(wid, tx_id)
@@ -259,9 +242,9 @@ module CardanoWallet
259
242
  #
260
243
  # @example
261
244
  # list(wid, {start: "2012-09-25T10:15:00Z", order: "descending"})
262
- def list(wid, q = {})
263
- q.empty? ? query = '' : query = Utils.to_query(q)
264
- self.class.get("/wallets/#{wid}/transactions#{query}")
245
+ def list(wid, query = {})
246
+ query_formatted = query.empty? ? '' : Utils.to_query(query)
247
+ self.class.get("/wallets/#{wid}/transactions#{query_formatted}")
265
248
  end
266
249
 
267
250
  # Create a transaction from the wallet
@@ -275,23 +258,26 @@ module CardanoWallet
275
258
  #
276
259
  # @example
277
260
  # create(wid, passphrase, [{addr1: 1000000}, {addr2: 1000000}], 'self', {"1": "abc"}, ttl = 10)
278
- # create(wid, passphrase, [{ "address": "addr1..", "amount": { "quantity": 42000000, "unit": "lovelace" }, "assets": [{"policy_id": "pid", "asset_name": "name", "quantity": 0 } ] } ], 'self', {"1": "abc"}, ttl = 10)
261
+ # create(wid, passphrase, [{ "address": "addr1..",
262
+ # "amount": { "quantity": 42000000, "unit": "lovelace" },
263
+ # "assets": [{"policy_id": "pid", "asset_name": "name", "quantity": 0 } ] } ],
264
+ # 'self', {"1": "abc"}, ttl = 10)
279
265
  def create(wid, passphrase, payments, withdrawal = nil, metadata = nil, ttl = nil)
280
- if payments.any?{|p| p.has_key?("address".to_sym) || p.has_key?("address")}
281
- payments_formatted = payments
282
- else
283
- payments_formatted = Utils.format_payments(payments)
284
- end
285
- payload = { :payments => payments_formatted,
286
- :passphrase => passphrase
287
- }
266
+ Utils.verify_param_is_array!(payments)
267
+ payments_formatted = if payments.any? { |p| p.key?(:address) || p.key?('address') }
268
+ payments
269
+ else
270
+ Utils.format_payments(payments)
271
+ end
272
+ payload = { payments: payments_formatted,
273
+ passphrase: passphrase }
288
274
  payload[:withdrawal] = withdrawal if withdrawal
289
275
  payload[:metadata] = metadata if metadata
290
- payload[:time_to_live] = { quantity: ttl, unit: "second" } if ttl
276
+ payload[:time_to_live] = { quantity: ttl, unit: 'second' } if ttl
291
277
 
292
278
  self.class.post("/wallets/#{wid}/transactions",
293
- :body => payload.to_json,
294
- :headers => { 'Content-Type' => 'application/json' } )
279
+ body: payload.to_json,
280
+ headers: { 'Content-Type' => 'application/json' })
295
281
  end
296
282
 
297
283
  # Estimate fees for transaction
@@ -299,23 +285,27 @@ module CardanoWallet
299
285
  #
300
286
  # @example
301
287
  # payment_fees(wid, [{addr1: 1000000}, {addr2: 1000000}], {"1": "abc"}, ttl = 10)
302
- # payment_fees(wid, [{ "address": "addr1..", "amount": { "quantity": 42000000, "unit": "lovelace" }, "assets": [{"policy_id": "pid", "asset_name": "name", "quantity": 0 } ] } ], {"1": "abc"}, ttl = 10)
288
+ # payment_fees(wid, [{ "address": "addr1..",
289
+ # "amount": { "quantity": 42000000, "unit": "lovelace" },
290
+ # "assets": [{"policy_id": "pid", "asset_name": "name", "quantity": 0 } ] } ],
291
+ # {"1": "abc"}, ttl = 10)
303
292
  def payment_fees(wid, payments, withdrawal = nil, metadata = nil, ttl = nil)
304
- if payments.any?{|p| p.has_key?("address".to_sym) || p.has_key?("address")}
305
- payments_formatted = payments
306
- else
307
- payments_formatted = Utils.format_payments(payments)
308
- end
293
+ Utils.verify_param_is_array!(payments)
294
+ payments_formatted = if payments.any? { |p| p.key?(:address) || p.key?('address') }
295
+ payments
296
+ else
297
+ Utils.format_payments(payments)
298
+ end
309
299
 
310
- payload = { :payments => payments_formatted }
300
+ payload = { payments: payments_formatted }
311
301
 
312
302
  payload[:withdrawal] = withdrawal if withdrawal
313
303
  payload[:metadata] = metadata if metadata
314
- payload[:time_to_live] = { quantity: ttl, unit: "second" } if ttl
304
+ payload[:time_to_live] = { quantity: ttl, unit: 'second' } if ttl
315
305
 
316
306
  self.class.post("/wallets/#{wid}/payment-fees",
317
- :body => payload.to_json,
318
- :headers => { 'Content-Type' => 'application/json' } )
307
+ body: payload.to_json,
308
+ headers: { 'Content-Type' => 'application/json' })
319
309
  end
320
310
 
321
311
  # Forget a transaction
@@ -328,10 +318,6 @@ module CardanoWallet
328
318
  # API for StakePools
329
319
  # @see https://input-output-hk.github.io/cardano-wallet/api/edge/#tag/Stake-Pools
330
320
  class StakePools < Base
331
- def initialize opt
332
- super
333
- end
334
-
335
321
  # Stake pools maintenance actions
336
322
  # @see https://input-output-hk.github.io/cardano-wallet/api/edge/#operation/postMaintenanceAction
337
323
  #
@@ -339,21 +325,21 @@ module CardanoWallet
339
325
  # maintenance_action({ "maintenance_action": "gc_stake_pools" })
340
326
  def trigger_maintenance_actions(action = {})
341
327
  Utils.verify_param_is_hash!(action)
342
- self.class.post("/stake-pools/maintenance-actions",
343
- :body => action.to_json,
344
- :headers => { 'Content-Type' => 'application/json' } )
328
+ self.class.post('/stake-pools/maintenance-actions',
329
+ body: action.to_json,
330
+ headers: { 'Content-Type' => 'application/json' })
345
331
  end
346
332
 
347
333
  # Metdata GC Status
348
334
  # @see https://input-output-hk.github.io/cardano-wallet/api/edge/#operation/getMaintenanceActions
349
335
  def view_maintenance_actions
350
- self.class.get("/stake-pools/maintenance-actions")
336
+ self.class.get('/stake-pools/maintenance-actions')
351
337
  end
352
338
 
353
339
  # List all stake pools
354
340
  # @see https://input-output-hk.github.io/cardano-wallet/api/edge/#operation/listStakePools
355
341
  def list(stake = {})
356
- stake.empty? ? query = '' : query = Utils.to_query(stake)
342
+ query = stake.empty? ? '' : Utils.to_query(stake)
357
343
  self.class.get("/stake-pools#{query}")
358
344
  end
359
345
 
@@ -361,16 +347,16 @@ module CardanoWallet
361
347
  # @see https://input-output-hk.github.io/cardano-wallet/api/edge/#operation/joinStakePool
362
348
  def join(sp_id, wid, passphrase)
363
349
  self.class.put("/stake-pools/#{sp_id}/wallets/#{wid}",
364
- :body => { :passphrase => passphrase }.to_json,
365
- :headers => { 'Content-Type' => 'application/json' } )
350
+ body: { passphrase: passphrase }.to_json,
351
+ headers: { 'Content-Type' => 'application/json' })
366
352
  end
367
353
 
368
354
  # Quit stape pool
369
355
  # @see https://input-output-hk.github.io/cardano-wallet/api/edge/#operation/quitStakePool
370
356
  def quit(wid, passphrase)
371
357
  self.class.delete("#{@api}/stake-pools/*/wallets/#{wid}",
372
- :body => { :passphrase => passphrase }.to_json,
373
- :headers => { 'Content-Type' => 'application/json' } )
358
+ body: { passphrase: passphrase }.to_json,
359
+ headers: { 'Content-Type' => 'application/json' })
374
360
  end
375
361
 
376
362
  # Estimate delegation fees
@@ -383,14 +369,12 @@ module CardanoWallet
383
369
  # Shelley migrations
384
370
  # @see https://input-output-hk.github.io/cardano-wallet/api/#tag/Migrations
385
371
  class Migrations < Base
386
- def initialize opt
387
- super
388
- end
389
-
390
- # Calculate migration cost
391
- # @see https://input-output-hk.github.io/cardano-wallet/api/#operation/getShelleyWalletMigrationInfo
392
- def cost(wid)
393
- self.class.get("/wallets/#{wid}/migrations")
372
+ # Get migration plan
373
+ # @see https://input-output-hk.github.io/cardano-wallet/api/edge/#operation/createShelleyWalletMigrationPlan
374
+ def plan(wid, addresses)
375
+ self.class.post("/wallets/#{wid}/migrations/plan",
376
+ body: { addresses: addresses }.to_json,
377
+ headers: { 'Content-Type' => 'application/json' })
394
378
  end
395
379
 
396
380
  # Migrate all funds from Shelley wallet.
@@ -400,12 +384,10 @@ module CardanoWallet
400
384
  # @param [Array] array of addresses
401
385
  def migrate(wid, passphrase, addresses)
402
386
  self.class.post("/wallets/#{wid}/migrations",
403
- :body => { :addresses => addresses,
404
- :passphrase => passphrase
405
- }.to_json,
406
- :headers => { 'Content-Type' => 'application/json' } )
387
+ body: { addresses: addresses,
388
+ passphrase: passphrase }.to_json,
389
+ headers: { 'Content-Type' => 'application/json' })
407
390
  end
408
-
409
391
  end
410
392
  end
411
393
  end