hyperledger_cli 0.0.6 → 0.0.7
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/bin/hyperledger +22 -21
- data/lib/hyperledger_cli/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4d2174e7c21b489561aa6dbd1aab4b161b2c2628
|
4
|
+
data.tar.gz: 8863df31ff095d92d07238dce0b741fe9124ed9a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 209041ebc8493afb1b073b73f1756b52c7f32368b36ebed905a7b9812885e77bd0c4e3f27a66e270f6f255c09d74147e78920549e82710b1459b466ca3404361
|
7
|
+
data.tar.gz: 56c436c92c1a26e7b8f7344f81b7fbdc68fdc11d0af61a04101a812a544a795fc43689707a5954df674fc5d2e51cafb5c71d12c3438c6dfb7faf52786b78c536
|
data/bin/hyperledger
CHANGED
@@ -9,7 +9,6 @@ require 'json'
|
|
9
9
|
|
10
10
|
module ErrorPrinter
|
11
11
|
def print_error(err)
|
12
|
-
puts 'There seems to have been a problem... :-/'
|
13
12
|
puts "Error: #{err}"
|
14
13
|
errors = JSON.parse(err.response, symbolize_names: true)[:errors]
|
15
14
|
if errors
|
@@ -23,28 +22,30 @@ class Ledger < Thor
|
|
23
22
|
|
24
23
|
desc 'list', 'List all known ledgers'
|
25
24
|
def list
|
26
|
-
response = RestClient.get "#{options[:server]}/
|
25
|
+
response = RestClient.get "#{options[:server]}/ledgers", content_type: :json, accept: :json
|
27
26
|
data = JSON.parse(response.body, symbolize_names: true)
|
28
|
-
data[:
|
27
|
+
data[:ledgers].each do |c| puts c[:name] end
|
29
28
|
end
|
30
29
|
|
31
30
|
desc 'register <name> <url>', 'Registers a new ledger. The name must be unique, and the URL should contain more information about the ledger.'
|
32
31
|
def register(name, url)
|
33
|
-
|
34
|
-
|
32
|
+
ledger_key = OpenSSL::PKey::RSA.new 2048
|
33
|
+
primary_account_key = OpenSSL::PKey::RSA.new 2048
|
34
|
+
ledger_data = { public_key: ledger_key.public_key.to_pem, name: name, url: url }
|
35
|
+
primary_account_data = { public_key: primary_account_key.public_key.to_pem }
|
35
36
|
|
36
37
|
begin
|
37
|
-
response = RestClient.post "#{options[:server]}/
|
38
|
-
|
38
|
+
response = RestClient.post "#{options[:server]}/ledgers", { ledger: ledger_data, primary_account: primary_account_data }, content_type: :json, accept: :json
|
39
|
+
ledger = JSON.parse(response.body, symbolize_names: true)[:ledger]
|
39
40
|
puts 'New ledger created'
|
40
|
-
puts "name:\t#{
|
41
|
-
puts "url:\t#{
|
42
|
-
puts "primary account code:\t#{
|
41
|
+
puts "name:\t#{ledger[:name]}"
|
42
|
+
puts "url:\t#{ledger[:url]}"
|
43
|
+
puts "primary account code:\t#{ledger[:primary_account][:code]}"
|
43
44
|
|
44
45
|
# Write key
|
45
46
|
FileUtils.mkdir_p "#{ENV['HOME']}/.mintet"
|
46
|
-
open "#{ENV['HOME']}/.mintet/#{
|
47
|
-
open "#{ENV['HOME']}/.mintet/#{name}.pem", 'w' do |io| io.write
|
47
|
+
open "#{ENV['HOME']}/.mintet/#{ledger[:primary_account][:code]}.pem", 'w' do |io| io.write primary_account_key.to_pem end
|
48
|
+
open "#{ENV['HOME']}/.mintet/#{name}.pem", 'w' do |io| io.write ledger_key.to_pem end
|
48
49
|
rescue => e
|
49
50
|
print_error(e)
|
50
51
|
end
|
@@ -56,7 +57,7 @@ class Account < Thor
|
|
56
57
|
|
57
58
|
desc 'list', 'List all known accounts'
|
58
59
|
def list
|
59
|
-
response = RestClient.get "#{options[:server]}/accounts", content_type: :json
|
60
|
+
response = RestClient.get "#{options[:server]}/accounts", content_type: :json, accept: :json
|
60
61
|
data = JSON.parse(response.body, symbolize_names: true)
|
61
62
|
data[:accounts].each do |a|
|
62
63
|
a.each do |k, v|
|
@@ -67,12 +68,12 @@ class Account < Thor
|
|
67
68
|
end
|
68
69
|
|
69
70
|
desc 'register <ledger>', 'Registers a new account in <ledger>.'
|
70
|
-
def register(
|
71
|
+
def register(ledger)
|
71
72
|
key = OpenSSL::PKey::RSA.new 2048
|
72
|
-
data = { public_key: key.public_key.to_pem,
|
73
|
+
data = { public_key: key.public_key.to_pem, ledger: ledger }
|
73
74
|
|
74
75
|
begin
|
75
|
-
resp = RestClient.post "#{options.server}/accounts", data, content_type: :json
|
76
|
+
resp = RestClient.post "#{options.server}/accounts", { account: data }, content_type: :json, accept: :json
|
76
77
|
account = JSON.parse(resp.body, symbolize_names: true)[:account]
|
77
78
|
puts 'New account created'
|
78
79
|
puts "code:\t\t#{account[:code]}"
|
@@ -99,15 +100,15 @@ class Hyperledger < Thor
|
|
99
100
|
subcommand 'account', Account
|
100
101
|
|
101
102
|
desc 'issue <amount> <ledger>', 'Issue <amount> new units to <ledger>.'
|
102
|
-
def issue(amount,
|
103
|
-
data = {
|
103
|
+
def issue(amount, ledger)
|
104
|
+
data = { ledger: ledger, amount: amount }
|
104
105
|
|
105
|
-
key = OpenSSL::PKey::RSA.new File.read("#{ENV['HOME']}/.mintet/#{
|
106
|
+
key = OpenSSL::PKey::RSA.new File.read("#{ENV['HOME']}/.mintet/#{ledger.downcase}.pem")
|
106
107
|
sign = Base64.encode64 key.sign(OpenSSL::Digest::SHA256.new, data.to_json)
|
107
108
|
|
108
109
|
begin
|
109
|
-
resp = RestClient.post "#{options[:server]}/issues", { issue: data, signature: sign }, content_type: :json
|
110
|
-
puts "#{amount} new units issued to #{
|
110
|
+
resp = RestClient.post "#{options[:server]}/issues", { issue: data, signature: sign }, content_type: :json, accept: :json
|
111
|
+
puts "#{amount} new units issued to #{ledger}"
|
111
112
|
rescue => e
|
112
113
|
print_error(e)
|
113
114
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hyperledger_cli
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Daniel Feichtinger
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-06-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -103,7 +103,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
103
103
|
version: '0'
|
104
104
|
requirements: []
|
105
105
|
rubyforge_project:
|
106
|
-
rubygems_version: 2.
|
106
|
+
rubygems_version: 2.3.0
|
107
107
|
signing_key:
|
108
108
|
specification_version: 4
|
109
109
|
summary: A sample CLI for the Hyperledger protocol.
|