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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0e4247331b7bb1fef7bc671fcbd514e80d896a9dc8cafa309fb545acc81270c6
4
- data.tar.gz: c6adf5b9f2a0963867ca02de70e9869c5911c809405dc5e46283cd8fce922cdc
3
+ metadata.gz: 365bff7b2be3d0542b38955b3da26ba3af4fffcb174f1fe4633aeee320882571
4
+ data.tar.gz: 4beaa4493cd4410530733f1bfd8dc48197d67f34fd63872b6ee1ca63d10c46af
5
5
  SHA512:
6
- metadata.gz: c64f6abb3d3e1ace420acace4d8b846a917102aedc971be72f9b4292979cdb491cb1f3acf30b63b257a837728beebd14ab522a2f161d1a0fe8e6cb7b39aadec2
7
- data.tar.gz: e97b4519bc539ad349d8f363799285afbceeb011a0efb5fa557824d80b2f388ffea6e453ee8e8455735f49002b9efd52737de3a2ca857ef67fbb27bd6af48bc9
6
+ metadata.gz: 57451f78b87fef41ff4fd2f60d44a4cf8918af528e07b5a6611de667cb51e4c376e4e3e298f4126ecd19c639a0d7a2ca549250a5bf8c7acf6d838c6f321ec59d
7
+ data.tar.gz: 14baa84e00bb47c79e5f76750b51fdda1d7656f860aa83c12fab77582fcf7d7f06903f732ec135e19ca5f3aab9a6f0efd562e0a43d07de9cb8854ca798622007
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- aries-sdk-ruby (0.0.3)
4
+ aries-sdk-ruby (0.0.4)
5
5
  helix_runtime (~> 0.7.5)
6
6
 
7
7
  GEM
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.
@@ -2,7 +2,7 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = 'aries-sdk-ruby'
5
- s.version = '0.0.3'
5
+ s.version = '0.0.4'
6
6
  s.authors = ['John Callahan']
7
7
  s.summary = "Ruby wrapper for aries-sdk"
8
8
  s.files = ["Cargo.lock", "Cargo.toml", "Gemfile", "Gemfile.lock"]
@@ -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("000000000000000000000000Steward1")
71
- did.create(wallet)
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="128"]
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, seed: String) {
98
+ def initialize(helix) {
92
99
  let did: String = "".to_string();
93
100
  let verkey: String = "".to_string();
94
- AriesDID { helix, seed, did, verkey }
101
+ AriesDID { helix, did, verkey }
95
102
  }
96
103
 
97
- def create(&mut self, wallet: &AriesWallet) {
98
- let (did,verkey) = create_did(wallet.handle, &self.seed);
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, seed: &str) -> (String,String) {
114
- let first_json_seed = json!({
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.3
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-09-06 00:00:00.000000000 Z
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
- rubyforge_project:
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