aries-sdk-ruby 0.0.3 → 0.0.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: 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