adequate_crypto_address 0.1.4 → 0.1.5

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: 66e0b65abfe56eac0be65f3edf9659e2e01cff5bd0316dd351e0e67147ae7869
4
- data.tar.gz: 6d5a85caa8ed1a1370ef7247d320e9e74ec08a1f2719b2ec712c99f8e5b4e078
3
+ metadata.gz: cc397b65e7cbd255bfcc82527b49a87832cfb2385fd4c2dca2ba7c170e33d8d8
4
+ data.tar.gz: b7265ddb5d2fe06075f2ae53cd4ad50c269022387fcfd3715299ba66ba102d66
5
5
  SHA512:
6
- metadata.gz: b2bab1c6a29e339533aca606a1b16164367886b31b7ef42f3624760e4098c1c49b8fc7867edbc840b7bbce70995769c9c0dc7b743e419e0a273f23053c74f1dd
7
- data.tar.gz: 964a58d65459a09d9d73881f823dbf3d6c820972b2ce944f1610f9799d3a89839f0115735eabf427e232a46f9ef62ef58ba77c9b4f8ea83e61023ad49b5fbb23
6
+ metadata.gz: 7ebe1f23778e6af6cca6eb829be82c3351888588957986a35f1dda48c6a5d6cc5ec2a903d063adb7d397759ca519d7e50e7b448718de92c73ea5cafac897c711
7
+ data.tar.gz: 5ad32e4058dea93f5fe50c531fd4f5ace5b1a1f5549d60552dcfb0494d706bcaec58ca30ad6fe0e80e56be686bee9decfd4d9228c32763a44b2cfd31af4cd918
data/Gemfile CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  source 'https://rubygems.org'
2
4
 
3
5
  git_source(:github) { |repo_name| "https://github.com/#{repo_name}" }
@@ -0,0 +1,6 @@
1
+
2
+ build:
3
+ gem build adequate_crypto_address.gemspec
4
+
5
+ push:
6
+ gem push adequate_crypto_address-0.1.5.gem
data/Rakefile CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'bundler/gem_tasks'
2
4
  require 'rspec/core/rake_task'
3
5
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  lib = File.expand_path('lib', __dir__)
2
4
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
3
5
  require 'adequate_crypto_address/version'
@@ -1,6 +1,7 @@
1
1
  #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
2
3
 
3
- $:.unshift( File.expand_path("../../lib", __FILE__) )
4
+ $LOAD_PATH.unshift(File.expand_path('../lib', __dir__))
4
5
  require 'adequate_crypto_address'
5
6
 
6
7
  ACA = AdequateCryptoAddress
@@ -8,4 +9,3 @@ include AdequateCryptoAddress
8
9
 
9
10
  require 'pry'
10
11
  Pry.start
11
-
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'adequate_crypto_address/utils/bech32'
2
4
  require 'adequate_crypto_address/utils/bch'
3
5
 
@@ -30,8 +30,8 @@ module AdequateCryptoAddress
30
30
  def address_type
31
31
  @decoded = begin
32
32
  decode_base58
33
- rescue StandardError
34
- nil
33
+ rescue StandardError
34
+ nil
35
35
  end
36
36
  if decoded && decoded.bytesize == self.class::EXPECTED_LENGTH && valid_address_checksum?
37
37
  self.class::ADDRESS_TYPES.each do |net_type, net_prefixes|
@@ -37,8 +37,8 @@ module AdequateCryptoAddress
37
37
 
38
38
  base58_decoded = begin
39
39
  decode_base58(address)
40
- rescue StandardError
41
- nil
40
+ rescue StandardError
41
+ nil
42
42
  end
43
43
  if base58_decoded && base58_decoded.bytesize == 50 && valid_base58_address_checksum?(base58_decoded)
44
44
  case base58_decoded[0...2]
@@ -46,6 +46,10 @@ module AdequateCryptoAddress
46
46
  return :hash160
47
47
  when '05'
48
48
  return :p2sh
49
+ when '6f'
50
+ return :hash160test
51
+ when 'c4'
52
+ return :p2shtest
49
53
  end
50
54
  end
51
55
 
@@ -1,7 +1,9 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module AdequateCryptoAddress
2
4
  module Utils
3
5
  module Bch
4
- CHARSET = 'qpzry9x8gf2tvdw0s3jn54khce6mua7l'.freeze
6
+ CHARSET = 'qpzry9x8gf2tvdw0s3jn54khce6mua7l'
5
7
 
6
8
  module_function
7
9
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module AdequateCryptoAddress
2
4
  # Ruby reference implementation: https://github.com/sipa/bech32/tree/master/ref/c
3
5
  module Utils
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module AdequateCryptoAddress
2
- VERSION = '0.1.4'.freeze
4
+ VERSION = '0.1.5'
3
5
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  RSpec.describe(AdequateCryptoAddress::Bch) do
2
4
  let(:legacy_p2sh) { '3CWFddi6m4ndiGyKqzYvsFYagqDLPVMTzC' }
3
5
  let(:legacy_p2pkh) { '155fzsEBHy9Ri2bMQ8uuuR3tv1YzcDywd4' }
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  RSpec.describe(AdequateCryptoAddress) do
2
4
  describe '.valid?' do
3
5
  context 'Bitcoin' do
@@ -7,11 +9,19 @@ RSpec.describe(AdequateCryptoAddress) do
7
9
  expect(described_class).to be_valid('12QeMLzSrB8XH8FvEzPMVoRxVAzTr5XM2y', 'Bitcoin')
8
10
  expect(described_class).to be_valid('12QeMLzSrB8XH8FvEzPMVoRxVAzTr5XM2y', 'btc')
9
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)
10
16
  end
11
17
 
12
18
  it 'validates p2sh addresses' do
13
19
  expect(described_class).to be_valid('3NJZLcZEEYBpxYEUGewU4knsQRn1WM5Fkt', 'BTC')
14
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')
15
25
  end
16
26
 
17
27
  it 'validates segwit addresses' do
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'coveralls'
2
4
  Coveralls.wear!
3
5
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: adequate_crypto_address
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.4
4
+ version: 0.1.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - vtm
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-01-21 00:00:00.000000000 Z
11
+ date: 2019-05-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: base58
@@ -94,6 +94,7 @@ files:
94
94
  - ".travis.yml"
95
95
  - Gemfile
96
96
  - LICENSE.txt
97
+ - Makefile
97
98
  - README.md
98
99
  - Rakefile
99
100
  - adequate_crypto_address.gemspec
@@ -132,7 +133,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
132
133
  - !ruby/object:Gem::Version
133
134
  version: '0'
134
135
  requirements: []
135
- rubygems_version: 3.0.1
136
+ rubygems_version: 3.0.3
136
137
  signing_key:
137
138
  specification_version: 4
138
139
  summary: A Ruby Library for dealing with validation cryptocurrency adresses.