mixin_bot 0.7.2 → 0.7.6

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: 4e4d9bbcd0cbf08f07745ac8efa3b587b2d99c45a47958f627261d15fca38a08
4
- data.tar.gz: 1e0cc216622ff4cae2cb3ce9c5c58c213cde40648df8f2ad1f138f27471ef65a
3
+ metadata.gz: 89d40b2356dbace31b01499cb2d5f40e648215e8340a605d2dc91e1e9852c740
4
+ data.tar.gz: d7d376f40be808c22314d68fe8318eaa9aeb362ba4a0cd12f91c143a8685e177
5
5
  SHA512:
6
- metadata.gz: 10cbd356be328955dc03ec9c99d5cc9b0736004b5b120f75658555b7cb332112faff6f554f7d7055dc74ceced4cc1b3fb598d6b0e49127e315b7e2196e14bb15
7
- data.tar.gz: f49139e817460192aba74027af8228cdf97bb8a4e2d7caf71adc3e4c9838f21b5a3a1029f9b8a02ca04c84b5e8770e4d8875605aeb40e0a212e510daf8414050
6
+ metadata.gz: dcf89fd5986c8116f488709632ac4fdc37422f41433dc90c47ad9a2e4cd7ff7dcc4ecb5e4a644478218321c6c165a957b8b5e356aad19daac6c9ce835a0f7fba
7
+ data.tar.gz: 33e37f3198f1c9000ba871044aaee6ab4c70e4864e3774d81b29d83b019cf58143055d702db113ed721416f4c0c1b0dca525e0e1998e6586c3baa94054060cc2
@@ -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.round(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.round(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),
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.round(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.2'
4
+ VERSION = '0.7.6'
5
5
  end
data/lib/mixin_bot.rb CHANGED
@@ -2,8 +2,11 @@
2
2
 
3
3
  # third-party dependencies
4
4
  require 'English'
5
+ require 'active_support/isolated_execution_state'
5
6
  require 'active_support/core_ext/hash'
6
7
  require 'base64'
8
+ require 'bigdecimal'
9
+ require 'bigdecimal/util'
7
10
  require 'digest'
8
11
  require 'faye/websocket'
9
12
  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.2
4
+ version: 0.7.6
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: 2021-12-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport