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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 69eee8eeeacfd16b933260c77c2bad6ba50281ce66282562b473b0e921c2636d
4
- data.tar.gz: 83fddd1ea7601f5d2fdb8c71401f4338a55655c296775a90da1ba1425fef9a61
3
+ metadata.gz: 70628f46673124183dc96c2e61646297010a5be0173448ed0c8a9024af371f64
4
+ data.tar.gz: 2e3d3c6c6f164cb4303f6baa148e667927c771b53172dc91edeaddb6f425ab76
5
5
  SHA512:
6
- metadata.gz: e01978f001f19da84cddbd378d9daa5046c873effd292af59d143dec0fbadc7358c0178198b2b600fce3c67d7be42351ae47ad8e164288ed6b5e9ae6b493817f
7
- data.tar.gz: f730a99bfb87abd4043325f87dee4b51bc604ed00d8e7ae10fd03999148a910fcd65544e982dd7bb128017126b28984524f3d52eefcc1cd9c6a76922e0e451e9
6
+ metadata.gz: abe3adfe9531303aa8d2528e1fdd9d1d409511ce0fed9f728a75fa804f53acf421c7f93b5f822536fa91ae3c60f36312abff67b06711e3d5bccb9ed5278d3045
7
+ data.tar.gz: f8380ed54ed31a20e294e3a3bc9fff1ac73361021c9502f34aa4219db64396097ffdf2811b25f18673cf2338d243dfdc3daa0969450d56741dc72ebc1a6427ef
@@ -17,10 +17,11 @@ module MixinBot
17
17
  sig: sig,
18
18
  scp: scp
19
19
  }
20
- if pin_token.size == 32
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
- else
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, :schmoozer
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
- @private_key =
41
- if /^-----BEGIN RSA PRIVATE KEY-----/.match? _private_key
42
- _private_key.gsub('\\r\\n', "\n").gsub("\r\n", "\n")
43
- else
44
- Base64.urlsafe_decode64 _private_key
45
- end
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)
@@ -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
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module MixinBot
4
- VERSION = '0.8.1'
4
+ VERSION = '0.8.4'
5
5
  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.8.1
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-03-21 00:00:00.000000000 Z
11
+ date: 2022-04-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport