mixin_bot 0.8.1 → 0.8.4

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 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