cardano_wallet 0.1.1 → 0.1.6
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 +13 -4
- data/Rakefile +10 -0
- data/cardano_wallet.gemspec +1 -0
- data/docker-compose-shelley.yml +27 -0
- data/lib/cardano_wallet/byron.rb +42 -0
- data/lib/cardano_wallet/shelley.rb +14 -6
- data/lib/cardano_wallet/version.rb +1 -1
- metadata +18 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 170a67d50c0941bcc6827d81d5025594aecd75fcde3736e0d28c1e11efec839f
|
4
|
+
data.tar.gz: 0e4e039fac16f50a6a6bb94c381ddf4c89b14cb3ab2f09556054fc4288238c21
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 37902c4bc67884beb01bad10a4771ef1fb9cfcd7ae2a722b25e856249ba9ec92580dc076960c0b7e288729f852c2ff778589eff67f1d34465c320d0fde8b189c
|
7
|
+
data.tar.gz: 5370e532f52ff2459957309d2109ae1cfebf2e99fe3332a39a5580e0d073fac69b6080a4fd1ab265f6b781ce483d17275df4609332332904aa03b0f686b37775
|
@@ -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: master
|
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: master
|
data/README.md
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
|
1
2
|
<a href="https://badge.fury.io/rb/cardano_wallet">
|
2
3
|
<img src="https://badge.fury.io/rb/cardano_wallet.svg" alt="Gem Version">
|
3
4
|
</a>
|
@@ -10,6 +11,9 @@
|
|
10
11
|
<a href="https://github.com/piotr-iohk/cardano-wallet-rb/actions?query=workflow%3ATests">
|
11
12
|
<img src="https://github.com/piotr-iohk/cardano-wallet-rb/workflows/Tests/badge.svg" />
|
12
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>
|
13
17
|
|
14
18
|
# cardano-wallet-rb
|
15
19
|
|
@@ -87,18 +91,23 @@ Refer to [documentation](https://rubydoc.info/gems/cardano_wallet) for more deta
|
|
87
91
|
|
88
92
|
## Development
|
89
93
|
|
90
|
-
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:
|
91
95
|
|
96
|
+
# Byron testnet
|
92
97
|
$ NETWORK=testnet WALLET=dev-master-byron NODE=latest docker-compose up --detach
|
93
98
|
|
94
|
-
|
95
|
-
|
96
|
-
|
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
|
97
103
|
|
98
104
|
Run tests on top of that:
|
99
105
|
|
100
106
|
$ rake
|
101
107
|
|
108
|
+
Clean up docker stuff after, e.g.:
|
109
|
+
|
110
|
+
$ NETWORK=... docker-compose down --rmi all --remove-orphans
|
102
111
|
|
103
112
|
## Contributing
|
104
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
|
|
@@ -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/byron.rb
CHANGED
@@ -22,6 +22,12 @@ module CardanoWallet
|
|
22
22
|
Addresses.new @opt
|
23
23
|
end
|
24
24
|
|
25
|
+
# API for CoinSelections
|
26
|
+
# @see https://input-output-hk.github.io/cardano-wallet/api/edge/#tag/Byron-Coin-Selections
|
27
|
+
def coin_selections
|
28
|
+
CoinSelections.new @opt
|
29
|
+
end
|
30
|
+
|
25
31
|
# Get API for Byron transactions
|
26
32
|
# @see https://input-output-hk.github.io/cardano-wallet/api/edge/#operation/postByronTransactionFee
|
27
33
|
def transactions
|
@@ -152,6 +158,36 @@ module CardanoWallet
|
|
152
158
|
self.class.put("/byron-wallets/#{wid}/addresses/#{addr_id}")
|
153
159
|
end
|
154
160
|
|
161
|
+
# Import addresses to Byron wallet.
|
162
|
+
# @see https://input-output-hk.github.io/cardano-wallet/api/edge/#operation/importAddresses
|
163
|
+
# @param wid [String] wallet id
|
164
|
+
# @param addresses [Array] array of addresses
|
165
|
+
def bulk_import(wid, addresses)
|
166
|
+
self.class.put("/byron-wallets/#{wid}/addresses",
|
167
|
+
:body => { :addresses => addresses
|
168
|
+
}.to_json,
|
169
|
+
:headers => { 'Content-Type' => 'application/json' } )
|
170
|
+
end
|
171
|
+
end
|
172
|
+
|
173
|
+
# API for CoinSelections
|
174
|
+
# @see https://input-output-hk.github.io/cardano-wallet/api/edge/#tag/Byron-Coin-Selections
|
175
|
+
class CoinSelections < Base
|
176
|
+
def initialize opt
|
177
|
+
super
|
178
|
+
end
|
179
|
+
|
180
|
+
# Show random coin selection for particular payment
|
181
|
+
# @see https://input-output-hk.github.io/cardano-wallet/api/edge/#operation/byronSelectCoins
|
182
|
+
#
|
183
|
+
# @example
|
184
|
+
# random(wid, {address1: 123, address2: 456})
|
185
|
+
def random(wid, payments)
|
186
|
+
payments_formatted = Utils.format_payments(payments)
|
187
|
+
self.class.post("/byron-wallets/#{wid}/coin-selections/random",
|
188
|
+
:body => {:payments => payments_formatted}.to_json,
|
189
|
+
:headers => { 'Content-Type' => 'application/json' })
|
190
|
+
end
|
155
191
|
end
|
156
192
|
|
157
193
|
# Byron transactions
|
@@ -161,6 +197,12 @@ module CardanoWallet
|
|
161
197
|
super
|
162
198
|
end
|
163
199
|
|
200
|
+
# Get tx by id
|
201
|
+
# @see https://input-output-hk.github.io/cardano-wallet/api/edge/#operation/getByronTransaction
|
202
|
+
def get(wid, tx_id)
|
203
|
+
self.class.get("/byron-wallets/#{wid}/transactions/#{tx_id}")
|
204
|
+
end
|
205
|
+
|
164
206
|
# List all Byron wallet's transactions.
|
165
207
|
# @see https://input-output-hk.github.io/cardano-wallet/api/edge/#operation/listByronTransactions
|
166
208
|
#
|
@@ -174,6 +174,12 @@ module CardanoWallet
|
|
174
174
|
super
|
175
175
|
end
|
176
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
|
+
|
177
183
|
# List all wallet's transactions
|
178
184
|
# @see https://input-output-hk.github.io/cardano-wallet/api/edge/#operation/listTransactions
|
179
185
|
#
|
@@ -189,17 +195,18 @@ module CardanoWallet
|
|
189
195
|
# @param wid [String] source wallet id
|
190
196
|
# @param passphrase [String] source wallet's passphrase
|
191
197
|
# @param payments [Hash] addres, amount pair
|
198
|
+
# @param q [Hash] query param (currently only withdrawRewards = true | false)
|
192
199
|
#
|
193
200
|
# @example
|
194
|
-
# create(wid, passphrase, {addr1: 1000000})
|
195
|
-
def create(wid, passphrase, payments)
|
201
|
+
# create(wid, passphrase, {addr1: 1000000}, q)
|
202
|
+
def create(wid, passphrase, payments, q = {})
|
196
203
|
payments_formatted = Utils.format_payments(payments)
|
197
|
-
|
204
|
+
q.empty? ? query = '' : query = Utils.to_query(q)
|
205
|
+
self.class.post("/wallets/#{wid}/transactions#{query}",
|
198
206
|
:body => { :payments => payments_formatted,
|
199
207
|
:passphrase => passphrase
|
200
208
|
}.to_json,
|
201
209
|
:headers => { 'Content-Type' => 'application/json' } )
|
202
|
-
|
203
210
|
end
|
204
211
|
|
205
212
|
# Estimate fees for transaction
|
@@ -230,8 +237,9 @@ module CardanoWallet
|
|
230
237
|
|
231
238
|
# List all stake pools
|
232
239
|
# @see https://input-output-hk.github.io/cardano-wallet/api/edge/#operation/listStakePools
|
233
|
-
def list
|
234
|
-
|
240
|
+
def list(stake = {})
|
241
|
+
stake.empty? ? query = '' : query = Utils.to_query(stake)
|
242
|
+
self.class.get("/stake-pools#{query}")
|
235
243
|
end
|
236
244
|
|
237
245
|
# Join stake pool
|
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.6
|
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-16 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"
|
@@ -101,6 +116,7 @@ files:
|
|
101
116
|
- bin/setup
|
102
117
|
- cardano_wallet.gemspec
|
103
118
|
- dev
|
119
|
+
- docker-compose-shelley.yml
|
104
120
|
- docker-compose.yml
|
105
121
|
- lib/cardano_wallet.rb
|
106
122
|
- lib/cardano_wallet/base.rb
|