aries-sdk-ruby 0.0.3 → 0.0.4
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/Gemfile.lock +1 -1
- data/README.md +11 -0
- data/aries-sdk-ruby.gemspec +1 -1
- data/spec/aries-sdk-ruby_spec.rb +92 -3
- data/src/lib.rs +46 -11
- metadata +3 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 365bff7b2be3d0542b38955b3da26ba3af4fffcb174f1fe4633aeee320882571
|
4
|
+
data.tar.gz: 4beaa4493cd4410530733f1bfd8dc48197d67f34fd63872b6ee1ca63d10c46af
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 57451f78b87fef41ff4fd2f60d44a4cf8918af528e07b5a6611de667cb51e4c376e4e3e298f4126ecd19c639a0d7a2ca549250a5bf8c7acf6d838c6f321ec59d
|
7
|
+
data.tar.gz: 14baa84e00bb47c79e5f76750b51fdda1d7656f860aa83c12fab77582fcf7d7f06903f732ec135e19ca5f3aab9a6f0efd562e0a43d07de9cb8854ca798622007
|
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
@@ -61,6 +61,17 @@ See [these instructions](https://github.com/hyperledger/indy-sdk#installing-the-
|
|
61
61
|
$ rspec
|
62
62
|
$
|
63
63
|
|
64
|
+
## Gem Building
|
65
|
+
|
66
|
+
Bump the gem version number up in the gemspec file, then:
|
67
|
+
|
68
|
+
$ gem build aries-sdk-ruby.gemspec
|
69
|
+
Successfully built RubyGem
|
70
|
+
Name: aries-sdk-ruby
|
71
|
+
Version: 0.0.x
|
72
|
+
File: aries-sdk-ruby-0.0.x.gem
|
73
|
+
$ gem push aries-sdk-ruby-0.0.x.gem
|
74
|
+
|
64
75
|
## Contributing
|
65
76
|
|
66
77
|
Bug reports and pull requests are welcome on GitHub at https://github.com/hyperledger/aries-sdk-ruby.
|
data/aries-sdk-ruby.gemspec
CHANGED
data/spec/aries-sdk-ruby_spec.rb
CHANGED
@@ -6,6 +6,25 @@ describe "aries-sdk-ruby" do
|
|
6
6
|
wallet.create
|
7
7
|
wallet.delete
|
8
8
|
end
|
9
|
+
|
10
|
+
it "can find an existing wallet" do
|
11
|
+
wallet = AriesWallet.new("WALLETX")
|
12
|
+
wallet.create
|
13
|
+
wallet.open
|
14
|
+
wallet.close
|
15
|
+
new_wallet = AriesWallet.new("WALLETX")
|
16
|
+
# no create needed here
|
17
|
+
new_wallet.open
|
18
|
+
new_wallet.close
|
19
|
+
new_wallet.delete
|
20
|
+
end
|
21
|
+
|
22
|
+
it "cannot find a non-existent wallet" do
|
23
|
+
wallet = AriesWallet.new("NOSUCHWALLET")
|
24
|
+
# no create needed here
|
25
|
+
expect{wallet.open}.to raise_error(/Wallet not found/)
|
26
|
+
end
|
27
|
+
|
9
28
|
it "cannot create a duplicate wallet" do
|
10
29
|
wallet1 = AriesWallet.new("WALLET2")
|
11
30
|
wallet1.create
|
@@ -13,11 +32,13 @@ describe "aries-sdk-ruby" do
|
|
13
32
|
expect{wallet2.create}.to raise_error(/Wallet with this name already exists/)
|
14
33
|
wallet1.delete
|
15
34
|
end
|
35
|
+
|
16
36
|
it "can delete a wallet" do
|
17
37
|
wallet = AriesWallet.new("WALLET3")
|
18
38
|
wallet.create
|
19
39
|
wallet.delete
|
20
40
|
end
|
41
|
+
|
21
42
|
it "can open and close a wallet" do
|
22
43
|
wallet = AriesWallet.new("WALLET5")
|
23
44
|
wallet.create
|
@@ -25,6 +46,7 @@ describe "aries-sdk-ruby" do
|
|
25
46
|
wallet.close
|
26
47
|
wallet.delete
|
27
48
|
end
|
49
|
+
|
28
50
|
it "cannot delete a wallet twice" do
|
29
51
|
wallet = AriesWallet.new("WALLET6")
|
30
52
|
wallet.create
|
@@ -37,6 +59,7 @@ describe "aries-sdk-ruby" do
|
|
37
59
|
pool.create
|
38
60
|
pool.delete
|
39
61
|
end
|
62
|
+
|
40
63
|
it "cannot create a duplicate pool" do
|
41
64
|
pool1 = AriesPool.new("POOL2")
|
42
65
|
pool1.create
|
@@ -44,11 +67,13 @@ describe "aries-sdk-ruby" do
|
|
44
67
|
expect{pool2.create}.to raise_error(/Pool ledger config file with name/)
|
45
68
|
pool1.delete
|
46
69
|
end
|
70
|
+
|
47
71
|
it "can delete a pool" do
|
48
72
|
pool = AriesPool.new("POOL3")
|
49
73
|
pool.create
|
50
74
|
pool.delete
|
51
75
|
end
|
76
|
+
|
52
77
|
it "can open and close a pool" do
|
53
78
|
pool = AriesPool.new("POOL5")
|
54
79
|
pool.create
|
@@ -56,6 +81,21 @@ describe "aries-sdk-ruby" do
|
|
56
81
|
pool.close
|
57
82
|
pool.delete
|
58
83
|
end
|
84
|
+
|
85
|
+
it "can open an existing pool" do
|
86
|
+
pool = AriesPool.new("POOLX")
|
87
|
+
pool.create
|
88
|
+
new_pool = AriesPool.new("POOLX")
|
89
|
+
new_pool.open
|
90
|
+
new_pool.close
|
91
|
+
new_pool.delete
|
92
|
+
end
|
93
|
+
|
94
|
+
it "cannot open a non-existent pool" do
|
95
|
+
pool = AriesPool.new("NOSUCHPOOL")
|
96
|
+
expect{pool.open}.to raise_error(/Pool is not created for name/)
|
97
|
+
end
|
98
|
+
|
59
99
|
it "cannot delete a pool twice" do
|
60
100
|
pool = AriesPool.new("POOL6")
|
61
101
|
pool.create
|
@@ -63,13 +103,62 @@ describe "aries-sdk-ruby" do
|
|
63
103
|
expect{pool.delete}.to raise_error(/No such file or directory/)
|
64
104
|
end
|
65
105
|
|
66
|
-
it "can create a DID" do
|
106
|
+
it "can create a Steward DID" do
|
67
107
|
wallet = AriesWallet.new("WALLET0")
|
68
108
|
wallet.create
|
69
109
|
wallet.open
|
70
|
-
did = AriesDID.new(
|
71
|
-
|
110
|
+
did = AriesDID.new()
|
111
|
+
seed = AriesJson.to_string('{"seed":"000000000000000000000000Steward1"}')
|
112
|
+
did.create(wallet,seed)
|
72
113
|
wallet.close
|
73
114
|
wallet.delete
|
74
115
|
end
|
116
|
+
|
117
|
+
it "can create a Trust Anchor DID" do
|
118
|
+
wallet = AriesWallet.new("WALLET0")
|
119
|
+
wallet.create
|
120
|
+
wallet.open
|
121
|
+
did = AriesDID.new()
|
122
|
+
did.create(wallet,"{}")
|
123
|
+
wallet.close
|
124
|
+
wallet.delete
|
125
|
+
end
|
126
|
+
|
127
|
+
it "can create a NYM" do
|
128
|
+
steward_wallet = AriesWallet.new("WALLET_STEWARD")
|
129
|
+
steward_wallet.create
|
130
|
+
steward_wallet.open
|
131
|
+
steward_did = AriesDID.new()
|
132
|
+
seed = AriesJson.to_string('{"seed":"000000000000000000000000Steward1"}')
|
133
|
+
steward_did.create(steward_wallet,seed)
|
134
|
+
|
135
|
+
trustee_wallet = AriesWallet.new("WALLET_TRUSTEE")
|
136
|
+
trustee_wallet.create
|
137
|
+
trustee_wallet.open
|
138
|
+
trustee_did = AriesDID.new()
|
139
|
+
trustee_did.create(trustee_wallet,"{}")
|
140
|
+
|
141
|
+
nym = AriesDID.build_nym(steward_did,trustee_did)
|
142
|
+
|
143
|
+
trustee_wallet.close
|
144
|
+
trustee_wallet.delete
|
145
|
+
|
146
|
+
steward_wallet.close
|
147
|
+
steward_wallet.delete
|
148
|
+
end
|
149
|
+
|
150
|
+
it "can create a schema" do
|
151
|
+
steward_wallet = AriesWallet.new("WALLET_STEWARD")
|
152
|
+
steward_wallet.create
|
153
|
+
steward_wallet.open
|
154
|
+
steward_did = AriesDID.new()
|
155
|
+
seed = AriesJson.to_string('{"seed":"000000000000000000000000Steward1"}')
|
156
|
+
steward_did.create(steward_wallet,seed)
|
157
|
+
|
158
|
+
cred = AriesCredential.new()
|
159
|
+
cred.issuer_create_schema(steward_did,"gvt","1.0",'["age","sex","height","name"]')
|
160
|
+
|
161
|
+
steward_wallet.close
|
162
|
+
steward_wallet.delete
|
163
|
+
end
|
75
164
|
end
|
data/src/lib.rs
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
#![recursion_limit="
|
1
|
+
#![recursion_limit="256"]
|
2
2
|
#[macro_use] extern crate helix;
|
3
3
|
#[macro_use] extern crate serde_json;
|
4
4
|
extern crate indyrs as indy;
|
@@ -6,6 +6,8 @@ extern crate indyrs as indy;
|
|
6
6
|
use indy::pool;
|
7
7
|
use indy::wallet;
|
8
8
|
use indy::did;
|
9
|
+
use indy::ledger;
|
10
|
+
use indy::anoncreds;
|
9
11
|
use std::string::String;
|
10
12
|
|
11
13
|
use indy::future::Future;
|
@@ -48,6 +50,9 @@ ruby! {
|
|
48
50
|
|
49
51
|
wallet::delete_wallet(&config, &credentials).wait().unwrap();
|
50
52
|
}
|
53
|
+
def get_handle(&self) -> i32 {
|
54
|
+
return self.handle
|
55
|
+
}
|
51
56
|
}
|
52
57
|
|
53
58
|
class AriesPool {
|
@@ -79,23 +84,25 @@ ruby! {
|
|
79
84
|
def delete(&self) {
|
80
85
|
pool::delete_pool_ledger(&self.name).wait().unwrap();
|
81
86
|
}
|
87
|
+
def get_handle(&self) -> i32 {
|
88
|
+
return self.handle
|
89
|
+
}
|
82
90
|
}
|
83
91
|
|
84
92
|
class AriesDID {
|
85
93
|
struct {
|
86
|
-
seed: String,
|
87
94
|
did: String,
|
88
95
|
verkey: String
|
89
96
|
}
|
90
97
|
|
91
|
-
def initialize(helix
|
98
|
+
def initialize(helix) {
|
92
99
|
let did: String = "".to_string();
|
93
100
|
let verkey: String = "".to_string();
|
94
|
-
AriesDID { helix,
|
101
|
+
AriesDID { helix, did, verkey }
|
95
102
|
}
|
96
103
|
|
97
|
-
def create(&mut self, wallet: &AriesWallet) {
|
98
|
-
let (did,verkey) = create_did(wallet.handle, &
|
104
|
+
def create(&mut self, wallet: &AriesWallet, value: String) {
|
105
|
+
let (did,verkey) = create_did(wallet.handle, &value);
|
99
106
|
self.did = did;
|
100
107
|
self.verkey = verkey;
|
101
108
|
}
|
@@ -104,17 +111,45 @@ ruby! {
|
|
104
111
|
return self.did.to_string();
|
105
112
|
}
|
106
113
|
|
114
|
+
def build_nym(steward_did: &AriesDID, trustee_did: &AriesDID) -> String {
|
115
|
+
return ledger::build_nym_request(&steward_did.did, &trustee_did.did, Some(&trustee_did.verkey), None, Some("TRUST_ANCHOR")).wait().unwrap();
|
116
|
+
}
|
117
|
+
|
107
118
|
def get_verkey(&self) -> String {
|
108
119
|
return self.verkey.to_string();
|
109
120
|
}
|
110
121
|
}
|
122
|
+
|
123
|
+
class AriesJson {
|
124
|
+
def to_string(data: String) -> String {
|
125
|
+
let value: serde_json::Value = serde_json::from_str(&data).unwrap();
|
126
|
+
let result = value.to_string();
|
127
|
+
return result;
|
128
|
+
}
|
129
|
+
}
|
130
|
+
|
131
|
+
class AriesCredential {
|
132
|
+
struct {
|
133
|
+
schema_id: String,
|
134
|
+
schema_json: String
|
135
|
+
}
|
136
|
+
|
137
|
+
def initialize(helix) {
|
138
|
+
let schema_id: String = "".to_string();
|
139
|
+
let schema_json: String = "".to_string();
|
140
|
+
AriesCredential { helix, schema_id, schema_json }
|
141
|
+
}
|
142
|
+
|
143
|
+
def issuer_create_schema(&mut self,issuer_did: &AriesDID, name: String, version: String, attributes: String) {
|
144
|
+
let (schema_id,schema_json) = anoncreds::issuer_create_schema(&issuer_did.did, &name, &version, &attributes).wait().unwrap();
|
145
|
+
self.schema_id = schema_id;
|
146
|
+
self.schema_json = schema_json;
|
147
|
+
}
|
148
|
+
}
|
111
149
|
}
|
112
150
|
|
113
|
-
fn create_did(wallet_handle: i32,
|
114
|
-
let
|
115
|
-
"seed":seed
|
116
|
-
}).to_string();
|
117
|
-
let (did,verkey) = did::create_and_store_my_did(wallet_handle, &first_json_seed).wait().unwrap();
|
151
|
+
fn create_did(wallet_handle: i32, value: &str) -> (String,String) {
|
152
|
+
let (did,verkey) = did::create_and_store_my_did(wallet_handle, value).wait().unwrap();
|
118
153
|
return (did,verkey);
|
119
154
|
}
|
120
155
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: aries-sdk-ruby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- John Callahan
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-
|
11
|
+
date: 2019-10-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: helix_runtime
|
@@ -64,8 +64,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
64
64
|
- !ruby/object:Gem::Version
|
65
65
|
version: '0'
|
66
66
|
requirements: []
|
67
|
-
|
68
|
-
rubygems_version: 2.7.9
|
67
|
+
rubygems_version: 3.0.6
|
69
68
|
signing_key:
|
70
69
|
specification_version: 4
|
71
70
|
summary: Ruby wrapper for aries-sdk
|