cardano_wallet 0.1.0 → 0.1.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.github/workflows/nightly.yml +34 -0
- data/.github/workflows/tests.yml +5 -5
- data/README.md +28 -8
- data/Rakefile +10 -0
- data/cardano_wallet.gemspec +1 -0
- data/dev +1 -0
- data/docker-compose-shelley.yml +27 -0
- data/lib/cardano_wallet/base.rb +1 -1
- data/lib/cardano_wallet/byron.rb +6 -0
- data/lib/cardano_wallet/misc.rb +2 -2
- data/lib/cardano_wallet/shelley.rb +48 -6
- data/lib/cardano_wallet/version.rb +1 -1
- metadata +19 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: df0d8f6569ab3be773efe025fa14ec11e90fdfc9a51a08817182ec99de86eaec
|
4
|
+
data.tar.gz: 4ce00832c57f2afea0c2019d7772f8037b5fb4523e1f8f3be5aa3dfb4040a6d6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 97f5be475f2b18c6344e619fb33866a41d0449baf6801820aacc3123a0390195d4ed29a3d253b9b4e9004c6cd96246100a4b9df4a7ec54cb7e4ace3e37beeac8
|
7
|
+
data.tar.gz: e38d3564c8d28a01cc585ffbf3bf38d061f498301f26c1464aa9703bc927f18230af5bd3dbd27600a2b27b91a6dadc4059b6c91875a2dd2394951ded48af8cc2
|
@@ -0,0 +1,34 @@
|
|
1
|
+
name: Nightly
|
2
|
+
|
3
|
+
on:
|
4
|
+
schedule:
|
5
|
+
- cron: "0 23 * * *"
|
6
|
+
|
7
|
+
jobs:
|
8
|
+
test:
|
9
|
+
|
10
|
+
runs-on: ubuntu-latest
|
11
|
+
|
12
|
+
steps:
|
13
|
+
- uses: actions/checkout@v2
|
14
|
+
- name: Set up cardano-wallet
|
15
|
+
run: NODE_CONFIG_PATH=`pwd`/spec/shelley-testnet docker-compose -f docker-compose-shelley.yml up --detach
|
16
|
+
- name: Set up Ruby
|
17
|
+
# To automatically get bug fixes and new Ruby versions for ruby/setup-ruby,
|
18
|
+
# change this to (see https://github.com/ruby/setup-ruby#versioning):
|
19
|
+
# uses: ruby/setup-ruby@v1
|
20
|
+
uses: ruby/setup-ruby@ec106b438a1ff6ff109590de34ddc62c540232e0
|
21
|
+
with:
|
22
|
+
ruby-version: 2.6
|
23
|
+
- name: Install dependencies
|
24
|
+
run: bundle install
|
25
|
+
- name: Wait until node is synced
|
26
|
+
run: bundle exec rake wait_until_node_synced
|
27
|
+
- name: Run all tests
|
28
|
+
run: bundle exec rspec
|
29
|
+
env:
|
30
|
+
CI: true
|
31
|
+
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
|
32
|
+
NETWORK: testnet
|
33
|
+
WALLET: dev-master-shelley
|
34
|
+
NODE: 1.14.2
|
data/.github/workflows/tests.yml
CHANGED
@@ -21,7 +21,7 @@ jobs:
|
|
21
21
|
steps:
|
22
22
|
- uses: actions/checkout@v2
|
23
23
|
- name: Set up cardano-wallet
|
24
|
-
run: docker-compose up --detach
|
24
|
+
run: NODE_CONFIG_PATH=`pwd`/spec/shelley-testnet docker-compose -f docker-compose-shelley.yml up --detach
|
25
25
|
- name: Set up Ruby
|
26
26
|
# To automatically get bug fixes and new Ruby versions for ruby/setup-ruby,
|
27
27
|
# change this to (see https://github.com/ruby/setup-ruby#versioning):
|
@@ -31,11 +31,11 @@ jobs:
|
|
31
31
|
ruby-version: 2.6
|
32
32
|
- name: Install dependencies
|
33
33
|
run: bundle install
|
34
|
-
- name: Run tests
|
35
|
-
run: bundle exec
|
34
|
+
- name: Run all tests except nighlty
|
35
|
+
run: bundle exec rspec . -t ~nightly
|
36
36
|
env:
|
37
37
|
CI: true
|
38
38
|
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
|
39
39
|
NETWORK: testnet
|
40
|
-
WALLET: dev-master-
|
41
|
-
NODE:
|
40
|
+
WALLET: dev-master-shelley
|
41
|
+
NODE: 1.14.2
|
data/README.md
CHANGED
@@ -1,3 +1,7 @@
|
|
1
|
+
|
2
|
+
<a href="https://badge.fury.io/rb/cardano_wallet">
|
3
|
+
<img src="https://badge.fury.io/rb/cardano_wallet.svg" alt="Gem Version">
|
4
|
+
</a>
|
1
5
|
<a href="https://github.com/piotr-iohk/cardano-wallet-rb/releases">
|
2
6
|
<img src="https://img.shields.io/github/release/piotr-iohk/cardano-wallet-rb.svg" />
|
3
7
|
</a>
|
@@ -7,6 +11,9 @@
|
|
7
11
|
<a href="https://github.com/piotr-iohk/cardano-wallet-rb/actions?query=workflow%3ATests">
|
8
12
|
<img src="https://github.com/piotr-iohk/cardano-wallet-rb/workflows/Tests/badge.svg" />
|
9
13
|
</a>
|
14
|
+
<a href="https://github.com/piotr-iohk/cardano-wallet-rb/actions?query=workflow%3ANightly">
|
15
|
+
<img src="https://github.com/piotr-iohk/cardano-wallet-rb/workflows/Nightly/badge.svg" />
|
16
|
+
</a>
|
10
17
|
|
11
18
|
# cardano-wallet-rb
|
12
19
|
|
@@ -28,6 +35,12 @@ Or install it yourself as:
|
|
28
35
|
|
29
36
|
$ gem install cardano_wallet
|
30
37
|
|
38
|
+
## Documentation
|
39
|
+
|
40
|
+
For ruby doc see: https://rubydoc.info/gems/cardano_wallet.
|
41
|
+
|
42
|
+
For `cardano-wallet` REST Api see: https://input-output-hk.github.io/cardano-wallet/api/edge/.
|
43
|
+
|
31
44
|
## Usage
|
32
45
|
|
33
46
|
### Initialize
|
@@ -42,8 +55,10 @@ CW2 = CardanoWallet.new({port: 443,
|
|
42
55
|
protocol: "https",
|
43
56
|
cacert: "/root/ca.cert",
|
44
57
|
pem: "/root/client.pem"})
|
58
|
+
CW3 = CardanoWallet.new({url: "http://localhost:8090/v2"})
|
45
59
|
```
|
46
|
-
|
60
|
+
|
61
|
+
### Exercise
|
47
62
|
```ruby
|
48
63
|
CW = CardanoWallet.new
|
49
64
|
|
@@ -59,8 +74,8 @@ end
|
|
59
74
|
|
60
75
|
#Shelley
|
61
76
|
w = SHELLEY.wallets.create{name: "Wallet1",
|
62
|
-
|
63
|
-
|
77
|
+
mnemonic_sentence: %w[vintage poem topic machine hazard cement dune glimpse fix brief account badge mass silly business],
|
78
|
+
passphrase: "Secure Passphrase"}
|
64
79
|
|
65
80
|
SHELLEY.wallets.get(w['id'])
|
66
81
|
|
@@ -72,22 +87,27 @@ MISC.network.clock
|
|
72
87
|
PROXY.submit_external_transaction(File.new("/tmp/blob.bin").read)
|
73
88
|
```
|
74
89
|
|
75
|
-
Refer to documentation.
|
90
|
+
Refer to [documentation](https://rubydoc.info/gems/cardano_wallet) for more details.
|
76
91
|
|
77
92
|
## Development
|
78
93
|
|
79
|
-
In order to spin up environment for development and testing `docker-compose` can be used.
|
94
|
+
In order to spin up environment for development and testing `docker-compose` can be used. For instance:
|
80
95
|
|
96
|
+
# Byron testnet
|
81
97
|
$ NETWORK=testnet WALLET=dev-master-byron NODE=latest docker-compose up --detach
|
82
98
|
|
83
|
-
|
84
|
-
|
85
|
-
|
99
|
+
or
|
100
|
+
|
101
|
+
# Shelley testnet
|
102
|
+
$ NODE=1.13.0 WALLET=dev-master-shelley NODE_CONFIG_PATH=`pwd`/spec/shelley-testnet/ docker-compose -f docker-compose-shelley.yml up
|
86
103
|
|
87
104
|
Run tests on top of that:
|
88
105
|
|
89
106
|
$ rake
|
90
107
|
|
108
|
+
Clean up docker stuff after, e.g.:
|
109
|
+
|
110
|
+
$ NETWORK=... docker-compose down --rmi all --remove-orphans
|
91
111
|
|
92
112
|
## Contributing
|
93
113
|
|
data/Rakefile
CHANGED
@@ -4,3 +4,13 @@ require "rspec/core/rake_task"
|
|
4
4
|
RSpec::Core::RakeTask.new(:spec)
|
5
5
|
|
6
6
|
task :default => :spec
|
7
|
+
|
8
|
+
require_relative "lib/cardano_wallet"
|
9
|
+
task :wait_until_node_synced do
|
10
|
+
desc "Wait for node to be synced"
|
11
|
+
network = CardanoWallet.new.misc.network
|
12
|
+
while network.information["sync_progress"]["status"] == "syncing" do
|
13
|
+
puts "Syncing... #{network.information["sync_progress"]["progress"]["quantity"]}%"
|
14
|
+
sleep 15
|
15
|
+
end
|
16
|
+
end
|
data/cardano_wallet.gemspec
CHANGED
@@ -31,6 +31,7 @@ Gem::Specification.new do |spec|
|
|
31
31
|
|
32
32
|
spec.add_development_dependency 'rake', '~> 12.3'
|
33
33
|
spec.add_development_dependency 'rspec', '~> 3.7'
|
34
|
+
spec.add_development_dependency 'bip_mnemonic', '~> 0.0.4'
|
34
35
|
spec.add_development_dependency 'codecov'
|
35
36
|
spec.add_development_dependency 'simplecov'
|
36
37
|
|
data/dev
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
NETWORK=testnet WALLET=dev-master-byron NODE=master docker-compose $1
|
@@ -0,0 +1,27 @@
|
|
1
|
+
version: "3.5"
|
2
|
+
|
3
|
+
services:
|
4
|
+
cardano-node:
|
5
|
+
image: inputoutput/cardano-node:${NODE}
|
6
|
+
volumes:
|
7
|
+
- node-db:/data
|
8
|
+
- node-ipc:/ipc
|
9
|
+
- ${NODE_CONFIG_PATH}:/config
|
10
|
+
command: run --socket-path /ipc/node.socket --config /config/shelley_testnet-config.json --topology /config/shelley_testnet-topology.json --database-path /data
|
11
|
+
restart: on-failure
|
12
|
+
|
13
|
+
cardano-wallet:
|
14
|
+
image: inputoutput/cardano-wallet:${WALLET}
|
15
|
+
volumes:
|
16
|
+
- wallet-shelley-db:/wallet-db
|
17
|
+
- node-ipc:/ipc
|
18
|
+
- ${NODE_CONFIG_PATH}:/config
|
19
|
+
ports:
|
20
|
+
- 8090:8090
|
21
|
+
command: serve --testnet /config/shelley_testnet-genesis.json --node-socket /ipc/node.socket --database /wallet-db --listen-address 0.0.0.0
|
22
|
+
restart: on-failure
|
23
|
+
|
24
|
+
volumes:
|
25
|
+
node-db:
|
26
|
+
wallet-shelley-db:
|
27
|
+
node-ipc:
|
data/lib/cardano_wallet/base.rb
CHANGED
data/lib/cardano_wallet/byron.rb
CHANGED
@@ -161,6 +161,12 @@ module CardanoWallet
|
|
161
161
|
super
|
162
162
|
end
|
163
163
|
|
164
|
+
# Get tx by id
|
165
|
+
# @see https://input-output-hk.github.io/cardano-wallet/api/edge/#operation/getByronTransaction
|
166
|
+
def get(wid, tx_id)
|
167
|
+
self.class.get("/byron-wallets/#{wid}/transactions/#{tx_id}")
|
168
|
+
end
|
169
|
+
|
164
170
|
# List all Byron wallet's transactions.
|
165
171
|
# @see https://input-output-hk.github.io/cardano-wallet/api/edge/#operation/listByronTransactions
|
166
172
|
#
|
data/lib/cardano_wallet/misc.rb
CHANGED
@@ -38,8 +38,8 @@ module CardanoWallet
|
|
38
38
|
|
39
39
|
# Check network parameters
|
40
40
|
# @see https://input-output-hk.github.io/cardano-wallet/api/edge/#operation/getNetworkParameters
|
41
|
-
def parameters
|
42
|
-
self.class.get("/network/parameters
|
41
|
+
def parameters
|
42
|
+
self.class.get("/network/parameters")
|
43
43
|
end
|
44
44
|
|
45
45
|
end
|
@@ -42,6 +42,12 @@ module CardanoWallet
|
|
42
42
|
StakePools.new @opt
|
43
43
|
end
|
44
44
|
|
45
|
+
# API for Migrations
|
46
|
+
# @see https://input-output-hk.github.io/cardano-wallet/api/#tag/Migrations
|
47
|
+
def migrations
|
48
|
+
Migrations.new @opt
|
49
|
+
end
|
50
|
+
|
45
51
|
end
|
46
52
|
|
47
53
|
# API for Wallets
|
@@ -168,6 +174,12 @@ module CardanoWallet
|
|
168
174
|
super
|
169
175
|
end
|
170
176
|
|
177
|
+
# Get tx by id
|
178
|
+
# @see https://input-output-hk.github.io/cardano-wallet/api/edge/#operation/getTransaction
|
179
|
+
def get(wid, tx_id)
|
180
|
+
self.class.get("/wallets/#{wid}/transactions/#{tx_id}")
|
181
|
+
end
|
182
|
+
|
171
183
|
# List all wallet's transactions
|
172
184
|
# @see https://input-output-hk.github.io/cardano-wallet/api/edge/#operation/listTransactions
|
173
185
|
#
|
@@ -183,17 +195,18 @@ module CardanoWallet
|
|
183
195
|
# @param wid [String] source wallet id
|
184
196
|
# @param passphrase [String] source wallet's passphrase
|
185
197
|
# @param payments [Hash] addres, amount pair
|
198
|
+
# @param q [Hash] query param (currently only withdrawRewards = true | false)
|
186
199
|
#
|
187
200
|
# @example
|
188
|
-
# create(wid, passphrase, {addr1: 1000000})
|
189
|
-
def create(wid, passphrase, payments)
|
201
|
+
# create(wid, passphrase, {addr1: 1000000}, q)
|
202
|
+
def create(wid, passphrase, payments, q = {})
|
190
203
|
payments_formatted = Utils.format_payments(payments)
|
191
|
-
|
204
|
+
q.empty? ? query = '' : query = Utils.to_query(q)
|
205
|
+
self.class.post("/wallets/#{wid}/transactions#{query}",
|
192
206
|
:body => { :payments => payments_formatted,
|
193
207
|
:passphrase => passphrase
|
194
208
|
}.to_json,
|
195
209
|
:headers => { 'Content-Type' => 'application/json' } )
|
196
|
-
|
197
210
|
end
|
198
211
|
|
199
212
|
# Estimate fees for transaction
|
@@ -224,8 +237,9 @@ module CardanoWallet
|
|
224
237
|
|
225
238
|
# List all stake pools
|
226
239
|
# @see https://input-output-hk.github.io/cardano-wallet/api/edge/#operation/listStakePools
|
227
|
-
def list
|
228
|
-
|
240
|
+
def list(stake = {})
|
241
|
+
stake.empty? ? query = '' : query = Utils.to_query(stake)
|
242
|
+
self.class.get("/stake-pools#{query}")
|
229
243
|
end
|
230
244
|
|
231
245
|
# Join stake pool
|
@@ -250,5 +264,33 @@ module CardanoWallet
|
|
250
264
|
self.class.get("/wallets/#{wid}/delegation-fees")
|
251
265
|
end
|
252
266
|
end
|
267
|
+
|
268
|
+
# Shelley migrations
|
269
|
+
# @see https://input-output-hk.github.io/cardano-wallet/api/#tag/Migrations
|
270
|
+
class Migrations < Base
|
271
|
+
def initialize opt
|
272
|
+
super
|
273
|
+
end
|
274
|
+
|
275
|
+
# Calculate migration cost
|
276
|
+
# @see https://input-output-hk.github.io/cardano-wallet/api/#operation/getShelleyWalletMigrationInfo
|
277
|
+
def cost(wid)
|
278
|
+
self.class.get("/wallets/#{wid}/migrations")
|
279
|
+
end
|
280
|
+
|
281
|
+
# Migrate all funds from Shelley wallet.
|
282
|
+
# @see https://input-output-hk.github.io/cardano-wallet/api/#operation/migrateShelleyWallet
|
283
|
+
# @param wid [String] wallet id
|
284
|
+
# @param passphrase [String] wallet's passphrase
|
285
|
+
# @param [Array] array of addresses
|
286
|
+
def migrate(wid, passphrase, addresses)
|
287
|
+
self.class.post("/wallets/#{wid}/migrations",
|
288
|
+
:body => { :addresses => addresses,
|
289
|
+
:passphrase => passphrase
|
290
|
+
}.to_json,
|
291
|
+
:headers => { 'Content-Type' => 'application/json' } )
|
292
|
+
end
|
293
|
+
|
294
|
+
end
|
253
295
|
end
|
254
296
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cardano_wallet
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Piotr Stachyra
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-07-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: httparty
|
@@ -52,6 +52,20 @@ dependencies:
|
|
52
52
|
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '3.7'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: bip_mnemonic
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 0.0.4
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: 0.0.4
|
55
69
|
- !ruby/object:Gem::Dependency
|
56
70
|
name: codecov
|
57
71
|
requirement: !ruby/object:Gem::Requirement
|
@@ -88,6 +102,7 @@ extensions: []
|
|
88
102
|
extra_rdoc_files: []
|
89
103
|
files:
|
90
104
|
- ".github/workflows/gem-push.yml"
|
105
|
+
- ".github/workflows/nightly.yml"
|
91
106
|
- ".github/workflows/tests.yml"
|
92
107
|
- ".gitignore"
|
93
108
|
- ".rakeTasks"
|
@@ -100,6 +115,8 @@ files:
|
|
100
115
|
- bin/console
|
101
116
|
- bin/setup
|
102
117
|
- cardano_wallet.gemspec
|
118
|
+
- dev
|
119
|
+
- docker-compose-shelley.yml
|
103
120
|
- docker-compose.yml
|
104
121
|
- lib/cardano_wallet.rb
|
105
122
|
- lib/cardano_wallet/base.rb
|