wallet_validator 0.2.0 → 0.3.3

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: 625e53bd99b16075557b5128435fece20ee05dfa3ae80285a9094032b1ae48a7
4
- data.tar.gz: c32ff56118342fe5a5f2a1bb14d4125ffde8ece700100435d7e215565491e51d
3
+ metadata.gz: f3ac603fed93cd9dce85b3ffe8ea60e10489721c4f55d16296f6ae0c35b6c13b
4
+ data.tar.gz: 8852e861273715a6d05362427c2258e23ae5dddb34b849d3afa58cb3b94b0e23
5
5
  SHA512:
6
- metadata.gz: 01e6c190d7f29b886bf4bd1f6eafdf7467bd511a5d7fd0a85ad95066dd447a3cf856e20ae899b0c9d1d9ab7e2f477bca1616767a1b03e90b4564a72e0278ed23
7
- data.tar.gz: cac58b015e6d63da27ba8e22a5979f60691b58a8d476918304809b25e5fd424775800166f07606a1a355259bb3b256440d5e1c3c54dfb47fd3dfd085faef7368
6
+ metadata.gz: 5f63d1547da43cf4c0593e4eca8ac87d5ce38445f3b3cea1c2574d3c816e8440d55c32a7b4cacbaacadb6183f2dcb2e6cefc56da208834207600bf132aed23c6
7
+ data.tar.gz: a8e8eade81642220cda1d0a76a8df52cf48d812e3cbcacb470362a420b87b2c90f0ff003372b5b4a71646effc617253167fda255a9d5a2885fe1ae31e63160ea
data/Gemfile CHANGED
@@ -5,5 +5,4 @@ gemspec
5
5
 
6
6
  gem "rake", "~> 12.0"
7
7
  gem "rspec", "~> 3.0"
8
- gem "pry"
9
8
  gem "digest-sha3"
data/Gemfile.lock CHANGED
@@ -1,18 +1,13 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- wallet_validator (0.1.1)
4
+ wallet_validator (0.3.2)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
8
8
  specs:
9
- coderay (1.1.3)
10
9
  diff-lcs (1.4.4)
11
10
  digest-sha3 (1.1.0)
12
- method_source (1.0.0)
13
- pry (0.14.1)
14
- coderay (~> 1.1)
15
- method_source (~> 1.0)
16
11
  rake (12.3.3)
17
12
  rspec (3.10.0)
18
13
  rspec-core (~> 3.10.0)
@@ -33,7 +28,6 @@ PLATFORMS
33
28
 
34
29
  DEPENDENCIES
35
30
  digest-sha3
36
- pry
37
31
  rake (~> 12.0)
38
32
  rspec (~> 3.0)
39
33
  wallet_validator!
data/README.md CHANGED
@@ -20,7 +20,15 @@ Or install it yourself as:
20
20
 
21
21
  ## Usage
22
22
 
23
- 第三個參數為 `is_testnet`,預設為 false,也就是預設為主鏈錢包格式檢查
23
+ 可以透過直接啟動設定預設值
24
+
25
+ ```ruby
26
+ WalletValidator.configure do |config|
27
+ config.chain = "testnet"
28
+ end
29
+ ```
30
+
31
+ 或是第三個參數為 `is_testnet`,預設為 false,也就是預設為主鏈錢包格式檢查
24
32
 
25
33
  mainnet
26
34
 
@@ -12,16 +12,20 @@ module WalletValidator
12
12
  def valid?
13
13
  match = address.match(/^(.+):(.+)$/)
14
14
 
15
- return false unless match[1] == is_testnet ? "bchtest" : "bitcoincash"
15
+ if match
16
+ return false unless match[1] == is_testnet ? "bchtest" : "bitcoincash"
16
17
 
17
- prefix = is_testnet ? [2, 3, 8, 20, 5, 19, 20, 0] : [2, 9, 20, 3, 15, 9, 14, 3, 1, 19, 8, 0]
18
- raw_payload = match[2].split("").map { |m| Crypto::Bech32::CHARSET.index(m) }
19
- return false if bch_polymod(prefix + raw_payload) != 0 # raise "Address checksum invalid: #{cashaddress}"
18
+ prefix = is_testnet ? [2, 3, 8, 20, 5, 19, 20, 0] : [2, 9, 20, 3, 15, 9, 14, 3, 1, 19, 8, 0]
19
+ raw_payload = match[2].split("").map { |m| Crypto::Bech32::CHARSET.index(m) }
20
+ return false if bch_polymod(prefix + raw_payload) != 0 # raise "Address checksum invalid: #{cashaddress}"
20
21
 
21
- payload = bch_convert_bits(raw_payload[0..-9], 5, 8, false)
22
- return false if payload.empty? # raise "Converted payload was empty"
22
+ payload = bch_convert_bits(raw_payload[0..-9], 5, 8, false)
23
+ return false if payload.empty? # raise "Converted payload was empty"
23
24
 
24
- return true
25
+ return true
26
+ else
27
+ Btc.new(@address, @is_testnet).valid?
28
+ end
25
29
  end
26
30
 
27
31
  private
@@ -0,0 +1,25 @@
1
+
2
+
3
+ module WalletValidator
4
+ class Config
5
+ class << self
6
+ # @param [Config] new_instance
7
+ attr_writer :instance
8
+
9
+ # @return [Config]
10
+ def instance
11
+ @instance ||= new
12
+ end
13
+ end
14
+
15
+ attr_accessor :chain
16
+
17
+ def initialize(user_config = {})
18
+ self.chain = user_config[:chain]
19
+ end
20
+
21
+ def valid?
22
+ !self.chain.nil?
23
+ end
24
+ end
25
+ end
@@ -1,3 +1,3 @@
1
1
  module WalletValidator
2
- VERSION = "0.2.0"
2
+ VERSION = "0.3.3"
3
3
  end
@@ -1,4 +1,5 @@
1
- require "pry"
1
+ require "wallet_validator/config"
2
+
2
3
  require "wallet_validator/crypto/bech32"
3
4
  require "wallet_validator/crypto/base32"
4
5
  require "wallet_validator/crypto/base58"
@@ -19,11 +20,14 @@ require "wallet_validator/sol"
19
20
  require "wallet_validator/xem"
20
21
  require "wallet_validator/sda"
21
22
 
23
+
22
24
  module WalletValidator
23
25
  class UnknownCurrency < StandardError; end
24
26
  module_function
25
27
 
26
- def valid?(currency, address, is_testnet = false)
28
+ def valid?(currency, address, is_testnet = nil)
29
+ is_testnet ||= WalletValidator::Config.instance.chain == "testnet"
30
+
27
31
  address(currency, address, is_testnet).valid?
28
32
  end
29
33
 
@@ -32,4 +36,12 @@ module WalletValidator
32
36
  rescue NameError
33
37
  raise UnknownCurrency, "Wrong currency #{currency}"
34
38
  end
39
+
40
+ def configure
41
+ yield config = WalletValidator::Config.instance
42
+ end
43
+
44
+ def configured?
45
+ WalletValidator::Config.instance.valid?
46
+ end
35
47
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: wallet_validator
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nic
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-10-05 00:00:00.000000000 Z
11
+ date: 2021-10-18 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: Write a longer description or delete this line.
14
14
  email:
@@ -35,6 +35,7 @@ files:
35
35
  - lib/wallet_validator/bchsv.rb
36
36
  - lib/wallet_validator/bnb.rb
37
37
  - lib/wallet_validator/btc.rb
38
+ - lib/wallet_validator/config.rb
38
39
  - lib/wallet_validator/crypto/base32.rb
39
40
  - lib/wallet_validator/crypto/base58.rb
40
41
  - lib/wallet_validator/crypto/bech32.rb