universa 3.13.2.2 → 3.14.2.1

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: 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