tezos_client 0.4.14 → 0.4.15
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +4 -4
- data/lib/tezos_client/client_interface/block_contextual.rb +3 -3
- data/lib/tezos_client/client_interface/client_wrapper.rb +4 -4
- data/lib/tezos_client/client_interface/contract.rb +1 -1
- data/lib/tezos_client/client_interface/key.rb +6 -6
- data/lib/tezos_client/client_interface/misc.rb +1 -1
- data/lib/tezos_client/liquidity_inteface/liquidity_wrapper.rb +9 -6
- data/lib/tezos_client/liquidity_interface.rb +16 -10
- data/lib/tezos_client/rpc_interface/request_manager.rb +2 -2
- data/lib/tezos_client/version.rb +1 -1
- data/lib/tezos_client.rb +9 -0
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6918aa7a0020b8bc535f58720f2a330cd5842821f9fe4106ad6a419a3a2144f6
|
4
|
+
data.tar.gz: 92ea0ac98411dbaf325ba5a4de15b9d7e20c0fdc2f2a39c8385a68316a9be62d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 73c784ec8610a4134a06e3eafe65e35f898ec319da10b55f4eb843ad081e0a7420782dee94913ba24cfe38cb136646b8df86de3cdb6ccf548a65f656f5386f46
|
7
|
+
data.tar.gz: e05b46acbc78a971de657dd85a8f20eb4b964958309df343a4c78950f246300123591592778870a2826d80b8bab116bca53c34d894f1dabd19f4de9bfe310171
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
tezos_client (0.4.
|
4
|
+
tezos_client (0.4.15)
|
5
5
|
activesupport (~> 6.0.0)
|
6
6
|
base58 (~> 0.2.3)
|
7
7
|
bip_mnemonic (~> 0.0.2)
|
@@ -47,7 +47,7 @@ GEM
|
|
47
47
|
domain_name (0.5.20190701)
|
48
48
|
unf (>= 0.0.5, < 1.0.0)
|
49
49
|
erubi (1.9.0)
|
50
|
-
ffi (1.11.
|
50
|
+
ffi (1.11.3)
|
51
51
|
hashdiff (1.0.0)
|
52
52
|
http-cookie (1.0.3)
|
53
53
|
domain_name (~> 0.5)
|
@@ -57,7 +57,7 @@ GEM
|
|
57
57
|
i18n (1.7.0)
|
58
58
|
concurrent-ruby (~> 1.0)
|
59
59
|
jaro_winkler (1.5.3)
|
60
|
-
loofah (2.3.
|
60
|
+
loofah (2.3.1)
|
61
61
|
crass (~> 1.0.2)
|
62
62
|
nokogiri (>= 1.5.9)
|
63
63
|
method_source (0.9.2)
|
@@ -70,7 +70,7 @@ GEM
|
|
70
70
|
ffi
|
71
71
|
multi_xml (0.6.0)
|
72
72
|
netrc (0.11.0)
|
73
|
-
nokogiri (1.10.
|
73
|
+
nokogiri (1.10.5)
|
74
74
|
mini_portile2 (~> 2.4.0)
|
75
75
|
parallel (1.18.0)
|
76
76
|
parser (2.6.5.0)
|
@@ -5,9 +5,9 @@ class TezosClient
|
|
5
5
|
# Commands managing keys and accounts
|
6
6
|
module BlockContextual
|
7
7
|
def transfer(quantity:, from:, to:, dry_run: false, arg: nil)
|
8
|
-
cmd = "transfer
|
9
|
-
cmd
|
10
|
-
cmd
|
8
|
+
cmd = ["transfer", quantity, "from", from, "to", to]
|
9
|
+
cmd << "--dry-run" if dry_run
|
10
|
+
cmd += ["--arg", "#{arg}"] unless arg.nil?
|
11
11
|
|
12
12
|
res = call_client(cmd)
|
13
13
|
end
|
@@ -5,8 +5,8 @@ class TezosClient
|
|
5
5
|
# Wrapper used to call the tezos-client binary
|
6
6
|
module ClientWrapper
|
7
7
|
def call_client(command)
|
8
|
-
cmd =
|
9
|
-
Open3.popen3(cmd) do |_stdin, stdout, stderr, wait_thr|
|
8
|
+
cmd = client_cmd + command
|
9
|
+
Open3.popen3(*cmd) do |_stdin, stdout, stderr, wait_thr|
|
10
10
|
err = stderr.read
|
11
11
|
status = wait_thr.value.exitstatus
|
12
12
|
|
@@ -26,9 +26,9 @@ class TezosClient
|
|
26
26
|
end
|
27
27
|
|
28
28
|
def client_cmd
|
29
|
-
res = "tezos-client -l"
|
29
|
+
res = ["tezos-client", "-l"]
|
30
30
|
if config_file
|
31
|
-
res
|
31
|
+
res += ["-c", config_file]
|
32
32
|
end
|
33
33
|
res
|
34
34
|
end
|
@@ -5,7 +5,7 @@ class TezosClient
|
|
5
5
|
# Commands managing keys and accounts
|
6
6
|
module Contract
|
7
7
|
def known_contracts
|
8
|
-
res = call_client("list known contracts")
|
8
|
+
res = call_client(["list", "known", "contracts"])
|
9
9
|
res.lines.reduce({}) do |acc, contract_output|
|
10
10
|
address_format = /([^:]+): (\w+)/
|
11
11
|
res = address_format.match(contract_output)
|
@@ -5,11 +5,11 @@ class TezosClient
|
|
5
5
|
# Commands managing keys and accounts
|
6
6
|
module Key
|
7
7
|
def gen_keys(name)
|
8
|
-
call_client("gen keys
|
8
|
+
call_client(["gen", "keys", name])
|
9
9
|
end
|
10
10
|
|
11
11
|
def addresses
|
12
|
-
output = call_client("list known addresses")
|
12
|
+
output = call_client(["list", "known", "addresses"])
|
13
13
|
output.lines.reduce({}) do |acc, address_output|
|
14
14
|
address_format = /([^:]+): (\w+) /
|
15
15
|
res = address_format.match(address_output)
|
@@ -18,15 +18,15 @@ class TezosClient
|
|
18
18
|
end
|
19
19
|
|
20
20
|
def import_public_key(name, public_key, force: false)
|
21
|
-
cmd = "import public key
|
22
|
-
cmd
|
21
|
+
cmd = ["import", "public", "key", name, public_key]
|
22
|
+
cmd << "--force" if force
|
23
23
|
|
24
24
|
call_client(cmd)
|
25
25
|
end
|
26
26
|
|
27
27
|
def import_secret_key(name, secret_key, force: false)
|
28
|
-
cmd = "import secret key
|
29
|
-
cmd
|
28
|
+
cmd = ["import", "secret", "key", name, secret_key]
|
29
|
+
cmd << "--force" if force
|
30
30
|
|
31
31
|
call_client(cmd)
|
32
32
|
end
|
@@ -7,7 +7,7 @@ class TezosClient
|
|
7
7
|
class ClientInterface
|
8
8
|
module Misc
|
9
9
|
def bootstrapped
|
10
|
-
call_client("bootstrapped") do |output|
|
10
|
+
call_client(["bootstrapped"]) do |output|
|
11
11
|
output_format = /Current head: ([^ ]+) \(timestamp: ([^,]+), validation: (.+)\)/
|
12
12
|
res = output_format.match(output)
|
13
13
|
head = res[1]
|
@@ -5,17 +5,17 @@ class TezosClient
|
|
5
5
|
# Wrapper used to call the tezos-client binary
|
6
6
|
module LiquidityWrapper
|
7
7
|
def call_liquidity(command, verbose: false)
|
8
|
-
cmd =
|
9
|
-
log cmd
|
10
|
-
Open3.popen3(cmd) do |_stdin, stdout, stderr, wait_thr|
|
8
|
+
cmd = liquidity_cmd(verbose: verbose).concat command
|
9
|
+
log cmd.to_s
|
10
|
+
Open3.popen3(*cmd) do |_stdin, stdout, stderr, wait_thr|
|
11
11
|
err = stderr.read
|
12
12
|
status = wait_thr.value.exitstatus
|
13
|
+
log err
|
13
14
|
|
14
15
|
if status != 0
|
15
16
|
raise "command '#{cmd}' existed with status #{status}: #{err}"
|
16
17
|
end
|
17
18
|
|
18
|
-
log err
|
19
19
|
output = stdout.read
|
20
20
|
|
21
21
|
if block_given?
|
@@ -27,8 +27,11 @@ class TezosClient
|
|
27
27
|
end
|
28
28
|
|
29
29
|
def liquidity_cmd(verbose:)
|
30
|
-
|
31
|
-
|
30
|
+
liquidity_request = ["liquidity"]
|
31
|
+
liquidity_request << "--verbose" if verbose
|
32
|
+
liquidity_request << "--tezos-node"
|
33
|
+
liquidity_request << tezos_node.to_s
|
34
|
+
liquidity_request
|
32
35
|
end
|
33
36
|
end
|
34
37
|
end
|
@@ -16,10 +16,10 @@ class TezosClient
|
|
16
16
|
end
|
17
17
|
|
18
18
|
def format_params(params)
|
19
|
-
return
|
19
|
+
return [] if params.nil?
|
20
|
+
return [params] if params.is_a? String
|
20
21
|
|
21
|
-
params
|
22
|
-
params.map { |s| "'#{s}'" }.join(" ")
|
22
|
+
params
|
23
23
|
end
|
24
24
|
|
25
25
|
def initial_storage(args)
|
@@ -29,7 +29,9 @@ class TezosClient
|
|
29
29
|
init_params = format_params(init_params)
|
30
30
|
|
31
31
|
with_tempfile(".json") do |json_file|
|
32
|
-
|
32
|
+
cmd_opt = ["--source", from.to_s,"--json", script.to_s, "-o", json_file.path.to_s, "--init-storage"] + init_params
|
33
|
+
|
34
|
+
call_liquidity cmd_opt, verbose: options[:verbose]
|
33
35
|
JSON.parse json_file.read.strip
|
34
36
|
end
|
35
37
|
end
|
@@ -67,7 +69,7 @@ class TezosClient
|
|
67
69
|
json_init_script_path = "#{script_basename}.initializer.tz.json"
|
68
70
|
json_contract_script_path = "#{script_basename}.tz.json"
|
69
71
|
|
70
|
-
call_liquidity "--json #{script_copy_path}"
|
72
|
+
call_liquidity ["--json", "#{script_copy_path}"]
|
71
73
|
|
72
74
|
json_contract_script_file = File.open(json_contract_script_path)
|
73
75
|
json_contract_script = JSON.parse(json_contract_script_file.read)
|
@@ -110,7 +112,11 @@ class TezosClient
|
|
110
112
|
script = args.fetch :script
|
111
113
|
init_params = args.fetch :init_params
|
112
114
|
|
113
|
-
|
115
|
+
cmd_opt = ["--source", "#{source}"]
|
116
|
+
cmd_opt << "--spendable" if spendable
|
117
|
+
cmd_opt << "--delegatable" if delegatable
|
118
|
+
cmd_opt += ["--amount", "#{amount}tz", "#{script}", "--forge-deploy", init_params]
|
119
|
+
res = call_liquidity cmd_opt
|
114
120
|
res.strip
|
115
121
|
end
|
116
122
|
|
@@ -119,20 +125,20 @@ class TezosClient
|
|
119
125
|
end
|
120
126
|
|
121
127
|
def get_storage(script:, contract_address:)
|
122
|
-
res = call_liquidity "#{script} --get-storage #{contract_address}"
|
128
|
+
res = call_liquidity ["#{script}", "--get-storage", "#{contract_address}"]
|
123
129
|
res.strip
|
124
130
|
end
|
125
131
|
|
126
132
|
def call_parameters(script:, parameters:)
|
127
|
-
|
133
|
+
params = format_params parameters
|
128
134
|
with_tempfile(".json") do |json_file|
|
129
|
-
res = call_liquidity "--json -o #{json_file.path} #{script} --data
|
135
|
+
res = call_liquidity ["--json", "-o", "#{json_file.path}", "#{script}", "--data"] + params
|
130
136
|
JSON.parse res
|
131
137
|
end
|
132
138
|
end
|
133
139
|
|
134
140
|
def pack_data(data:, type:)
|
135
|
-
res = call_liquidity "--pack
|
141
|
+
res = call_liquidity ["--pack", "#{data}", "#{type}"]
|
136
142
|
res.strip
|
137
143
|
end
|
138
144
|
end
|
@@ -71,7 +71,7 @@ class TezosClient
|
|
71
71
|
|
72
72
|
def get_error_id(error)
|
73
73
|
error[:id]
|
74
|
-
rescue TypeError
|
74
|
+
rescue TypeError, NoMethodError
|
75
75
|
nil
|
76
76
|
end
|
77
77
|
|
@@ -87,7 +87,7 @@ class TezosClient
|
|
87
87
|
end
|
88
88
|
|
89
89
|
def failed!(url:, code:, responses:)
|
90
|
-
error = responses.is_a?(
|
90
|
+
error = responses.is_a?(Array) ? responses[0] : responses
|
91
91
|
raise exception_klass(error).new(
|
92
92
|
error: error,
|
93
93
|
url: url,
|
data/lib/tezos_client/version.rb
CHANGED
data/lib/tezos_client.rb
CHANGED
@@ -229,8 +229,17 @@ class TezosClient
|
|
229
229
|
end
|
230
230
|
|
231
231
|
def block_include_operation?(operation_id, block_id)
|
232
|
+
retries ||= 0
|
233
|
+
|
232
234
|
operations = rpc_interface.get("chains/main/blocks/#{block_id}/operation_hashes")
|
233
235
|
operations.flatten.include? operation_id
|
236
|
+
rescue TezosClient::RpcRequestFailure
|
237
|
+
if (retries += 1) < 3
|
238
|
+
sleep(2)
|
239
|
+
retry
|
240
|
+
else
|
241
|
+
raise
|
242
|
+
end
|
234
243
|
end
|
235
244
|
|
236
245
|
private
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tezos_client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.15
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Pierre Michard
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-
|
11
|
+
date: 2019-12-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -285,7 +285,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
285
285
|
- !ruby/object:Gem::Version
|
286
286
|
version: '0'
|
287
287
|
requirements: []
|
288
|
-
|
288
|
+
rubyforge_project:
|
289
|
+
rubygems_version: 2.7.6
|
289
290
|
signing_key:
|
290
291
|
specification_version: 4
|
291
292
|
summary: Wrapper to the tezos client.
|