mixin_bot 0.8.1 → 0.8.4
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 +23 -4
- 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: 70628f46673124183dc96c2e61646297010a5be0173448ed0c8a9024af371f64
|
4
|
+
data.tar.gz: 2e3d3c6c6f164cb4303f6baa148e667927c771b53172dc91edeaddb6f425ab76
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: abe3adfe9531303aa8d2528e1fdd9d1d409511ce0fed9f728a75fa804f53acf421c7f93b5f822536fa91ae3c60f36312abff67b06711e3d5bccb9ed5278d3045
|
7
|
+
data.tar.gz: f8380ed54ed31a20e294e3a3bc9fff1ac73361021c9502f34aa4219db64396097ffdf2811b25f18673cf2338d243dfdc3daa0969450d56741dc72ebc1a6427ef
|
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,10 +16,10 @@ 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]
|
22
|
-
@token = kwargs[:token]
|
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
|
+
@token = kwargs[:token].presence&.to_i
|
23
23
|
@extra = kwargs[:extra]
|
24
24
|
@memo = kwargs[:memo]
|
25
25
|
@hex = kwargs[:hex]
|
@@ -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
|
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.4
|
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
|