universa 3.13.2.2 → 3.14.2.1

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: 2a2d8417e0af70c3f16e18482f940f762c0c139a1094d5b5d465630f7f213ff7
4
- data.tar.gz: fa52c92882964ed6530f03d7504cd643ac3d42adfc8fe76f0bc04ae9cb4ae5cb
3
+ metadata.gz: 634b16b7d4ee30cc046a3f20ed5c3db1de4d7ddda5a2cc22a7fd87462b10b4d2
4
+ data.tar.gz: 6733a5eeba94d4e574e3873db94bc07eccba8261b0e0de79802795399f3b4640
5
5
  SHA512:
6
- metadata.gz: 0056d08930daf9cf61e2dcb9c8d0924330afd065279a3920cb2000e61c49b58e6db5eeea30b87d9ac783316521a7305b28bd03d0e869f18041d3ff5281f9583f
7
- data.tar.gz: e1fef7605a169f07e89840960462509aadbff7d4a3bb16976e37764f355c3966cf12c13516d76691a9ca011f9ab1bddf186d14fcff69cf08e1680bb043628ea8
6
+ metadata.gz: 9c2633e546d18a264e7ee4200d8830f1af180eb3dffdfae24d6b65ab6eb3ecca6967c2c7ade942fce239959ed74ddc2dbd71d7caf5e64517574b72d7089e23dd
7
+ data.tar.gz: 49c671d2d33706044361e6bcf26d6ebab5512dae06f037f38a4ee665efa18a59f532c471b63efde248f2f81b4fd23b20d55876af09da4c01bd21c5ed24c3b7e9
data/README.md CHANGED
@@ -1,15 +1,11 @@
1
1
  # Universa
2
2
 
3
- > beta state: direct full access to Java API ready for test, started adapter of remote objects - syntax sugar
4
- for direct access to remote objects.
5
-
6
- __attention__ since this release version numbers match the Universa Core library version included.
7
-
8
3
  This is an under-construction official gem from [Universa][universa] to facilitate access to the
9
- Java library using Universa's UMI protocol and Universa client services.
4
+ Java library using Universa UMI protocol and Universa client services.
10
5
 
11
6
  ## News
12
7
 
8
+ - production-tested in various universa projects
13
9
  - rewritten Client and Connection to use new consensus-based, dns-free Universa network topology discovery protocol
14
10
  - added syntax sugar for TransactionPack
15
11
  - alfa version of the local FS-based contract store.
@@ -46,6 +42,26 @@ Or install it yourself as:
46
42
 
47
43
  ## Usage
48
44
 
45
+ ### Direct access to Universa objects:
46
+
47
+ ~~~ruby
48
+ include Universa
49
+
50
+ @private_key = PrivateKey.new 2048
51
+ c = Contract.create @private_key
52
+ c.get_creator.get_all_addresses.should == [@private_key.long_address.to_s]
53
+ c.seal()
54
+ c.check() and c.trace_errors()
55
+ c.should be_ok
56
+
57
+ c1 = Contract.from_packed(c.packed)
58
+ c1.hash_id.should == c.hash_id
59
+ c1.should == c
60
+ c1.expires_at.should > (Time.now + 120)
61
+ ~~~
62
+
63
+ see smaples in specs (spec/contract_spec, spec/compound_spec, etc.)
64
+
49
65
  ### Direct access to UMI
50
66
 
51
67
  So far, you can only get direct access the the Java API functions. To get it:
data/bin/refresh_umi CHANGED
@@ -16,5 +16,5 @@ rm -rd ./bin/__MACOSX >/dev/null 2>&1
16
16
 
17
17
  rm download
18
18
 
19
- echo "successfully nstalled version: `bin/umi/bin/umi --version`"
19
+ echo "successfully installed version: `bin/umi/bin/umi --version`"
20
20
 
data/bin/umi/bin/umi CHANGED
@@ -267,7 +267,7 @@ loadConfigFile() {
267
267
  }
268
268
 
269
269
  # Now check to see if it's a good enough version
270
- # TODO - Check to see if we have a configured default java version, otherwise use 1.6
270
+ # TODO - Check to see if we have a configured default java version, otherwise use 1.8
271
271
  java_version_check() {
272
272
  readonly java_version=$("$java_cmd" -version 2>&1 | awk -F '"' '/version/ {print $2}')
273
273
  if [[ "$java_version" == "" ]]; then
@@ -281,10 +281,10 @@ java_version_check() {
281
281
  if [[ "$major" -eq "1" ]]; then
282
282
  local major=$(echo "$java_version" | cut -d'.' -f2)
283
283
  fi
284
- if [[ "$major" -lt "6" ]]; then
284
+ if [[ "$major" -lt "8" ]]; then
285
285
  echo
286
286
  echo The java installation you have is not up to date
287
- echo $app_name requires at least version 1.6+, you have
287
+ echo $app_name requires at least version 1.8+, you have
288
288
  echo version $java_version
289
289
  echo
290
290
  echo Please go to http://www.java.com/getjava/ and download
@@ -344,7 +344,7 @@ declare -r lib_dir="$(realpath "${app_home}/../lib")"
344
344
  declare -a app_mainclass=(com.icodici.farcallscala.Main)
345
345
 
346
346
  declare -r script_conf_file="${app_home}/../conf/application.ini"
347
- declare -r app_classpath="$lib_dir/com.icodici.umi-0.8.67.jar:$lib_dir/org.scala-lang.scala-library-2.12.7.jar:$lib_dir/com.icodici.universa_core-3.13.2.jar:$lib_dir/org.yaml.snakeyaml-1.18.jar:$lib_dir/com.icodici.nanohttpd-2.1.0.jar:$lib_dir/com.icodici.common_tools-3.13.2.jar:$lib_dir/com.eclipsesource.minimal-json.minimal-json-0.9.4.jar:$lib_dir/net.java.dev.jna.jna-4.5.1.jar:$lib_dir/org.checkerframework.checker-qual-2.3.2.jar:$lib_dir/com.icodici.crypto-3.13.2.jar:$lib_dir/org.bouncycastle.bcprov-jdk15on-1.62.jar:$lib_dir/com.squareup.jnagmp.jnagmp-2.0.0.jar:$lib_dir/com.typesafe.play.play-json_2.12-2.6.10.jar:$lib_dir/com.typesafe.play.play-functional_2.12-2.6.10.jar:$lib_dir/org.scala-lang.scala-reflect-2.12.7.jar:$lib_dir/org.typelevel.macro-compat_2.12-1.1.1.jar:$lib_dir/joda-time.joda-time-2.9.9.jar:$lib_dir/com.fasterxml.jackson.core.jackson-core-2.8.11.jar:$lib_dir/com.fasterxml.jackson.core.jackson-annotations-2.8.11.jar:$lib_dir/com.fasterxml.jackson.datatype.jackson-datatype-jdk8-2.8.11.jar:$lib_dir/com.fasterxml.jackson.core.jackson-databind-2.8.11.1.jar:$lib_dir/com.fasterxml.jackson.datatype.jackson-datatype-jsr310-2.8.11.jar:$lib_dir/org.scala-sbt.ipcsocket.ipcsocket-1.0.0.jar:$lib_dir/net.java.dev.jna.jna-platform-4.5.0.jar:$lib_dir/net.sf.jopt-simple.jopt-simple-4.9.jar"
347
+ declare -r app_classpath="$lib_dir/com.icodici.umi-0.8.72.jar:$lib_dir/org.scala-lang.scala-library-2.12.7.jar:$lib_dir/com.icodici.universa_core-3.14.2.jar:$lib_dir/org.yaml.snakeyaml-1.18.jar:$lib_dir/com.icodici.nanohttpd-2.1.0.jar:$lib_dir/com.icodici.common_tools-3.14.2.jar:$lib_dir/com.eclipsesource.minimal-json.minimal-json-0.9.4.jar:$lib_dir/net.java.dev.jna.jna-4.5.1.jar:$lib_dir/org.checkerframework.checker-qual-2.3.2.jar:$lib_dir/com.icodici.crypto-3.14.2.jar:$lib_dir/org.bouncycastle.bcprov-jdk15on-1.62.jar:$lib_dir/com.squareup.jnagmp.jnagmp-2.0.0.jar:$lib_dir/org.scala-sbt.ipcsocket.ipcsocket-1.0.0.jar:$lib_dir/net.java.dev.jna.jna-platform-4.5.0.jar:$lib_dir/net.sf.jopt-simple.jopt-simple-4.9.jar"
348
348
 
349
349
  # java_cmd is overrode in process_args when -java-home is used
350
350
  declare java_cmd=$(get_java_cmd)
data/bin/umi/bin/umi.bat CHANGED
@@ -80,7 +80,7 @@ rem "-J" is stripped, "-D" is left as is, and everything is appended to JAVA_OPT
80
80
  set _JAVA_PARAMS=
81
81
  set _APP_ARGS=
82
82
 
83
- set "APP_CLASSPATH=%APP_LIB_DIR%\com.icodici.umi-0.8.67.jar;%APP_LIB_DIR%\org.scala-lang.scala-library-2.12.7.jar;%APP_LIB_DIR%\com.icodici.universa_core-3.13.2.jar;%APP_LIB_DIR%\org.yaml.snakeyaml-1.18.jar;%APP_LIB_DIR%\com.icodici.nanohttpd-2.1.0.jar;%APP_LIB_DIR%\com.icodici.common_tools-3.13.2.jar;%APP_LIB_DIR%\com.eclipsesource.minimal-json.minimal-json-0.9.4.jar;%APP_LIB_DIR%\net.java.dev.jna.jna-4.5.1.jar;%APP_LIB_DIR%\org.checkerframework.checker-qual-2.3.2.jar;%APP_LIB_DIR%\com.icodici.crypto-3.13.2.jar;%APP_LIB_DIR%\org.bouncycastle.bcprov-jdk15on-1.62.jar;%APP_LIB_DIR%\com.squareup.jnagmp.jnagmp-2.0.0.jar;%APP_LIB_DIR%\com.typesafe.play.play-json_2.12-2.6.10.jar;%APP_LIB_DIR%\com.typesafe.play.play-functional_2.12-2.6.10.jar;%APP_LIB_DIR%\org.scala-lang.scala-reflect-2.12.7.jar;%APP_LIB_DIR%\org.typelevel.macro-compat_2.12-1.1.1.jar;%APP_LIB_DIR%\joda-time.joda-time-2.9.9.jar;%APP_LIB_DIR%\com.fasterxml.jackson.core.jackson-core-2.8.11.jar;%APP_LIB_DIR%\com.fasterxml.jackson.core.jackson-annotations-2.8.11.jar;%APP_LIB_DIR%\com.fasterxml.jackson.datatype.jackson-datatype-jdk8-2.8.11.jar;%APP_LIB_DIR%\com.fasterxml.jackson.core.jackson-databind-2.8.11.1.jar;%APP_LIB_DIR%\com.fasterxml.jackson.datatype.jackson-datatype-jsr310-2.8.11.jar;%APP_LIB_DIR%\org.scala-sbt.ipcsocket.ipcsocket-1.0.0.jar;%APP_LIB_DIR%\net.java.dev.jna.jna-platform-4.5.0.jar;%APP_LIB_DIR%\net.sf.jopt-simple.jopt-simple-4.9.jar"
83
+ set "APP_CLASSPATH=%APP_LIB_DIR%\com.icodici.umi-0.8.72.jar;%APP_LIB_DIR%\org.scala-lang.scala-library-2.12.7.jar;%APP_LIB_DIR%\com.icodici.universa_core-3.14.2.jar;%APP_LIB_DIR%\org.yaml.snakeyaml-1.18.jar;%APP_LIB_DIR%\com.icodici.nanohttpd-2.1.0.jar;%APP_LIB_DIR%\com.icodici.common_tools-3.14.2.jar;%APP_LIB_DIR%\com.eclipsesource.minimal-json.minimal-json-0.9.4.jar;%APP_LIB_DIR%\net.java.dev.jna.jna-4.5.1.jar;%APP_LIB_DIR%\org.checkerframework.checker-qual-2.3.2.jar;%APP_LIB_DIR%\com.icodici.crypto-3.14.2.jar;%APP_LIB_DIR%\org.bouncycastle.bcprov-jdk15on-1.62.jar;%APP_LIB_DIR%\com.squareup.jnagmp.jnagmp-2.0.0.jar;%APP_LIB_DIR%\org.scala-sbt.ipcsocket.ipcsocket-1.0.0.jar;%APP_LIB_DIR%\net.java.dev.jna.jna-platform-4.5.0.jar;%APP_LIB_DIR%\net.sf.jopt-simple.jopt-simple-4.9.jar"
84
84
  set "APP_MAIN_CLASS=com.icodici.farcallscala.Main"
85
85
  set "SCRIPT_CONF_FILE=%APP_HOME%\conf\application.ini"
86
86
 
@@ -29,6 +29,10 @@ module Universa
29
29
  __getobj__.keySet()
30
30
  end
31
31
 
32
+ def binary(key)
33
+ __getobj__.getBinary(key)
34
+ end
35
+
32
36
  # # Internal use only. Allow processing remote commands as local calls
33
37
  def respond_to_missing?(method_name, include_private = false)
34
38
  l = method_name[-1]
@@ -57,6 +61,7 @@ module Universa
57
61
  end
58
62
 
59
63
  # Converts binder to the array of [key, value] pairs, like with regular ruby hashes
64
+ # @return [Array(Array(String,Object))] array of [key,value] pairs.
60
65
  def to_a
61
66
  map {|x| x}
62
67
  end
@@ -73,11 +78,6 @@ module Universa
73
78
  keys.map {|k| block.call [k, __getobj__.get(k)]}
74
79
  end
75
80
 
76
- # @return [Array(Array(String,Object))] array of [key,value] pairs.
77
- def to_a
78
- map {|x| x}
79
- end
80
-
81
81
  # converts to a regular ruby hash
82
82
  def to_h
83
83
  to_a.to_h
@@ -58,6 +58,11 @@ module Universa
58
58
  remote_class "com.icodici.universa.contract.permissions.ChangeOwnerPermission"
59
59
  end
60
60
 
61
+ # Adapter for Universa ChangeRolePermission
62
+ class ChangeRolePermission < RemoteAdapter
63
+ remote_class "com.icodici.universa.contract.permissions.ChangeRolePermission"
64
+ end
65
+
61
66
  # Adapter for Universa RevokePermission
62
67
  class RevokePermission < RemoteAdapter
63
68
  remote_class "com.icodici.universa.contract.permissions.RevokePermission"
@@ -91,6 +96,10 @@ module Universa
91
96
  # adapter for a role that is a list of roles
92
97
  class ListRole < RemoteAdapter
93
98
  remote_class "com.icodici.universa.contract.roles.ListRole"
99
+
100
+ class Mode
101
+ ANY = 'ANY'
102
+ end
94
103
  end
95
104
 
96
105
  # Adapter for permission to modify data
@@ -98,6 +107,10 @@ module Universa
98
107
  remote_class "com.icodici.universa.contract.permissions.ModifyDataPermission"
99
108
  end
100
109
 
110
+ # Adapter for Universa QuorumVoteRole
111
+ class QuorumVoteRole < RemoteAdapter
112
+ remote_class "com.icodici.universa.contract.roles.QuorumVoteRole"
113
+ end
101
114
 
102
115
  # Wrapper for Java API Reference class
103
116
 
@@ -408,4 +421,8 @@ module Universa
408
421
  end
409
422
  end
410
423
 
411
- end
424
+ class ExtendedSignature < RemoteAdapter
425
+ remote_class "com.icodici.universa.contract.ExtendedSignature"
426
+ end
427
+
428
+ end
@@ -2,7 +2,7 @@ require 'singleton'
2
2
 
3
3
  module Universa
4
4
 
5
- # The service is a singleton to provide porcess-wide objects and methods. For example,
5
+ # The service is a singleton to provide process-wide objects and methods. For example,
6
6
  # the {UMI} interface and reference class factory are unique per-process for Universa
7
7
  # library. It uses exactly one lazy created {UMI} connection which is shared among all threads.
8
8
  # As UMI server is multithreaded by nature, is will not block ruby threads waiting for remote
@@ -26,7 +26,8 @@ module Universa
26
26
  @known_proxies = {}
27
27
  [Contract, PrivateKey, PublicKey, KeyAddress, HashId, Binder,
28
28
  Role, SimpleRole, RoleLink, ListRole, Parcel, UnsContract,
29
- ChangeOwnerPermission, RevokePermission, ModifyDataPermission, SplitJoinPermission,
29
+ ChangeOwnerPermission, ChangeRolePermission, RevokePermission,
30
+ ModifyDataPermission, SplitJoinPermission, QuorumVoteRole,
30
31
  UmiClient, Duration, Compound, KeyInfo, PBKDF2].each {|klass| register_proxy klass}
31
32
  end
32
33
 
@@ -128,7 +129,7 @@ module Universa
128
129
 
129
130
  # Updating proxied object is not allowed. Raises error.
130
131
  def __setobj__
131
- raise "ObectProxy does not support changing referenced object"
132
+ raise "ObjectProxy does not support changing referenced object"
132
133
  end
133
134
 
134
135
  # Returns remote class name. There is no need to override it, when inheriting it use +remote_class+ helper:
@@ -139,11 +140,11 @@ module Universa
139
140
  # #...
140
141
  # end
141
142
  #
142
- # Notice: remote_class will do allnecessary work for you.
143
+ # Notice: remote_class will do all necessary work for you.
143
144
  #
144
145
  # @return [String] remote class name
145
146
  def self.remote_class_name
146
- @remote_class_name or raise Error, "provde remote class name"
147
+ @remote_class_name or raise Error, "provide remote class name"
147
148
  end
148
149
 
149
150
  # Registers remote class name to be used with this adapted. Call it early in descendant class
data/lib/universa/umi.rb CHANGED
@@ -372,7 +372,7 @@ module Universa
372
372
  # Java classes, whose references are created on-the-fly automatically (and will be reclaimed by GC on both
373
373
  # ends soon).
374
374
  #
375
- # == Instances are uniqie
375
+ # == Instances are unique
376
376
  #
377
377
  # What means, if some calls will return the same Java object instance, it will be returned as the same {Ref}
378
378
  # instance.
@@ -1,4 +1,4 @@
1
1
  module Universa
2
2
  # Current gem version
3
- VERSION = "3.13.2.2"
3
+ VERSION = "3.14.2.1"
4
4
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: universa
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.13.2.2
4
+ version: 3.14.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - sergeych
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-11-06 00:00:00.000000000 Z
11
+ date: 2020-03-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: farcall
@@ -144,29 +144,19 @@ files:
144
144
  - bin/umi/bin/umi
145
145
  - bin/umi/bin/umi.bat
146
146
  - bin/umi/lib/com.eclipsesource.minimal-json.minimal-json-0.9.4.jar
147
- - bin/umi/lib/com.fasterxml.jackson.core.jackson-annotations-2.8.11.jar
148
- - bin/umi/lib/com.fasterxml.jackson.core.jackson-core-2.8.11.jar
149
- - bin/umi/lib/com.fasterxml.jackson.core.jackson-databind-2.8.11.1.jar
150
- - bin/umi/lib/com.fasterxml.jackson.datatype.jackson-datatype-jdk8-2.8.11.jar
151
- - bin/umi/lib/com.fasterxml.jackson.datatype.jackson-datatype-jsr310-2.8.11.jar
152
- - bin/umi/lib/com.icodici.common_tools-3.13.2.jar
153
- - bin/umi/lib/com.icodici.crypto-3.13.2.jar
147
+ - bin/umi/lib/com.icodici.common_tools-3.14.2.jar
148
+ - bin/umi/lib/com.icodici.crypto-3.14.2.jar
154
149
  - bin/umi/lib/com.icodici.nanohttpd-2.1.0.jar
155
- - bin/umi/lib/com.icodici.umi-0.8.67.jar
156
- - bin/umi/lib/com.icodici.universa_core-3.13.2.jar
150
+ - bin/umi/lib/com.icodici.umi-0.8.72.jar
151
+ - bin/umi/lib/com.icodici.universa_core-3.14.2.jar
157
152
  - bin/umi/lib/com.squareup.jnagmp.jnagmp-2.0.0.jar
158
- - bin/umi/lib/com.typesafe.play.play-functional_2.12-2.6.10.jar
159
- - bin/umi/lib/com.typesafe.play.play-json_2.12-2.6.10.jar
160
- - bin/umi/lib/joda-time.joda-time-2.9.9.jar
161
153
  - bin/umi/lib/net.java.dev.jna.jna-4.5.1.jar
162
154
  - bin/umi/lib/net.java.dev.jna.jna-platform-4.5.0.jar
163
155
  - bin/umi/lib/net.sf.jopt-simple.jopt-simple-4.9.jar
164
156
  - bin/umi/lib/org.bouncycastle.bcprov-jdk15on-1.62.jar
165
157
  - bin/umi/lib/org.checkerframework.checker-qual-2.3.2.jar
166
158
  - bin/umi/lib/org.scala-lang.scala-library-2.12.7.jar
167
- - bin/umi/lib/org.scala-lang.scala-reflect-2.12.7.jar
168
159
  - bin/umi/lib/org.scala-sbt.ipcsocket.ipcsocket-1.0.0.jar
169
- - bin/umi/lib/org.typelevel.macro-compat_2.12-1.1.1.jar
170
160
  - bin/umi/lib/org.yaml.snakeyaml-1.18.jar
171
161
  - exe/unikeys
172
162
  - lib/universa.rb
@@ -211,7 +201,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
211
201
  - !ruby/object:Gem::Version
212
202
  version: '0'
213
203
  requirements: []
214
- rubygems_version: 3.0.3
204
+ rubygems_version: 3.1.2
215
205
  signing_key:
216
206
  specification_version: 4
217
207
  summary: Expose Universa Java API to ruby
Binary file