adequate_crypto_address 0.1.10 → 0.2.0

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.
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: adequate_crypto_address
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.10
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - vtm
@@ -37,72 +37,41 @@ dependencies:
37
37
  - - "~>"
38
38
  - !ruby/object:Gem::Version
39
39
  version: '1.3'
40
- - !ruby/object:Gem::Dependency
41
- name: rake
42
- requirement: !ruby/object:Gem::Requirement
43
- requirements:
44
- - - "~>"
45
- - !ruby/object:Gem::Version
46
- version: '13.2'
47
- type: :development
48
- prerelease: false
49
- version_requirements: !ruby/object:Gem::Requirement
50
- requirements:
51
- - - "~>"
52
- - !ruby/object:Gem::Version
53
- version: '13.2'
54
- - !ruby/object:Gem::Dependency
55
- name: rspec
56
- requirement: !ruby/object:Gem::Requirement
57
- requirements:
58
- - - "~>"
59
- - !ruby/object:Gem::Version
60
- version: '3.13'
61
- type: :development
62
- prerelease: false
63
- version_requirements: !ruby/object:Gem::Requirement
64
- requirements:
65
- - - "~>"
66
- - !ruby/object:Gem::Version
67
- version: '3.13'
68
- description: A Ruby Library for dealing with validation cryptocurrency adresses.
40
+ description: Provides Ruby helpers to validate cryptocurrency addresses across common
41
+ chains.
69
42
  executables: []
70
43
  extensions: []
71
44
  extra_rdoc_files: []
72
45
  files:
73
- - ".coveralls.yml"
74
- - ".gitignore"
75
- - ".rspec"
76
- - ".rubocop.yml"
77
- - ".travis.yml"
78
- - Gemfile
46
+ - CHANGELOG.md
79
47
  - LICENSE.txt
80
- - Makefile
81
48
  - README.md
82
- - Rakefile
83
- - adequate_crypto_address.gemspec
84
49
  - bin/console
85
50
  - lib/adequate_crypto_address.rb
51
+ - lib/adequate_crypto_address/ada.rb
86
52
  - lib/adequate_crypto_address/altcoin.rb
87
53
  - lib/adequate_crypto_address/bch.rb
88
54
  - lib/adequate_crypto_address/btc.rb
89
55
  - lib/adequate_crypto_address/dash.rb
56
+ - lib/adequate_crypto_address/doge.rb
90
57
  - lib/adequate_crypto_address/eth.rb
91
58
  - lib/adequate_crypto_address/ltc.rb
59
+ - lib/adequate_crypto_address/sol.rb
92
60
  - lib/adequate_crypto_address/ton.rb
93
61
  - lib/adequate_crypto_address/utils/bch.rb
94
62
  - lib/adequate_crypto_address/utils/bech32.rb
63
+ - lib/adequate_crypto_address/utils/monero_base58.rb
64
+ - lib/adequate_crypto_address/utils/xlm.rb
95
65
  - lib/adequate_crypto_address/version.rb
66
+ - lib/adequate_crypto_address/xlm.rb
96
67
  - lib/adequate_crypto_address/xmr.rb
97
68
  - lib/adequate_crypto_address/xrp.rb
98
69
  - lib/adequate_crypto_address/zec.rb
99
- - spec/adequate_crypto_address/bch_spec.rb
100
- - spec/adequate_crypto_address_spec.rb
101
- - spec/spec_helper.rb
102
70
  homepage: https://github.com/vtm9/adequate_crypto_address
103
71
  licenses:
104
72
  - MIT
105
- metadata: {}
73
+ metadata:
74
+ rubygems_mfa_required: 'true'
106
75
  rdoc_options: []
107
76
  require_paths:
108
77
  - lib
@@ -110,14 +79,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
110
79
  requirements:
111
80
  - - ">="
112
81
  - !ruby/object:Gem::Version
113
- version: '0'
82
+ version: '3.0'
114
83
  required_rubygems_version: !ruby/object:Gem::Requirement
115
84
  requirements:
116
85
  - - ">="
117
86
  - !ruby/object:Gem::Version
118
87
  version: '0'
119
88
  requirements: []
120
- rubygems_version: 3.6.9
89
+ rubygems_version: 4.0.16
121
90
  specification_version: 4
122
- summary: A Ruby Library for dealing with validation cryptocurrency adresses.
91
+ summary: Ruby helpers for validating cryptocurrency addresses.
123
92
  test_files: []
data/.coveralls.yml DELETED
@@ -1,2 +0,0 @@
1
- repo_token: ATgUXu3s0jZaYdzAdUr8P8ytuMMbR9ueh
2
-
data/.gitignore DELETED
@@ -1,16 +0,0 @@
1
- /.bundle/
2
- /.yardoc
3
- /_yardoc/
4
- /coverage/
5
- /doc/
6
- /pkg/
7
- /spec/reports/
8
- /tmp/
9
-
10
- Gemfile.lock
11
-
12
- # rspec failure tracking
13
- .rspec_status
14
-
15
- # Spec artifacts
16
- /coverage
data/.rspec DELETED
@@ -1,3 +0,0 @@
1
- --format documentation
2
- --color
3
- --require spec_helper
data/.rubocop.yml DELETED
@@ -1,36 +0,0 @@
1
- require: rubocop-rspec
2
-
3
- AllCops:
4
- DisplayCopNames: true
5
-
6
- Naming/AccessorMethodName:
7
- Description: Check the naming of accessor methods for get_/set_.
8
- Enabled: false
9
-
10
- Style/DocumentationMethod:
11
- RequireForNonPublicMethods: false
12
-
13
- Documentation:
14
- Enabled: false
15
-
16
- Style/ClassAndModuleChildren:
17
- Enabled: false
18
-
19
- Style/NegatedIf:
20
- Enabled: false
21
-
22
- Metrics/LineLength:
23
- Max: 120
24
-
25
- Metrics/MethodLength:
26
- Max: 30
27
-
28
- Style/SymbolArray:
29
- Enabled: true
30
- EnforcedStyle: brackets
31
-
32
- Style/StringLiterals:
33
- EnforcedStyle: single_quotes
34
- SupportedStyles:
35
- - single_quotes
36
-
data/.travis.yml DELETED
@@ -1,13 +0,0 @@
1
- ---
2
- language: ruby
3
- sudo: false
4
- cache: bundler
5
- rvm:
6
- - 2.5.1
7
- before_install: gem install bundler -v 1.16.3
8
- script: bundle exec rspec spec
9
- notifications:
10
- email:
11
- - vtmilyakov@yandex.ru
12
- after_success:
13
- - CI=true TRAVIS=true coveralls --verbose
data/Gemfile DELETED
@@ -1,12 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- source 'https://rubygems.org'
4
-
5
- git_source(:github) { |repo_name| "https://github.com/#{repo_name}" }
6
-
7
- gem 'coveralls', '>= 0.8.23', require: false
8
- gem 'pry', require: false
9
-
10
- gem 'rubocop-rspec'
11
- # Specify your gem's dependencies in adequate_crypto_address.gemspec
12
- gemspec
data/Makefile DELETED
@@ -1,6 +0,0 @@
1
-
2
- build:
3
- gem build adequate_crypto_address.gemspec
4
-
5
- push:
6
- gem push adequate_crypto_address-0.1.10.gem
data/Rakefile DELETED
@@ -1,8 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'bundler/gem_tasks'
4
- require 'rspec/core/rake_task'
5
-
6
- RSpec::Core::RakeTask.new(:spec)
7
-
8
- task default: :spec
@@ -1,24 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- lib = File.expand_path('lib', __dir__)
4
- $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
5
- require 'adequate_crypto_address/version'
6
-
7
- Gem::Specification.new do |spec|
8
- spec.name = 'adequate_crypto_address'
9
- spec.version = AdequateCryptoAddress::VERSION
10
- spec.authors = ['vtm']
11
-
12
- spec.summary = 'A Ruby Library for dealing with validation cryptocurrency adresses.'
13
- spec.description = 'A Ruby Library for dealing with validation cryptocurrency adresses.'
14
- spec.homepage = 'https://github.com/vtm9/adequate_crypto_address'
15
-
16
- spec.license = 'MIT'
17
- spec.files = `git ls-files`.split($INPUT_RECORD_SEPARATOR)
18
- spec.require_paths = ['lib']
19
-
20
- spec.add_dependency 'base58', '~> 0.2'
21
- spec.add_dependency 'keccak', '~> 1.3'
22
- spec.add_development_dependency 'rake', '~> 13.2'
23
- spec.add_development_dependency 'rspec', '~> 3.13'
24
- end
@@ -1,77 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- RSpec.describe(AdequateCryptoAddress::Bch) do
4
- let(:legacy_p2sh) { '3CWFddi6m4ndiGyKqzYvsFYagqDLPVMTzC' }
5
- let(:legacy_p2pkh) { '155fzsEBHy9Ri2bMQ8uuuR3tv1YzcDywd4' }
6
- let(:cashaddr_p2sh) { 'bitcoincash:ppm2qsznhks23z7629mms6s4cwef74vcwvn0h829pq' }
7
- let(:cashaddr_p2pkh) { 'bitcoincash:qqkv9wr69ry2p9l53lxp635va4h86wv435995w8p2h' }
8
- let(:cashaddr_p2pkh_testnet) { 'bchtest:qpqtmmfpw79thzq5z7s0spcd87uhn6d34uqqem83hf' }
9
- let(:legacy_p2pkh_testnet) { 'mmRH4e9WW4ekZUP5HvBScfUyaSUjfQRyvD' }
10
- let(:cashaddr_p2sh_testnet) { 'bchtest:pp8f7ww2g6y07ypp9r4yendrgyznysc9kqxh6acwu3' }
11
- let(:legacy_p2sh_testnet) { '2MzQwSSnBHWHqSAqtTVQ6v47XtaisrJa1Vc' }
12
- let(:mixed_case_cashadddr) { 'bitcoincash:qqkv9wr69ry2p9l53lxP635va4h86wv435995w8p2H' }
13
-
14
- describe '#legacy_address' do
15
- it 'converts legacy testnet p2pkh' do
16
- expect(described_class.new(legacy_p2pkh_testnet).legacy_address).to eq(legacy_p2pkh_testnet)
17
- expect(described_class.new(cashaddr_p2pkh_testnet).legacy_address).to eq(legacy_p2pkh_testnet)
18
- end
19
-
20
- it 'converts legacy testnet p2sh' do
21
- expect(described_class.new(legacy_p2sh_testnet).legacy_address).to eq(legacy_p2sh_testnet)
22
- expect(described_class.new(cashaddr_p2sh_testnet).legacy_address).to eq(legacy_p2sh_testnet)
23
- end
24
-
25
- it 'converts to legacy p2sh' do
26
- expect(described_class.new(legacy_p2sh).legacy_address).to eq(legacy_p2sh)
27
- expect(described_class.new(cashaddr_p2sh).legacy_address).to eq(legacy_p2sh)
28
- end
29
-
30
- it 'converts to legacy p2pkh' do
31
- expect(described_class.new(legacy_p2pkh).legacy_address).to eq(legacy_p2pkh)
32
- expect(described_class.new(cashaddr_p2pkh).legacy_address).to eq(legacy_p2pkh)
33
- end
34
-
35
- context 'uppercase cashaddr address' do
36
- it 'converts to legacy p2sh' do
37
- expect(described_class.new(cashaddr_p2sh.upcase).legacy_address).to eq(legacy_p2sh)
38
- end
39
-
40
- it 'converts to legacy p2pkh' do
41
- expect(described_class.new(cashaddr_p2pkh.upcase).legacy_address).to eq(legacy_p2pkh)
42
- end
43
- end
44
- end
45
-
46
- context '#cash_address' do
47
- it 'converts cash testnet p2pkh' do
48
- expect(described_class.new(legacy_p2pkh_testnet).cash_address).to eq(cashaddr_p2pkh_testnet)
49
- expect(described_class.new(cashaddr_p2pkh_testnet).cash_address).to eq(cashaddr_p2pkh_testnet)
50
- end
51
-
52
- it 'converts cash testnet p2sh' do
53
- expect(described_class.new(legacy_p2sh_testnet).cash_address).to eq(cashaddr_p2sh_testnet)
54
- expect(described_class.new(cashaddr_p2sh_testnet).cash_address).to eq(cashaddr_p2sh_testnet)
55
- end
56
-
57
- it 'converts to cash p2sh' do
58
- expect(described_class.new(legacy_p2sh).cash_address).to eq(cashaddr_p2sh)
59
- expect(described_class.new(cashaddr_p2sh).cash_address).to eq(cashaddr_p2sh)
60
- end
61
-
62
- it 'converts to cash p2pkh' do
63
- expect(described_class.new(legacy_p2pkh).cash_address).to eq(cashaddr_p2pkh)
64
- expect(described_class.new(cashaddr_p2pkh).cash_address).to eq(cashaddr_p2pkh)
65
- end
66
-
67
- context 'uppercase cashaddr address' do
68
- it 'converts to cash p2sh' do
69
- expect(described_class.new(cashaddr_p2sh.upcase).cash_address).to eq(cashaddr_p2sh)
70
- end
71
-
72
- it 'converts to cash p2pkh' do
73
- expect(described_class.new(cashaddr_p2pkh.upcase).cash_address).to eq(cashaddr_p2pkh)
74
- end
75
- end
76
- end
77
- end
@@ -1,231 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- RSpec.describe(AdequateCryptoAddress) do
4
- describe '.valid?' do
5
- context 'Bitcoin' do
6
- it 'validates hash160 addresses' do
7
- expect(described_class).to be_valid('12KYrjTdVGjFMtaxERSk3gphreJ5US8aUP', 'bitcoin')
8
- expect(described_class).to be_valid('12QeMLzSrB8XH8FvEzPMVoRxVAzTr5XM2y', 'BTC')
9
- expect(described_class).to be_valid('12QeMLzSrB8XH8FvEzPMVoRxVAzTr5XM2y', 'Bitcoin')
10
- expect(described_class).to be_valid('12QeMLzSrB8XH8FvEzPMVoRxVAzTr5XM2y', 'btc')
11
- expect(described_class).to be_valid('12QeMLzSrB8XH8FvEzPMVoRxVAzTr5XM2y', 'btc', :hash160)
12
-
13
- # testnet
14
- expect(described_class).to be_valid('mzBc4XEFSdzCDcTxAgf6EZXgsZWpztRhef', 'bitcoin', 'hash160test')
15
- expect(described_class).to be_valid('mv4rnyY3Su5gjcDNzbMLKBQkBicCtHUtFB', :btc)
16
- end
17
-
18
- it 'validates p2sh addresses' do
19
- expect(described_class).to be_valid('3NJZLcZEEYBpxYEUGewU4knsQRn1WM5Fkt', 'BTC')
20
- expect(described_class).to be_valid('3NJZLcZEEYBpxYEUGewU4knsQRn1WM5Fkt', 'bitcoin', 'p2sh')
21
-
22
- # testnet
23
- expect(described_class).to be_valid('2MxKEf2su6FGAUfCEAHreGFQvEYrfYNHvL7', 'btc')
24
- expect(described_class).to be_valid('2MxKEf2su6FGAUfCEAHreGFQvEYrfYNHvL7', 'bitcoin', 'p2shtest')
25
- end
26
-
27
- it 'validates segwit addresses' do
28
- expect(described_class).to be_valid('BC1QW508D6QEJXTDG4Y5R3ZARVARY0C5XW7KV8F3T4', 'BTC')
29
- expect(described_class).to be_valid('bc1qar0srrr7xfkvy5l643lydnw9re59gtzzwf5mdq', 'bitcoin')
30
- expect(described_class).to be_valid('bc1qar0srrr7xfkvy5l643lydnw9re59gtzzwf5mdq', 'bitcoin', :segwit_v0_keyhash)
31
- expect(described_class).to be_valid('bc1qc7slrfxkknqcq2jevvvkdgvrt8080852dfjewde450xdlk4ugp7szw5tk9', 'BTC')
32
- expect(described_class).to be_valid('bc1qc7slrfxkknqcq2jevvvkdgvrt8080852dfjewde450xdlk4ugp7szw5tk9', 'bitcoin', :segwit_v0_scripthash)
33
- end
34
-
35
- it 'validates taproot addresses' do
36
- expect(described_class).to be_valid('bc1p5cyxnuxmeuwuvkwfem96lqzszd02n6xdcjrs20cac6yqjjwudpxqkedrcr', 'bitcoin')
37
- expect(described_class).to be_valid('bc1p5cyxnuxmeuwuvkwfem96lqzszd02n6xdcjrs20cac6yqjjwudpxqkedrcr', 'BTC', :taproot)
38
- end
39
-
40
- it 'validates wrong addresses' do
41
- expect(described_class).not_to be_valid('asdf', :bitcoin)
42
- expect(described_class).not_to be_valid('3NJZLcZEEYBpxYEUGewU4knsQRn1WM5Fkt', 'bitcoin', :segwit_v0_keyhash)
43
- expect(described_class).not_to be_valid('3NJZLcZEEYBpxYEUGewU4knsQRn1WM5Fkt', 'bitcoin', 'asdf')
44
- expect(described_class).not_to be_valid('tc1qw508d6qejxtdg4y5r3zarvary0c5xw7kg3g4ty', :bitcoin)
45
- expect(described_class).not_to be_valid('bc1qw508d6qejxtdg4y5r3zarvary0c5xw7kv8f3t5', 'bitcoin')
46
- expect(described_class).not_to be_valid('BC13W508D6QEJXTDG4Y5R3ZARVARY0C5XW7KN40WF2', 'bitcoin')
47
- expect(described_class).not_to be_valid('bc1rw5uspcuh', 'bitcoin')
48
- expect(described_class).not_to be_valid('bc10w508d6qejxtdg4y5r3zarvary0c5xw7kw508d6qejxtdg4y5r3zarvary0c5xw7kw5rljs90', 'bitcoin')
49
- expect(described_class).not_to be_valid('BC1QR508D6QEJXTDG4Y5R3ZARVARYV98GJ9P', 'bitcoin')
50
- expect(described_class).not_to be_valid('tb1qrp33g0q5c5txsp9arysrx4k6zdkfs4nce4xj0gdcccefvpysxf3q0sL5k7', 'BTC')
51
- expect(described_class).not_to be_valid('bc1zw508d6qejxtdg4y5r3zarvaryvqyzf3du', 'bitcoin')
52
- expect(described_class).not_to be_valid('tb1qrp33g0q5c5txsp9arysrx4k6zdkfs4nce4xj0gdcccefvpysxf3pjxtptv', 'Bitcoin')
53
- expect(described_class).not_to be_valid('bc1gmk9yu', 'bitcoin')
54
- expect(described_class).not_to be_valid('bc1p5d7rjq7g6rdk2yhzks9smlqfpuecypus6uf4e9qrsssrwc09', 'bitcoin') # invalid checksum
55
- expect(described_class).not_to be_valid('bc1p5d7rjq7g6rdk2yhzks9smlqfpuecypus6uf4e9qrsssrwc0', 'bitcoin') # too short
56
- end
57
- end
58
-
59
- context 'Bitcoincash' do
60
- it 'validates legacy addresses' do
61
- expect(described_class).to be_valid('3CWFddi6m4ndiGyKqzYvsFYagqDLPVMTzC', :bch, :p2sh)
62
- expect(described_class).to be_valid('155fzsEBHy9Ri2bMQ8uuuR3tv1YzcDywd4', 'bitcoincash', :p2pkh)
63
- expect(described_class).to be_valid('2MzQwSSnBHWHqSAqtTVQ6v47XtaisrJa1Vc', 'BCH', :p2shtest)
64
- expect(described_class).to be_valid('mmRH4e9WW4ekZUP5HvBScfUyaSUjfQRyvD', :BCH, :p2pkhtest)
65
- end
66
-
67
- it 'validates cash addresses' do
68
- expect(described_class).to be_valid('bitcoincash:qqkv9wr69ry2p9l53lxp635va4h86wv435995w8p2h', :bch, :p2pkh)
69
- expect(described_class).to be_valid('bitcoincash:pqdg9uq52wzhf228hweext9j2jdjgdpj9qt7xxfngd', :bitcoincash, :p2sh)
70
- expect(described_class).to be_valid('bchtest:qpqtmmfpw79thzq5z7s0spcd87uhn6d34uqqem83hf', :Bitcoincash, :p2pkhtest)
71
- expect(described_class).to be_valid('bchtest:pp8f7ww2g6y07ypp9r4yendrgyznysc9kqxh6acwu3', :BCH, :p2shtest)
72
- expect(described_class).to be_valid('bitcoincash:qrtj3rd8524cndt2eew3s6wljqggmne00sgh4kfypk', :bitcoincash)
73
- end
74
-
75
- it 'validates cash addresses without prefix addresses' do
76
- expect(described_class).to be_valid('qrtj3rd8524cndt2eew3s6wljqggmne00sgh4kfypk', :bitcoincash)
77
- expect(described_class).to be_valid('pqdg9uq52wzhf228hweext9j2jdjgdpj9qt7xxfngd', :bitcoincash, :p2sh)
78
- end
79
-
80
- it 'validates wrong addresses' do
81
- expect(described_class).not_to be_valid('bitcoincash:qqkv9wr69ry2p9l53lxP635va4h86wv435995w8p2H', :bch)
82
- expect(described_class).not_to be_valid('wrong', :bch)
83
- expect(described_class).not_to be_valid('bitcoincash:wrong', :bch)
84
- expect(described_class).not_to be_valid('bitcoincash:123', :bch)
85
-
86
- expect(described_class).not_to be_valid('bitcoincash:qqkv9wr69ry2p9l53lxp635va4h86wv435995w8p2h', :bch, :p2pkhtest)
87
- expect(described_class).not_to be_valid('bitcoincash:pqdg9uq52wzhf228hweext9j2jdjgdpj9qt7xxfngd', :bitcoincash, :p2pkhtest)
88
- expect(described_class).not_to be_valid('bchtest:qpqtmmfpw79thzq5z7s0spcd87uhn6d34uqqem83hf', :Bitcoincash, :p2sh)
89
- expect(described_class).not_to be_valid('bchtest:pp8f7ww2g6y07ypp9r4yendrgyznysc9kqxh6acwu3', :BCH, :p2sh)
90
- end
91
- end
92
-
93
- context 'Ethereum' do
94
- it 'validates addresses' do
95
- expect(described_class).to be_valid('0xE37c0D48d68da5c5b14E5c1a9f1CFE802776D9FF', 'ethereum')
96
- expect(described_class).to be_valid('0xa00354276d2fC74ee91e37D085d35748613f4748', :ethereum)
97
- expect(described_class).to be_valid('0xAff4d6793F584a473348EbA058deb8caad77a288', :ETH)
98
- expect(described_class).to be_valid('0xc6d9d2cd449a754c494264e1809c50e34d64562b', 'ETH')
99
- expect(described_class).to be_valid('0x52908400098527886E0F7030069857D2E4169EE7', 'ETH')
100
- expect(described_class).to be_valid('0x8617E340B3D01FA5F11F306F4090FD50E238070D', 'ETH')
101
- expect(described_class).to be_valid('0xde709f2102306220921060314715629080e2fb77', 'ETH')
102
- end
103
-
104
- it 'validates without prefixes addresses' do
105
- expect(described_class).to be_valid('27b1fdb04752bbc536007a920d24acb045561c26', 'ETH')
106
- expect(described_class).to be_valid('5aAeb6053F3E94C9b9A09f33669435E7Ef1BeAed', 'ETH')
107
- expect(described_class).to be_valid('fB6916095ca1df60bB79Ce92cE3Ea74c37c5d359', 'ETH')
108
- expect(described_class).to be_valid('dbF03B407c01E7cD3CBea99509d93f8DDDC8C6FB', 'ETH')
109
- expect(described_class).to be_valid('D1220A0cf47c7B9Be7A2E6BA89F429762e7b9aDb', 'ETH')
110
- end
111
-
112
- it 'validates wrong addresses' do
113
- expect(described_class).not_to be_valid('wrong', :ETH)
114
- expect(described_class).not_to be_valid('0xD1110A0cf47c7B9Be7A2E6BA89F429762e7b9aDb', 'ETH')
115
- expect(described_class).not_to be_valid('a10354276d2fC74ee91e37D085d35748613f4748', :ethereum)
116
- end
117
- end
118
-
119
- context 'Ripple' do
120
- it 'validates addresses' do
121
- expect(described_class).to be_valid('rPMLwSwyyULN2acf5JKB1nj8F8Eu8pVMV8', :ripple)
122
- expect(described_class).to be_valid('rG1QQv2nh2gr7RCZ1P8YYcBUKCCN633jCn', :ripple)
123
- expect(described_class).to be_valid('rG1QQv2nh2gr7RCZ1P8YYcBUKCCN633jCn', 'RIPPLE')
124
- expect(described_class).to be_valid('r3kmLJN5D28dHuH8vZNUZpMC43pEHpaocV', 'XRP')
125
- expect(described_class).to be_valid('rHb9CJAWyB4rj91VRWn96DkukG4bwdtyTh', :XRP)
126
- expect(described_class).to be_valid('rDTXLQ7ZKZVKz33zJbHjgVShjsBnqMBhmN', 'XRP')
127
- end
128
-
129
- it 'validates wrong addresses' do
130
- expect(described_class).not_to be_valid('wrong', :xrp)
131
- expect(described_class).not_to be_valid('r3kmLJN5D28dHuH8vZNUZpMC43pEHpaoc1', :xrp)
132
- expect(described_class).not_to be_valid('r1kmLJN5D28dHuH8vZNUZpMC43pEHpaocV', 'ripple')
133
- end
134
- end
135
-
136
- context 'Dash' do
137
- it 'validates addresses' do
138
- expect(described_class).to be_valid('Xx4dYKgz3Zcv6kheaqog3fynaKWjbahb6b', :dash)
139
- expect(described_class).to be_valid('XcY4WJ6Z2Q8w7vcYER1JypC8s2oa3SQ1b1', 'DASH')
140
- expect(described_class).to be_valid('XqMkVUZnqe3w4xvgdZRtZoe7gMitDudGs4', 'DASH', :prod)
141
- expect(described_class).to be_valid('yPv7h2i8v3dJjfSH4L3x91JSJszjdbsJJA', :DASH, 'test')
142
- end
143
-
144
- it 'validates wrong addresses' do
145
- expect(described_class).not_to be_valid('wrong', :dash)
146
- expect(described_class).not_to be_valid('yPv7h2i8v3dJ1fSH4L3x91JSJszjdbsJJA', :dash)
147
- expect(described_class).not_to be_valid('XqMkVUZnqe3w4xvgdZRtZoe7gMitDudGs4', 'dash', :test)
148
- expect(described_class).not_to be_valid('yPv7h2i8v3dJjfSH4L3x91JSJszjdbsJJA', :DASH, :prod)
149
- end
150
- end
151
-
152
- context 'Zcash' do
153
- it 'validates addresses' do
154
- expect(described_class).to be_valid('t1U9yhDa5XEjgfnTgZoKddeSiEN1aoLkQxq', :zec)
155
- expect(described_class).to be_valid('t3Vz22vK5z2LcKEdg16Yv4FFneEL1zg9ojd', 'zcash', :prod)
156
- expect(described_class).to be_valid('t2UNzUUx8mWBCRYPRezvA363EYXyEpHokyi', 'ZEC', :test)
157
- end
158
-
159
- it 'validates wrong addresses' do
160
- expect(described_class).not_to be_valid('wrong', :zec)
161
- expect(described_class).not_to be_valid('t1Y9yhDa5XEjgfnTgZoKddeSiEN1aoLkQxq', :zcash)
162
- expect(described_class).not_to be_valid('t3Yz22vK5z2LcKEdg16Yv4FFneEL1zg9ojd', :ZEC)
163
- expect(described_class).not_to be_valid('t2YNzUUx8mWBCRYPRezvA363EYXyEpHokyi', :zcash, :test)
164
- end
165
- end
166
-
167
- context 'Litecoin' do
168
- it 'validates addresses' do
169
- expect(described_class).to be_valid('LVg2kJoFNg45Nbpy53h7Fe1wKyeXVRhMH9', :ltc)
170
- expect(described_class).to be_valid('LVg2kJoFNg45Nbpy53h7Fe1wKyeXVRhMH9', 'ltc', :prod)
171
- expect(described_class).to be_valid('LTpYZG19YmfvY2bBDYtCKpunVRw7nVgRHW', 'LTC')
172
- expect(described_class).to be_valid('Lb6wDP2kHGyWC7vrZuZAgV7V4ECyDdH7a6', 'Litecoin')
173
- expect(described_class).to be_valid('mzBc4XEFSdzCDcTxAgf6EZXgsZWpztRhef', 'Litecoin', :test)
174
-
175
- expect(described_class).to be_valid('3NJZLcZEEYBpxYEUGewU4knsQRn1WM5Fkt', 'LTC')
176
- expect(described_class).to be_valid('2MxKEf2su6FGAUfCEAHreGFQvEYrfYNHvL7', 'LTC', :test)
177
- expect(described_class).to be_valid('QW2SvwjaJU8LD6GSmtm1PHnBG2xPuxwZFy', 'LTC', :test)
178
- expect(described_class).to be_valid('QjpzxpbLp5pCGsCczMbfh1uhC3P89QZavY', 'LTC', :test)
179
- end
180
-
181
- it 'validates wrong addresses' do
182
- expect(described_class).not_to be_valid('wrong', :zec)
183
- expect(described_class).not_to be_valid('t1Y9yhDa5XEjgfnTgZoKddeSiEN1aoLkQxq', :zcash)
184
- expect(described_class).not_to be_valid('t3Yz22vK5z2LcKEdg16Yv4FFneEL1zg9ojd', :ZEC)
185
- expect(described_class).not_to be_valid('t2YNzUUx8mWBCRYPRezvA363EYXyEpHokyi', :zcash, :test)
186
- end
187
- end
188
-
189
- context 'Toncoin' do
190
- it 'validates addresses' do
191
- expect(described_class).to be_valid('UQCScs4HjjwnlIFKIq_juiuLLLnjJKTjQyfcADjYNvdYwn-l', :TON)
192
- end
193
-
194
- it 'validates wrong addresses' do
195
- expect(described_class).not_to be_valid('wrongFKIq_juiuLLLnjJKTjQyfcAD', :TON)
196
- end
197
- end
198
-
199
- context 'Monero' do
200
- it 'validates addresses' do
201
- expect(described_class).to be_valid('4BKnGLZNZ5pjpXCZedGfVQjpXCZedGfVQjpXCZedGfVQjpXCZedGfVQjpXCZedGfVQjpXCZedGfVQjpXCZedGfVQVmzCh57', :XMR)
202
- expect(described_class).to be_valid('4BKnGLZNZ5pjpXCZedGfVQjpXCZedGfVQjpXCZedGfVQjpXCZedGfVQjpXCZedGfVQjpXCZedGfVQjpXCZedGfVQVmzCh57', :monero)
203
- expect(described_class).to be_valid('4BKnGLZNZ5pjpXCZedGfVQjpXCZedGfVQjpXCZedGfVQjpXCZedGfVQjpXCZedGfVQjpXCZedGfVQjpXCZedGfVQVmzCh57', :Xmr)
204
- expect(described_class).to be_valid('4BKnGLZNZ5pjpXCZedGfVQjpXCZedGfVQjpXCZedGfVQjpXCZedGfVQjpXCZedGfVQjpXCZedGfVQjpXCZedGfVQVmzCh57', :xmr)
205
- expect(described_class).to be_valid('4TZ76dT4mbsizsTtJzy7kYBo9f8xduc8wTsWb86pCmx5Cmh43CDxNS1FRcMrE3CNQ2ZT17vzCudc5TbNYBzizwqZFah5K1Js7VpL88qPSi', :monero)
206
- expect(described_class).to be_valid('4TZ76dT4mbsizsTtJzy7kYBo9f8xduc8wTsWb86pCmx5Cmh43CDxNS1FRcMrE3CNQ2ZT17vzCudc5TbNYBzizwqZFah5K1Js7VpL88qPSi', :Xmr)
207
- expect(described_class).to be_valid('4TZ76dT4mbsizsTtJzy7kYBo9f8xduc8wTsWb86pCmx5Cmh43CDxNS1FRcMrE3CNQ2ZT17vzCudc5TbNYBzizwqZFah5K1Js7VpL88qPSi', :Xmr)
208
- expect(described_class).to be_valid('4TZ76dT4mbsizsTtJzy7kYBo9f8xduc8wTsWb86pCmx5Cmh43CDxNS1FRcMrE3CNQ2ZT17vzCudc5TbNYBzizwqZFah5K1Js7VpL88qPSi', :xmr)
209
- expect(described_class).to be_valid('8BKnGLZNZ5pjpXCZedGfVQjpXCZedGfVQjpXCZedGfVQjpXCZedGfVQjpXCZedGfVQjpXCZedGfVQjpXCZedGfVQVmzCh57', :xmr)
210
- expect(described_class).to be_valid('8TZ76dT4mbsizsTtJzy7kYBo9f8xduc8wTsWb86pCmx5Cmh43CDxNS1FRcMrE3CNQ2ZT17vzCudc5TbNYBzizwqZFah5K1Js7VpL88qPSi', :monero)
211
- end
212
-
213
- it 'validates wrong addresses' do
214
- expect(described_class).not_to be_valid('NOT_VALID_4BKnGLZNZ5pjpXCZedGfVQjpXCZedGfVQjp', :monero)
215
- expect(described_class).not_to be_valid('NOT_VALID_4BKnGLZNZ5pjpXCZedGfVQjpXCZedGfVQjp', :Xmr)
216
- expect(described_class).not_to be_valid('NOT_VALID_4BKnGLZNZ5pjpXCZedGfVQjpXCZedGfVQjp', :XMR)
217
- expect(described_class).not_to be_valid('NOT_VALID_4BKnGLZNZ5pjpXCZedGfVQjpXCZedGfVQjp', :xmr)
218
- end
219
- end
220
- end
221
-
222
- describe '.address' do
223
- it 'returns insance' do
224
- expect(described_class.address('D1220A0cf47c7B9Be7A2E6BA89F429762e7b9aDb', 'eth')).to be_kind_of(AdequateCryptoAddress::Eth)
225
- end
226
-
227
- it 'raises UnknownCurrency with unknown currency' do
228
- expect { described_class.address('addr', 'asdf') }.to raise_error(AdequateCryptoAddress::UnknownCurrency, /asdf/)
229
- end
230
- end
231
- end
data/spec/spec_helper.rb DELETED
@@ -1,17 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'coveralls'
4
- Coveralls.wear!
5
-
6
- $LOAD_PATH.unshift File.dirname(__FILE__)
7
- require 'rspec'
8
- require 'adequate_crypto_address'
9
-
10
- RSpec.configure do |config|
11
- # Enable flags like --only-failures and --next-failure
12
- config.example_status_persistence_file_path = '.rspec_status'
13
-
14
- config.order = :random
15
- config.filter_run :focus
16
- config.run_all_when_everything_filtered = true
17
- end