tezos_client 0.3.3 → 0.3.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4aa1db24bd40a81a56e7ae68975a143518c0cf57c336b2730af4d594b4ac1b37
4
- data.tar.gz: d405e80590bdbbef3008ce472ce56f903af70fdd18b00eb58280c8689c6ae545
3
+ metadata.gz: daccce9860609c6800e9f8a5f3052268fa2262e07622f052a32ae3b6b34062e2
4
+ data.tar.gz: c4ad471f67a8779a69990024c676cbdbcdb708457fc4f62ef0a35ab6dfcf4e2e
5
5
  SHA512:
6
- metadata.gz: 234b4f946357dc3bb5f8c55b6b4ac93b2e62d4fa40505fe67a5585cbd8025d814bffafdf74bb0a1f0630b46c0edd3ac6263a75228156618e535020d26ae98ac8
7
- data.tar.gz: 464c118dc38b4a2686c90c5b2fe4d693e5c9ceb7222b8500e162fa7d641dea81544ea044b6e97279824bc7be8f7074d9a2730fcd4c73e2505076ed1077617ec6
6
+ metadata.gz: 850f1591ded42c96efcf75b5080c7939f5a3e1c7e652026c8fb415d4db7ea9229ab1eabf5eaea0f385dac87aa0e3cbb6adcce739049d6901abe3c70506eaa97a
7
+ data.tar.gz: 9d4cc40e68a7c66e892c9310a92956648d0547cd4ec88c36d7902aa9ab3c846c46dbb6c53b93468421fedd386658b17bcde6adb0d110b600598860e30c9cb8c7
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- tezos_client (0.3.3)
4
+ tezos_client (0.3.4)
5
5
  activesupport (~> 5.2.0)
6
6
  base58 (~> 0.2.3)
7
7
  bip_mnemonic (~> 0.0.2)
@@ -95,23 +95,22 @@ class TezosClient
95
95
  signing_key = signing_key(secret_key)
96
96
  verify_key = signing_key.verify_key
97
97
  hex_pubkey = verify_key.to_s.to_hex
98
-
99
98
  encode_tz(:edpk, hex_pubkey)
100
99
  end
101
100
 
102
101
  def public_key_to_address(public_key)
103
- public_key = decode_tz(public_key) do |type, _key|
102
+ hex_public_key = decode_tz(public_key) do |type, _key|
104
103
  raise "invalid public key: #{public_key} " unless type == :edpk
105
104
  end
106
105
 
107
- hash = RbNaCl::Hash::Blake2b.digest(public_key, digest_size: 20)
106
+ hash = RbNaCl::Hash::Blake2b.digest(hex_public_key.to_bin, digest_size: 20)
108
107
  hex_hash = hash.to_hex
109
108
 
110
109
  encode_tz(:tz1, hex_hash)
111
110
  end
112
111
 
113
- def generate_key(mnemonic: nil, wallet_seed: nil, path: nil)
114
- signing_key = generate_signing_key(mnemonic: mnemonic, wallet_seed: wallet_seed, path: path).to_bytes.to_hex
112
+ def generate_key(mnemonic: nil, password: nil, wallet_seed: nil, path: nil)
113
+ signing_key = generate_signing_key(mnemonic: mnemonic, password: password, wallet_seed: wallet_seed, path: path).to_bytes.to_hex
115
114
 
116
115
  secret_key = encode_tz(:edsk2, signing_key)
117
116
  public_key = secret_key_to_public_key(secret_key)
@@ -179,14 +178,18 @@ class TezosClient
179
178
  end
180
179
 
181
180
  private
182
- def generate_signing_key(mnemonic: nil, wallet_seed: nil, path: nil)
181
+ def generate_signing_key(mnemonic: nil, password: nil, wallet_seed: nil, path: nil)
183
182
  if mnemonic
184
- wallet_seed = BipMnemonic.to_seed(mnemonic: mnemonic)
183
+ # ensure mnemonic validity
184
+ BipMnemonic.to_entropy(mnemonic: mnemonic)
185
+ wallet_seed = BipMnemonic.to_seed(mnemonic: mnemonic, password: password)
185
186
  end
186
187
  if path && wallet_seed
187
188
  master = MoneyTree::Master.new seed_hex: wallet_seed
188
189
  node = master.node_for_path path
189
190
  node.private_key
191
+ elsif wallet_seed
192
+ RbNaCl::SigningKey.new(wallet_seed.to_bin[0...32])
190
193
  else
191
194
  RbNaCl::SigningKey.generate
192
195
  end
@@ -0,0 +1,35 @@
1
+ class TezosClient
2
+ class ActivateAccountOperation < Operation
3
+
4
+ def initialize_operation_args
5
+ @operation_args = default_args.merge(
6
+ **@init_args,
7
+ operation_kind: operation_kind,
8
+ branch: branch)
9
+ end
10
+
11
+ def operation_kind
12
+ :activate_account
13
+ end
14
+
15
+ def ensure_applied!(rpc_response)
16
+ balance_updates = rpc_response[:metadata][:balance_updates]
17
+ raise "Operation failed\n #{rpc_response.pretty_inspect}" if balance_updates.nil?
18
+ if block_given?
19
+ yield rpc_response[:metadata]
20
+ else
21
+ rpc_response[:metadata]
22
+ end
23
+ end
24
+
25
+ private
26
+
27
+ def default_args
28
+ {
29
+ gas_limit: 0.1,
30
+ storage_limit: 0.006,
31
+ fee: 0.05
32
+ }
33
+ end
34
+ end
35
+ end
@@ -53,6 +53,15 @@ class TezosClient
53
53
  operation
54
54
  end
55
55
 
56
+
57
+ def activate_account_operation(args)
58
+ {
59
+ kind: "activate_account",
60
+ pkh: args.fetch(:pkh),
61
+ secret: args.fetch(:secret)
62
+ }
63
+ end
64
+
56
65
  def operation(args)
57
66
  operation_kind = args.fetch(:operation_kind) { raise ArgumentError, ":operation_kind argument missing" }
58
67
  send("#{operation_kind}_operation", args)
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  class TezosClient
4
- VERSION = "0.3.3"
4
+ VERSION = "0.3.4"
5
5
  end
data/lib/tezos_client.rb CHANGED
@@ -16,6 +16,7 @@ require "tezos_client/operation"
16
16
  require "tezos_client/operations/origination_operation"
17
17
  require "tezos_client/operations/transaction_operation"
18
18
  require "tezos_client/operations/transactions_operation"
19
+ require "tezos_client/operations/activate_account_operation"
19
20
 
20
21
  require "tezos_client/client_interface"
21
22
  require "tezos_client/rpc_interface"
@@ -105,6 +106,16 @@ class TezosClient
105
106
  ).test_and_broadcast
106
107
  end
107
108
 
109
+ def activate_account(pkh:, secret:, **args)
110
+ ActivateAccountOperation.new(
111
+ liquidity_interface: liquidity_interface,
112
+ rpc_interface: rpc_interface,
113
+ pkh: pkh,
114
+ secret: secret,
115
+ **args
116
+ ).test_and_broadcast
117
+ end
118
+
108
119
  def transfer_to_many(from:, amounts:, secret_key:, **args)
109
120
  TransactionsOperation.new(
110
121
  liquidity_interface: liquidity_interface,
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.3.3
4
+ version: 0.3.4
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-01-14 00:00:00.000000000 Z
11
+ date: 2019-01-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -227,6 +227,7 @@ files:
227
227
  - lib/tezos_client/liquidity_interface.rb
228
228
  - lib/tezos_client/logger.rb
229
229
  - lib/tezos_client/operation.rb
230
+ - lib/tezos_client/operations/activate_account_operation.rb
230
231
  - lib/tezos_client/operations/origination_operation.rb
231
232
  - lib/tezos_client/operations/transaction_operation.rb
232
233
  - lib/tezos_client/operations/transactions_operation.rb