mixin_bot 0.7.9 → 0.7.12
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/mixin_bot/cli/utils.rb +1 -7
- data/lib/mixin_bot/client.rb +3 -1
- data/lib/mixin_bot/utils.rb +26 -16
- data/lib/mixin_bot/version.rb +1 -1
- data/lib/mixin_bot.rb +2 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 13c4f9ce40bbee325eed32c0a8a3c928911e3f3f2fc1acf3481b8a483d768e0d
|
4
|
+
data.tar.gz: 916d23e4ddc9bcc9f7eea588b9b00cd46a099cbc5d7ed955f74ec45077c41f00
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5283924b083f585b4a49486f39ecf668db803b3a3f975293bd421d5edbf92c370decaa113fc3893f2c79eaffc9f78c45aa2257d93ec4b1ee0eabcd5163c1cada
|
7
|
+
data.tar.gz: 72208f22e2b8a9a26814ca2a4bc2f260e461cc25f9231746ede4fbd638519242b8fada5604e325b467acd16be05eb88809053300067d7f54d0b56cd140033b46
|
data/lib/mixin_bot/cli/utils.rb
CHANGED
@@ -11,13 +11,7 @@ module MixinBot
|
|
11
11
|
|
12
12
|
desc 'unique UUIDS', 'generate unique UUID for two or more UUIDs'
|
13
13
|
def unique(*uuids)
|
14
|
-
uuids
|
15
|
-
r = uuids.first
|
16
|
-
uuids.each_with_index do |uuid, i|
|
17
|
-
r = MixinBot::Utils.unique_uuid(r, uuid) if i.positive?
|
18
|
-
end
|
19
|
-
|
20
|
-
log r
|
14
|
+
log MixinBot::Utils.unique_uuid *uuids
|
21
15
|
end
|
22
16
|
|
23
17
|
desc 'generatetrace HASH', 'generate trace ID from Tx hash'
|
data/lib/mixin_bot/client.rb
CHANGED
@@ -76,7 +76,9 @@ module MixinBot
|
|
76
76
|
raise UnauthorizedError, errmsg
|
77
77
|
when 403, 20116, 10002, 429
|
78
78
|
raise ForbiddenError, errmsg
|
79
|
-
when
|
79
|
+
when 404
|
80
|
+
raise NotFoundError, errmsg
|
81
|
+
when 400, 10006, 20133, 500, 7000, 7001
|
80
82
|
raise ResponseError, errmsg
|
81
83
|
when 20117
|
82
84
|
raise InsufficientBalanceError, errmsg
|
data/lib/mixin_bot/utils.rb
CHANGED
@@ -17,7 +17,7 @@ module MixinBot
|
|
17
17
|
NFT_MASK = 0x00
|
18
18
|
NULL_UUID = '00000000-0000-0000-0000-000000000000'
|
19
19
|
|
20
|
-
def
|
20
|
+
def generate_unique_uuid(uuid_1, uuid_2)
|
21
21
|
md5 = Digest::MD5.new
|
22
22
|
md5 << [uuid_1, uuid_2].min
|
23
23
|
md5 << [uuid_1, uuid_2].max
|
@@ -37,6 +37,16 @@ module MixinBot
|
|
37
37
|
)
|
38
38
|
end
|
39
39
|
|
40
|
+
def unique_uuid(*uuids)
|
41
|
+
uuids.sort
|
42
|
+
r = uuids.first
|
43
|
+
uuids.each_with_index do |uuid, i|
|
44
|
+
r = MixinBot::Utils.generate_unique_uuid(r, uuid) if i.positive?
|
45
|
+
end
|
46
|
+
|
47
|
+
r
|
48
|
+
end
|
49
|
+
|
40
50
|
def generate_trace_from_hash(hash, output_index = 0)
|
41
51
|
md5 = Digest::MD5.new
|
42
52
|
md5 << hash
|
@@ -57,7 +67,7 @@ module MixinBot
|
|
57
67
|
if tx.is_a? String
|
58
68
|
tx = JSON.parse tx
|
59
69
|
end
|
60
|
-
raise "#{tx} is not a valid json" unless tx.is_a? Hash
|
70
|
+
raise ArgumentError, "#{tx} is not a valid json" unless tx.is_a? Hash
|
61
71
|
|
62
72
|
tx = tx.with_indifferent_access
|
63
73
|
bytes = []
|
@@ -99,7 +109,7 @@ module MixinBot
|
|
99
109
|
tx = {}
|
100
110
|
|
101
111
|
magic = bytes.shift(2)
|
102
|
-
raise 'Not valid raw' unless magic == MAGIC
|
112
|
+
raise ArgumentError, 'Not valid raw' unless magic == MAGIC
|
103
113
|
|
104
114
|
version = bytes.shift(2)
|
105
115
|
tx['version'] = bytes_to_int version
|
@@ -121,7 +131,7 @@ module MixinBot
|
|
121
131
|
# aggregated
|
122
132
|
aggregated = {}
|
123
133
|
|
124
|
-
raise 'invalid aggregated' unless bytes.shift(2).reverse.pack('C*').unpack1('S*') == AGGREGATED_SIGNATURE_PREFIX
|
134
|
+
raise ArgumentError, 'invalid aggregated' unless bytes.shift(2).reverse.pack('C*').unpack1('S*') == AGGREGATED_SIGNATURE_PREFIX
|
125
135
|
|
126
136
|
aggregated['signature'] = bytes.shift(64).pack('C*').unpack1('H*')
|
127
137
|
|
@@ -162,7 +172,7 @@ module MixinBot
|
|
162
172
|
|
163
173
|
def nft_memo_hash(collection, token_id, hash)
|
164
174
|
collection = NULL_UUID if collection.empty?
|
165
|
-
raise 'hash must be 256-bit string' unless hash.is_a?(String) && hash.size == 64
|
175
|
+
raise ArgumentError, 'hash must be 256-bit string' unless hash.is_a?(String) && hash.size == 64
|
166
176
|
|
167
177
|
memo = {
|
168
178
|
prefix: NFT_MEMO_PREFIX,
|
@@ -171,14 +181,14 @@ module MixinBot
|
|
171
181
|
chain: NFT_MEMO_DEFAULT_CHAIN,
|
172
182
|
class: NFT_MEMO_DEFAULT_CLASS,
|
173
183
|
collection: collection,
|
174
|
-
token: token_id.
|
184
|
+
token: token_id.to_i,
|
175
185
|
extra: hash
|
176
186
|
}
|
177
187
|
|
178
188
|
mark = [0]
|
179
189
|
mark.map do |index|
|
180
190
|
if index >= 64
|
181
|
-
raise "invalid NFO memo index #{index}"
|
191
|
+
raise ArgumentError, "invalid NFO memo index #{index}"
|
182
192
|
end
|
183
193
|
memo[:mask] = memo[:mask] ^ (1 << index)
|
184
194
|
end
|
@@ -252,8 +262,8 @@ module MixinBot
|
|
252
262
|
private
|
253
263
|
|
254
264
|
def encode_int(int)
|
255
|
-
raise "only support int #{int}" unless int.is_a?(Integer)
|
256
|
-
raise "int #{int} is larger than MAX_ENCODE_INT #{MAX_ENCODE_INT}" if int > MAX_ENCODE_INT
|
265
|
+
raise ArgumentError, "only support int #{int}" unless int.is_a?(Integer)
|
266
|
+
raise ArgumentError,"int #{int} is larger than MAX_ENCODE_INT #{MAX_ENCODE_INT}" if int > MAX_ENCODE_INT
|
257
267
|
|
258
268
|
[int].pack('S*').bytes.reverse
|
259
269
|
end
|
@@ -263,7 +273,7 @@ module MixinBot
|
|
263
273
|
end
|
264
274
|
|
265
275
|
def bytes_of(int)
|
266
|
-
raise 'not integer' unless int.is_a?(Integer)
|
276
|
+
raise ArgumentError, 'not integer' unless int.is_a?(Integer)
|
267
277
|
|
268
278
|
bytes = []
|
269
279
|
loop do
|
@@ -427,8 +437,8 @@ module MixinBot
|
|
427
437
|
bytes += NULL_BYTES
|
428
438
|
else
|
429
439
|
signers.each do |sig, i|
|
430
|
-
raise 'signers not sorted' if i > 0 && sig <= signers[i - 1]
|
431
|
-
raise 'signers not sorted' if sig > MAX_ENCODE_INT
|
440
|
+
raise ArgumentError, 'signers not sorted' if i > 0 && sig <= signers[i - 1]
|
441
|
+
raise ArgumentError, 'signers not sorted' if sig > MAX_ENCODE_INT
|
432
442
|
end
|
433
443
|
|
434
444
|
max = signers.last
|
@@ -458,7 +468,7 @@ module MixinBot
|
|
458
468
|
0
|
459
469
|
end
|
460
470
|
|
461
|
-
raise 'signatures overflow' if sl == MAX_ENCODE_INT
|
471
|
+
raise ArgumentError, 'signatures overflow' if sl == MAX_ENCODE_INT
|
462
472
|
bytes += encode_int sl
|
463
473
|
|
464
474
|
if sl > 0
|
@@ -493,7 +503,7 @@ module MixinBot
|
|
493
503
|
|
494
504
|
if bytes[...2] != NULL_BYTES
|
495
505
|
magic = bytes.shift(2)
|
496
|
-
raise 'Not valid input' unless magic == MAGIC
|
506
|
+
raise ArgumentError, 'Not valid input' unless magic == MAGIC
|
497
507
|
|
498
508
|
deposit = {}
|
499
509
|
deposit['chain'] = bytes.shift(32).pack('C*').unpack1('H*')
|
@@ -516,7 +526,7 @@ module MixinBot
|
|
516
526
|
|
517
527
|
if bytes[...2] != NULL_BYTES
|
518
528
|
magic = bytes.shift(2)
|
519
|
-
raise 'Not valid input' unless magic == MAGIC
|
529
|
+
raise ArgumentError, 'Not valid input' unless magic == MAGIC
|
520
530
|
|
521
531
|
mint = {}
|
522
532
|
if bytes[...2] != NULL_BYTES
|
@@ -567,7 +577,7 @@ module MixinBot
|
|
567
577
|
|
568
578
|
if bytes[...2] != NULL_BYTES
|
569
579
|
magic = bytes.shift(2)
|
570
|
-
raise 'Not valid output' unless magic == MAGIC
|
580
|
+
raise ArgumentError, 'Not valid output' unless magic == MAGIC
|
571
581
|
|
572
582
|
withdraw = {}
|
573
583
|
|
data/lib/mixin_bot/version.rb
CHANGED
data/lib/mixin_bot.rb
CHANGED
@@ -31,9 +31,11 @@ module MixinBot
|
|
31
31
|
end
|
32
32
|
|
33
33
|
class Error < StandardError; end
|
34
|
+
class ArgumentError < StandardError; end
|
34
35
|
class HttpError < Error; end
|
35
36
|
class RequestError < Error; end
|
36
37
|
class ResponseError < Error; end
|
38
|
+
class NotFoundError < Error; end
|
37
39
|
class UnauthorizedError < Error; end
|
38
40
|
class ForbiddenError < Error; end
|
39
41
|
class InsufficientBalanceError < Error; end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mixin_bot
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.7.
|
4
|
+
version: 0.7.12
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- an-lee
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-
|
11
|
+
date: 2022-03-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|