mixin_bot 0.7.3 → 0.7.7

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: ff1380a5f8ac4dfc43535c076c71d5cf56bb33c6397678b2fec9f8ee57363856
4
- data.tar.gz: 57f9a232369a358340bd2f631590436290aa53d86ca48a23083e1257a0a20792
3
+ metadata.gz: a6b6a8ef2f385b184baa4c0228bfb9a97867cff65aa625618ce08a7ff0570237
4
+ data.tar.gz: 4d4f11a16d0bf135c56768f5658ac20e80db652474a9a5b55cb3700f41092196
5
5
  SHA512:
6
- metadata.gz: 7611839592fcc990af4de58b12760863d647b4d12dd411901313e5bf58f4b459e14ef4d39e4f020e663c1c2d243c7a97b62cb32c20892f299fe49d70f4985675
7
- data.tar.gz: a7fb7e2b860623e48d13b380ad7aa94346840ca04d809b36cdeb35d967462986a638e3e110eb31229eef39aacce7f263d6ec1e26cbfb67b516cf0ed69ee5b040
6
+ metadata.gz: e1af0e4eb4050880c4ad2593045cc911a3cd078649f4a1cd90d7a820fec799cb9d758a70160af6b94b40ae9c04592c2a2ffa00159535d9b8954095a161ad1329
7
+ data.tar.gz: 571922c76b219488eb406836cb2d293365d16abe71f4a2fb7039d69ee53b52b71578b2f604264dd0f604d13dcebb53a40db06addef52dfff34cd21941088ae94
@@ -100,7 +100,7 @@ module MixinBot
100
100
  path = '/payments'
101
101
  payload = {
102
102
  asset_id: kwargs[:asset_id],
103
- amount: kwargs[:amount].to_s,
103
+ amount: format('%.8f', kwargs[:amount].to_d.to_r),
104
104
  trace_id: kwargs[:trace_id] || SecureRandom.uuid,
105
105
  memo: kwargs[:memo],
106
106
  opponent_multisig: {
@@ -160,12 +160,12 @@ module MixinBot
160
160
 
161
161
  raise 'access_token required!' if access_token.nil? && !senders.include?(client_id)
162
162
 
163
- amount = amount.to_f.floor(8)
163
+ amount = amount.to_d.round(8)
164
164
  input_amount = utxos.map(
165
165
  &lambda { |utxo|
166
- utxo['amount'].to_f
166
+ utxo['amount'].to_d
167
167
  }
168
- ).sum.floor(8)
168
+ ).sum
169
169
 
170
170
  if input_amount < amount
171
171
  raise format(
@@ -199,7 +199,7 @@ module MixinBot
199
199
  output1 = build_output(
200
200
  receivers: senders,
201
201
  index: 1,
202
- amount: (input_amount - amount).floor(8),
202
+ amount: input_amount - amount,
203
203
  threshold: senders_threshold,
204
204
  hint: hint
205
205
  )
@@ -223,7 +223,7 @@ module MixinBot
223
223
  def build_output(receivers:, index:, amount:, threshold:, hint: nil)
224
224
  _output = create_output receivers: receivers, index: index, hint: hint
225
225
  {
226
- amount: amount.to_f.floor(8).to_s,
226
+ amount: format('%.8f', amount.to_d.to_r),
227
227
  script: build_threshold_script(threshold),
228
228
  mask: _output['mask'],
229
229
  keys: _output['keys']
@@ -10,7 +10,7 @@ module MixinBot
10
10
  asset_id = options[:asset_id]
11
11
  receivers = options[:receivers]
12
12
  threshold = options[:threshold]
13
- amount = options[:amount].to_f
13
+ amount = options[:amount].to_d
14
14
  memo = options[:memo]
15
15
  trace_id = options[:trace_id] || SecureRandom.uuid
16
16
  encrypted_pin = options[:encrypted_pin] || encrypt_pin(pin)
@@ -23,7 +23,7 @@ module MixinBot
23
23
  threshold: threshold
24
24
  },
25
25
  pin: encrypted_pin,
26
- amount: format('%.8f', amount),
26
+ amount: format('%.8f', amount.to_r),
27
27
  trace_id: trace_id,
28
28
  memo: memo
29
29
  }
@@ -40,7 +40,7 @@ module MixinBot
40
40
 
41
41
  asset_id = options[:asset_id]
42
42
  opponent_key = options[:opponent_key]
43
- amount = options[:amount].to_f
43
+ amount = options[:amount].to_d
44
44
  memo = options[:memo]
45
45
  trace_id = options[:trace_id] || SecureRandom.uuid
46
46
  encrypted_pin = options[:encrypted_pin] || encrypt_pin(pin)
@@ -50,7 +50,7 @@ module MixinBot
50
50
  asset_id: asset_id,
51
51
  opponent_key: opponent_key,
52
52
  pin: encrypted_pin,
53
- amount: format('%.8f', amount),
53
+ amount: format('%.8f', amount.to_r),
54
54
  trace_id: trace_id,
55
55
  memo: memo
56
56
  }
@@ -9,7 +9,7 @@ module MixinBot
9
9
 
10
10
  asset_id = options[:asset_id]
11
11
  opponent_id = options[:opponent_id]
12
- amount = options[:amount].to_f
12
+ amount = options[:amount].to_d
13
13
  memo = options[:memo]
14
14
  trace_id = options[:trace_id] || SecureRandom.uuid
15
15
  encrypted_pin = options[:encrypted_pin] || encrypt_pin(pin)
@@ -19,7 +19,7 @@ module MixinBot
19
19
  asset_id: asset_id,
20
20
  opponent_id: opponent_id,
21
21
  pin: encrypted_pin,
22
- amount: format('%.8f', amount),
22
+ amount: format('%.8f', amount.to_r),
23
23
  trace_id: trace_id,
24
24
  memo: memo
25
25
  }
@@ -160,9 +160,9 @@ module MixinBot
160
160
  tx
161
161
  end
162
162
 
163
- def nft_memo_hash(collection, token_id, meta)
163
+ def nft_memo_hash(collection, token_id, hash)
164
164
  collection = NULL_UUID if collection.empty?
165
- meta = meta.to_json if meta.is_a?(Hash)
165
+ raise 'hash must be 256-bit string' unless hash.is_a?(String) && hash.size == 64
166
166
 
167
167
  memo = {
168
168
  prefix: NFT_MEMO_PREFIX,
@@ -172,7 +172,7 @@ module MixinBot
172
172
  class: NFT_MEMO_DEFAULT_CLASS,
173
173
  collection: collection,
174
174
  token: token_id,
175
- extra: SHA3::Digest::SHA256.hexdigest(meta)
175
+ extra: hash
176
176
  }
177
177
 
178
178
  mark = [0]
@@ -186,8 +186,8 @@ module MixinBot
186
186
  memo
187
187
  end
188
188
 
189
- def nft_memo(collection, token_id, meta)
190
- encode_nft_memo nft_memo_hash(collection, token_id, meta)
189
+ def nft_memo(collection, token_id, hash)
190
+ encode_nft_memo nft_memo_hash(collection, token_id, hash)
191
191
  end
192
192
 
193
193
  def encode_nft_memo(memo)
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module MixinBot
4
- VERSION = '0.7.3'
4
+ VERSION = '0.7.7'
5
5
  end
data/lib/mixin_bot.rb CHANGED
@@ -2,8 +2,10 @@
2
2
 
3
3
  # third-party dependencies
4
4
  require 'English'
5
- require 'active_support/core_ext/hash'
5
+ require 'active_support'
6
6
  require 'base64'
7
+ require 'bigdecimal'
8
+ require 'bigdecimal/util'
7
9
  require 'digest'
8
10
  require 'faye/websocket'
9
11
  require 'http'
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.3
4
+ version: 0.7.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - an-lee
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-12-03 00:00:00.000000000 Z
11
+ date: 2022-01-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport