mixin_bot 0.8.0 → 0.8.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/mixin_bot/api/auth.rb +3 -2
- data/lib/mixin_bot/api.rb +8 -7
- data/lib/mixin_bot/utils/nfo.rb +26 -3
- data/lib/mixin_bot/version.rb +1 -1
- 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: 668a2577b6ceb0f2e78d47002062ff1f451006027a31b1bac2081864494cf9fe
|
4
|
+
data.tar.gz: 3c291ef3a6b7ed2c9ef9b6a56726c563639b575e05378e1ce15466cc00c23b15
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c8b2d87ca9ff0293aa0e63ce3d82986b30df7fcfe6197eb415b0eee16da6ac00104899e1431bd0975cb11e08a8f5f2e7fac431c02204b73bb0b5b0278525afa5
|
7
|
+
data.tar.gz: 7a50ecdb7d683ef493fb5a60fa042ba7b3bb904eaa3fec589b3e7fa10a33968936bc2495aef5325c3636dce30ac69c85dcf486fe0764c6d522c54766b012be19
|
data/lib/mixin_bot/api/auth.rb
CHANGED
@@ -17,10 +17,11 @@ module MixinBot
|
|
17
17
|
sig: sig,
|
18
18
|
scp: scp
|
19
19
|
}
|
20
|
-
|
20
|
+
case key_type
|
21
|
+
when :ed25519
|
21
22
|
jwk = JOSE::JWK.from_okp [:Ed25519, private_key]
|
22
23
|
jws = JOSE::JWS.from({ 'alg' => 'EdDSA' })
|
23
|
-
|
24
|
+
when :rsa
|
24
25
|
jwk = JOSE::JWK.from_pem private_key
|
25
26
|
jws = JOSE::JWS.from({ 'alg' => 'RS512' })
|
26
27
|
end
|
data/lib/mixin_bot/api.rb
CHANGED
@@ -22,7 +22,7 @@ require_relative './api/withdraw'
|
|
22
22
|
|
23
23
|
module MixinBot
|
24
24
|
class API
|
25
|
-
attr_reader :client_id, :client_secret, :session_id, :pin_token, :private_key, :client, :blaze_host, :
|
25
|
+
attr_reader :client_id, :client_secret, :session_id, :pin_token, :private_key, :client, :blaze_host, :key_type
|
26
26
|
|
27
27
|
def initialize(options = {})
|
28
28
|
@client_id = options[:client_id] || MixinBot.client_id
|
@@ -37,12 +37,13 @@ module MixinBot
|
|
37
37
|
''
|
38
38
|
end
|
39
39
|
_private_key = options[:private_key] || MixinBot.private_key
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
40
|
+
if /^-----BEGIN RSA PRIVATE KEY-----/.match? _private_key
|
41
|
+
@private_key = _private_key.gsub('\\r\\n', "\n").gsub("\r\n", "\n")
|
42
|
+
@key_type = :rsa
|
43
|
+
else
|
44
|
+
@private_key = Base64.urlsafe_decode64 _private_key
|
45
|
+
@key_type = :ed25519
|
46
|
+
end
|
46
47
|
end
|
47
48
|
|
48
49
|
def sign_raw_transaction(tx)
|
data/lib/mixin_bot/utils/nfo.rb
CHANGED
@@ -16,9 +16,9 @@ module MixinBot
|
|
16
16
|
@prefix = NFT_MEMO_PREFIX
|
17
17
|
@version = NFT_MEMO_VERSION
|
18
18
|
@mask = kwargs[:mask] || 0
|
19
|
-
@chain = kwargs[:chain]
|
20
|
-
@nm_class = kwargs[:nm_class]
|
21
|
-
@collection = kwargs[:collection]
|
19
|
+
@chain = kwargs[:chain] || NFT_MEMO_DEFAULT_CHAIN
|
20
|
+
@nm_class = kwargs[:nm_class] || NFT_MEMO_DEFAULT_CLASS
|
21
|
+
@collection = kwargs[:collection] || NULL_UUID
|
22
22
|
@token = kwargs[:token]
|
23
23
|
@extra = kwargs[:extra]
|
24
24
|
@memo = kwargs[:memo]
|
@@ -38,6 +38,25 @@ module MixinBot
|
|
38
38
|
memo
|
39
39
|
end
|
40
40
|
|
41
|
+
def unique_token_id
|
42
|
+
bytes = []
|
43
|
+
bytes += MixinBot::Utils::UUID.new(hex: chain).packed.bytes
|
44
|
+
bytes += [nm_class].pack('H*').bytes
|
45
|
+
bytes += MixinBot::Utils::UUID.new(hex: collection).packed.bytes
|
46
|
+
bytes += MixinBot::Utils.bytes_of token
|
47
|
+
|
48
|
+
md5 = Digest::MD5.new
|
49
|
+
md5.update bytes.pack('c*')
|
50
|
+
digest = [md5.hexdigest].pack('H*').bytes
|
51
|
+
|
52
|
+
digest[6] = (digest[6] & 0x0f) | 0x30
|
53
|
+
digest[8] = (digest[8] & 0x3f) | 0x80
|
54
|
+
|
55
|
+
hex = digest.pack('c*').unpack1('H*')
|
56
|
+
|
57
|
+
MixinBot::Utils::UUID.new(hex: hex).unpacked
|
58
|
+
end
|
59
|
+
|
41
60
|
def mark(*indexes)
|
42
61
|
indexes.map do |index|
|
43
62
|
if index >= 64 || index < 0
|
@@ -70,6 +89,8 @@ module MixinBot
|
|
70
89
|
token_bytes = MixinBot::Utils.bytes_of token
|
71
90
|
bytes += MixinBot::Utils.bytes_of token_bytes.size
|
72
91
|
bytes += token_bytes
|
92
|
+
else
|
93
|
+
bytes += [0]
|
73
94
|
end
|
74
95
|
|
75
96
|
extra_bytes = [extra].pack('H*').bytes
|
@@ -127,6 +148,8 @@ module MixinBot
|
|
127
148
|
|
128
149
|
extra_length = bytes.shift
|
129
150
|
@extra = bytes.shift(extra_length).pack('C*').unpack1('H*')
|
151
|
+
|
152
|
+
self
|
130
153
|
end
|
131
154
|
|
132
155
|
def to_h
|
data/lib/mixin_bot/version.rb
CHANGED
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.8.
|
4
|
+
version: 0.8.3
|
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-04-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|