nem-ruby 0.0.8 → 0.0.9

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: 0c889bc0039c2bdcd4fbbb850eb858cc31e25832e8a9b97209694c920be4e765
4
- data.tar.gz: 717eba0d9db81aacf501b6c6039d21e5ab7ef376c39fbcfd5af761cac6307451
3
+ metadata.gz: '0280ea3ed19d1f11f874b5443e59eeba0a21eb4fec27e31d578250c74c377730'
4
+ data.tar.gz: 3d9621bfe402f975ef08c2265a28dd3132ca86631a0ee14268fb1f5c2e340fa3
5
5
  SHA512:
6
- metadata.gz: 713c72f13c16b5d126b43134edab7dffc2f2c1619c1123e5e7f17219cb44d26ea610f7acaed190df0f3615906ff723605fdd31deda41a9a253e990715c44f05e
7
- data.tar.gz: 49b82f440b5701bd09e4f2c9652c08c3a8a9e09fc35e3760103da20c97eb5a7ccd118fcd132424f4ebd0decabfc5fdb706f06a9832bf75683e7103001fb09692
6
+ metadata.gz: d2983c53b1edb903c83571e2403dee0611848a644b21b3a4f5bbacaabb227a8b08c707ec2d10cdeda2e91be84e346b828ec72c40ad0509e15e9ad71ae117dc09
7
+ data.tar.gz: f887982de7c646a1604ad2c790db4f618141190750bf73cdbc912a1bb7a5ab5a569d3e136fb29a380f6ff81d9ee9fbbb92816b6f3fb24d9c30f344d49756eb76
@@ -12,7 +12,7 @@ module Nem
12
12
  tmp = if @transaction.has_mosaics?
13
13
  mosaics_fee
14
14
  else
15
- FEE_FACTOR * minimum_fee(@transaction.amount / 1_000_000)
15
+ FEE_FACTOR * minimum_fee(@transaction.amount).to_i
16
16
  end
17
17
  tmp += message_fee if @transaction.has_message?
18
18
  tmp * 1_000_000
@@ -39,7 +39,13 @@ module Nem
39
39
  FEE_FACTOR * [1, (@transaction.message.bytesize / 2 / 32) + 1].max
40
40
  end
41
41
 
42
+ def xem_equivalent(multiplier, quantity, supply, divisibility)
43
+ return 0 if supply == 0
44
+ multiplier * 8_999_999_999 * quantity / supply / 10**(divisibility + 6)
45
+ end
46
+
42
47
  def mosaics_fee
48
+ multiplier = @transaction.amount * 1_000_000
43
49
  FEE_FACTOR * @transaction.mosaics.inject(0) do |sum, moa|
44
50
  tmp_fee = 0
45
51
  if moa.divisibility == 0 && moa.initial_supply <= 10_000
@@ -50,13 +56,14 @@ module Nem
50
56
  # custom mosaic fee, Max is 1.25.
51
57
  max_mosaic_quantity = 9_000_000_000_000_000
52
58
  total_mosaic_quantity = moa.initial_supply * (10**moa.divisibility)
53
- supply_related_adjustment = (0.8 * (Math.log(max_mosaic_quantity / total_mosaic_quantity))).floor
54
- num_nem = if moa.initial_supply == 0
55
- 0
56
- else
57
- 8_999_999_999.to_f * moa.quantity * 1_000_000 / moa.initial_supply / (10**(moa.divisibility + 6))
58
- end
59
- tmp_fee = minimum_fee(num_nem.ceil)
59
+ supply_related_adjustment = (0.8 * (Math.log(max_mosaic_quantity / total_mosaic_quantity))).to_i
60
+ num_nem = xem_equivalent(
61
+ multiplier,
62
+ moa.amount,
63
+ moa.initial_supply,
64
+ moa.divisibility
65
+ )
66
+ tmp_fee = minimum_fee(num_nem.to_i)
60
67
  end
61
68
  sum + [1, tmp_fee - supply_related_adjustment].max
62
69
  end
@@ -19,12 +19,15 @@ module Nem
19
19
  end
20
20
 
21
21
  def verify_signature(signer, hash, apostille_hash)
22
- # TDOD: support private apostille
22
+ # TODO: support private apostille
23
23
  raise NotImplementedError, 'Not implemented private apostille'
24
24
  end
25
25
 
26
26
  # @return [Nem::Keypair] new key pair
27
- def self.generate(seed = SecureRandom.hex(64))
27
+ def self.generate(seed = SecureRandom.hex(32))
28
+ unless seed =~ /\A\h{64}\z/ || seed =~ /\A\h{66}\z/
29
+ raise ArgumentError, 'PrivateKey is not valid!'
30
+ end
28
31
  new(seed)
29
32
  end
30
33
 
@@ -1,3 +1,3 @@
1
1
  module Nem
2
- VERSION = '0.0.8'
2
+ VERSION = '0.0.9'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nem-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.8
4
+ version: 0.0.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yoshiyuki Ieyama
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-02-12 00:00:00.000000000 Z
11
+ date: 2018-02-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler