universa 0.3.1 → 0.3.2
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/lib/universa/client.rb +2 -0
- data/lib/universa/contract.rb +24 -2
- data/lib/universa/ubox.rb +41 -0
- data/lib/universa/version.rb +1 -1
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8bcc91f917cdd77fa909ad8b9224717144650012c4e81af41414560f820bcc8e
|
4
|
+
data.tar.gz: 79503f7a631b4772126fb48f4dd155e32170893a472a7ca56f27292d9757b844
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 89e22f1e4d1862cf6c949b7b1221dedb77a4218329af56af32dcdb2f97c95fca184cec156623ddba808bd6a8e38e149dd31d19c7122363422851260e7d03691f
|
7
|
+
data.tar.gz: 47c521fcd58fcb88e41525957bf882f37b6f8dd621ace5e4b24515709b6992e0f387e34f6494568112d948dc8cd6103e2fbddd4bb4e65fa057896c16fce68a03
|
data/lib/universa/client.rb
CHANGED
@@ -113,8 +113,10 @@ module Universa
|
|
113
113
|
|
114
114
|
end
|
115
115
|
|
116
|
+
# The connection to a single Universa node.
|
116
117
|
class Connection
|
117
118
|
|
119
|
+
# Do not create it direcly, use {Client#random_connection}, {Client#random_connections} or {Client#[]} instead
|
118
120
|
def initialize umi_client
|
119
121
|
@client = umi_client
|
120
122
|
end
|
data/lib/universa/contract.rb
CHANGED
@@ -53,7 +53,7 @@ module Universa
|
|
53
53
|
#
|
54
54
|
# @param [String] string_id id string representation, like from +hash_id_instance.to_s+. See {#to_s}.
|
55
55
|
def self.from_string(string_id)
|
56
|
-
string_id.force_encoding('utf-8').gsub('-','+').gsub('_','/')
|
56
|
+
string_id.force_encoding('utf-8').gsub('-', '+').gsub('_', '/')
|
57
57
|
invoke_static 'with_digest', string_id
|
58
58
|
end
|
59
59
|
|
@@ -80,7 +80,7 @@ module Universa
|
|
80
80
|
# Could be decoded safely back with {HashId.from_string} but not (most likely) with JAVA API itself
|
81
81
|
# @return [String] RFC3548 modified base64
|
82
82
|
def to_url_safe_string
|
83
|
-
Base64.encode64(get_digest).gsub(/\s/, '').gsub('/','_').gsub('+', '-')
|
83
|
+
Base64.encode64(get_digest).gsub(/\s/, '').gsub('/', '_').gsub('+', '-')
|
84
84
|
end
|
85
85
|
|
86
86
|
# To use it as a hash key_address.
|
@@ -94,6 +94,21 @@ module Universa
|
|
94
94
|
self == other
|
95
95
|
end
|
96
96
|
|
97
|
+
# Compare hashid with string representation, binary representation or another HashId instance
|
98
|
+
# automatically.
|
99
|
+
def == other
|
100
|
+
return false if other == nil
|
101
|
+
if other.is_a?(Universa::HashId)
|
102
|
+
super
|
103
|
+
else
|
104
|
+
if other.size == 96
|
105
|
+
bytes == other
|
106
|
+
else
|
107
|
+
to_s == other
|
108
|
+
end
|
109
|
+
end
|
110
|
+
end
|
111
|
+
|
97
112
|
end
|
98
113
|
|
99
114
|
# Universa contract adapter.
|
@@ -278,6 +293,13 @@ module Universa
|
|
278
293
|
revoke
|
279
294
|
end
|
280
295
|
|
296
|
+
# Ruby-style contracts equality.
|
297
|
+
def == other
|
298
|
+
return false if !other || !other.is_a?(Contract)
|
299
|
+
hash_id == other.hash_id
|
300
|
+
end
|
301
|
+
|
302
|
+
|
281
303
|
end
|
282
304
|
|
283
305
|
end
|
@@ -0,0 +1,41 @@
|
|
1
|
+
# THIS IS A WORK IN PROGRESS COULD VE CHANGED COMPLETELY, OR EVEN DROPPED. DO NOT USE!!!
|
2
|
+
|
3
|
+
=begin
|
4
|
+
|
5
|
+
U-Box is a special one-contract transactional filesystem-based storage to hold U packs. It is file based,
|
6
|
+
both file and extension are significant.
|
7
|
+
|
8
|
+
File name is:
|
9
|
+
|
10
|
+
<name>_<units>
|
11
|
+
|
12
|
+
where
|
13
|
+
|
14
|
+
- <name> is just a name of the pack. When unique name collides, <name> is appended with a serial <name><serial>.
|
15
|
+
|
16
|
+
extensions are:
|
17
|
+
|
18
|
+
.u - currently active U pack
|
19
|
+
.u1 - next U pack, exist while payment operation is in progress
|
20
|
+
|
21
|
+
.us file timestamp is used as FS lock flag. If it is newer than 45s, the ubox is considered locked. after it
|
22
|
+
the cleanup procedure should be performed.
|
23
|
+
|
24
|
+
UBox wallet contains various assets that could be used to pay for transactions:
|
25
|
+
|
26
|
+
- ~/.universa/ubox contains all U-packs available for the system
|
27
|
+
|
28
|
+
- ~/.universa/ubox/inbox could be used to put U-packs in .unicon formaat to be automatically imported
|
29
|
+
|
30
|
+
=end
|
31
|
+
|
32
|
+
require 'fileutils'
|
33
|
+
|
34
|
+
class UBox
|
35
|
+
|
36
|
+
def import contract: nil, path: "~/.universa/ubox"
|
37
|
+
@path = path
|
38
|
+
FileUtils.mkdir_p(path) unless File.exist?(path)
|
39
|
+
end
|
40
|
+
|
41
|
+
end
|
data/lib/universa/version.rb
CHANGED
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: 0.3.
|
4
|
+
version: 0.3.2
|
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
|
+
date: 2019-05-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: farcall
|
@@ -170,6 +170,7 @@ files:
|
|
170
170
|
- lib/universa/string_utils.rb
|
171
171
|
- lib/universa/tools.rb
|
172
172
|
- lib/universa/u_settings.rb
|
173
|
+
- lib/universa/ubox.rb
|
173
174
|
- lib/universa/umi.rb
|
174
175
|
- lib/universa/version.rb
|
175
176
|
- lib/universa/weak_reference.rb
|
@@ -193,7 +194,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
193
194
|
- !ruby/object:Gem::Version
|
194
195
|
version: '0'
|
195
196
|
requirements: []
|
196
|
-
rubygems_version: 3.0.
|
197
|
+
rubygems_version: 3.0.3
|
197
198
|
signing_key:
|
198
199
|
specification_version: 4
|
199
200
|
summary: Expose Universa Java API to ruby
|