bech32 1.1.0 → 1.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 975a0d606b86cdb7487afad52363ef284de471f1530cf7614b0a7db0728dc937
4
- data.tar.gz: 1e3d9f3f389cbfd94a8af919a0ec842395605649138bdf3860ac9db2617e3939
3
+ metadata.gz: 1556fd0046c912f798c99efd7162f3afc6ca970d618d0ba44dd38c05ab88de75
4
+ data.tar.gz: fc267a9f2e3344f11f692f7749666ba099a5f5fd73326271c412bc1000fe8616
5
5
  SHA512:
6
- metadata.gz: ab8fdc36df45376ea1ec0e7d7553fb6309900d8db824998f327dbfe670451a00ec240bbd75fe59e1bdda2590981d174e0be086756e919582dad55ce5441fe5fb
7
- data.tar.gz: 07bf7ac092a89c997932d380a57f30916baa809fd3adf2c86b7418e599949be6fc593b226bcdb7240247fde19d7f092ebdcdd82bfce154adde9d16b5de2df68e
6
+ metadata.gz: 21045a72a45ddf3640801ed9845fa61e758a6199cf492f64cee355bec019f5f0e0a62696e6061aa3479c30d6e566c3e63663f3c8a9838b1bc2ba0e860265f335
7
+ data.tar.gz: cfb2828365abd683dfeb0af311a583661cd2bc95d0c5af65a09f0d3b5d8cf38215cd95552f903667e4589764030b6a1da65473bc11f762262c63936a72340699
@@ -0,0 +1,35 @@
1
+ # This workflow uses actions that are not certified by GitHub.
2
+ # They are provided by a third-party and are governed by
3
+ # separate terms of service, privacy policy, and support
4
+ # documentation.
5
+ # This workflow will download a prebuilt Ruby version, install dependencies and run tests with Rake
6
+ # For more information see: https://github.com/marketplace/actions/setup-ruby-jruby-and-truffleruby
7
+
8
+ name: Ruby
9
+
10
+ on:
11
+ push:
12
+ branches: [ master ]
13
+ pull_request:
14
+ branches: [ master ]
15
+
16
+ jobs:
17
+ test:
18
+
19
+ runs-on: ubuntu-latest
20
+ strategy:
21
+ matrix:
22
+ ruby-version: ['2.6', '2.7', '3.0']
23
+
24
+ steps:
25
+ - uses: actions/checkout@v2
26
+ - name: Set up Ruby
27
+ # To automatically get bug fixes and new Ruby versions for ruby/setup-ruby,
28
+ # change this to (see https://github.com/ruby/setup-ruby#versioning):
29
+ # uses: ruby/setup-ruby@v1
30
+ uses: ruby/setup-ruby@473e4d8fe5dd94ee328fdfca9f8c9c7afc9dae5e
31
+ with:
32
+ ruby-version: ${{ matrix.ruby-version }}
33
+ bundler-cache: true # runs 'bundle install' and caches installed gems automatically
34
+ - name: Run tests
35
+ run: bundle exec rake
data/README.md CHANGED
@@ -98,6 +98,22 @@ segwit_addr.addr
98
98
  => bc1qw508d6qejxtdg4y5r3zarvary0c5xw7kv8f3t4
99
99
  ```
100
100
 
101
+ ### CLI
102
+
103
+ After installing the gem, the `bech32` command will be available. Encoding and decoding features are also available in the cli.
104
+
105
+ #### Encode
106
+
107
+ $ bech32 encode genesis 000409190707111719041a120308120a060c161408110d091b090009021b1e1d150e190215010d0a1603091e1f0b100609090d1a1c1a13030c120c0c0f1c020d1d1a0e170b1c17021018121e0a021c121a1c0d161b16131d1609130f1d13180f1e081d041d0a110f110d1313081c11100600180b000c08140c1e130e0f090c160e0018191e1d1c0016060c11101214121e19070d1a0c1c15020414001f10100c09090600181806001809080e180507021913031100030216141b100908160c1213120f1912011f07021c13190d1900170c1d1203040f071c1908050504130e080d0a100d130b03000a0a08191310090918120f11031104120c15180c15120a0f1919070c1c12060c1911091010120a0d191b040c1613020e1911081f000b1a0b0514150c1613010d0c1c030b17011805090119061e0b051e130c00030419000112030110181d011a000f020c0901080c1113060201041a0e1b060a15160506181c11140c1c1d0b1b14020c131e0b0f071519181e0b1f0e0a08170f1d0c05060e1c1b0e160c0f0a171d0b101a1a1f1417160e0d1414030e161b0a000709100d15020c000e010c00000000 bech32
108
+ genesis1qyfe883hey6jrgj2xvk5g3dfmfqfzm7a4wez4pd2krf7ltsxffd6u6nrvjvv0uzda6whtuhzscj72zuj6udkmknakfn0anc07gaya2303dnngu3sxqctqvg5v7nw0fvkwqce7auqkxv3sj5j7e8d6vu4zy5qlssvffxqccxqcfgwc98zenr3qrzk5msfgkvjnj0ejpl8zunedeqhvajry08ueg99ynwgd2sdntrq22gensffcj03r3yjv4cv4j20ee8vujxve3fssj2demyvknzwe3glqt6t954vknpdvurthpc9fpex7t97nvqryeqpjrpscap6q0zvfpgv3nxzpy6wmx24k9xcu35vuatm5zvn7t084ec7tlw2gh0av9xwumwkv02hats66l5hkwd55rwkm2q8fsd4zvqwpvqqqqtdc6rp
109
+
110
+ # Decode
111
+
112
+ $ bech32 decode genesis1qyfe883hey6jrgj2xvk5g3dfmfqfzm7a4wez4pd2krf7ltsxffd6u6nrvjvv0uzda6whtuhzscj72zuj6udkmknakfn0anc07gaya2303dnngu3sxqctqvg5v7nw0fvkwqce7auqkxv3sj5j7e8d6vu4zy5qlssvffxqccxqcfgwc98zenr3qrzk5msfgkvjnj0ejpl8zunedeqhvajry08ueg99ynwgd2sdntrq22gensffcj03r3yjv4cv4j20ee8vujxve3fssj2demyvknzwe3glqt6t954vknpdvurthpc9fpex7t97nvqryeqpjrpscap6q0zvfpgv3nxzpy6wmx24k9xcu35vuatm5zvn7t084ec7tlw2gh0av9xwumwkv02hats66l5hkwd55rwkm2q8fsd4zvqwpvqqqqtdc6rp
113
+ HRP: genesis
114
+ DATA: 000409190707111719041a120308120a060c161408110d091b090009021b1e1d150e190215010d0a1603091e1f0b100609090d1a1c1a13030c120c0c0f1c020d1d1a0e170b1c17021018121e0a021c121a1c0d161b16131d1609130f1d13180f1e081d041d0a110f110d1313081c11100600180b000c08140c1e130e0f090c160e0018191e1d1c0016060c11101214121e19070d1a0c1c15020414001f10100c09090600181806001809080e180507021913031100030216141b100908160c1213120f1912011f07021c13190d1900170c1d1203040f071c1908050504130e080d0a100d130b03000a0a08191310090918120f11031104120c15180c15120a0f1919070c1c12060c1911091010120a0d191b040c1613020e1911081f000b1a0b0514150c1613010d0c1c030b17011805090119061e0b051e130c00030419000112030110181d011a000f020c0901080c1113060201041a0e1b060a15160506181c11140c1c1d0b1b14020c131e0b0f071519181e0b1f0e0a08170f1d0c05060e1c1b0e160c0f0a171d0b101a1a1f1417160e0d1414030e161b0a000709100d15020c000e010c00000000
115
+ TYPE: bech32
116
+
101
117
  ## License
102
118
 
103
119
  The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).
data/bech32.gemspec CHANGED
@@ -4,21 +4,22 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
4
  require 'bech32/version'
5
5
 
6
6
  Gem::Specification.new do |spec|
7
- spec.name = "bech32"
7
+ spec.name = 'bech32'
8
8
  spec.version = Bech32::VERSION
9
- spec.authors = ["Shigeyuki Azuchi"]
10
- spec.email = ["azuchi@haw.co.jp"]
9
+ spec.authors = ['Shigeyuki Azuchi']
10
+ spec.email = ['techmedia.think@gmail.com']
11
11
 
12
- spec.summary = %q{The implementation of Bech32 encoder and decoder.}
13
- spec.description = %q{The implementation of Bech32 encoder and decoder.}
14
- spec.homepage = "https://github.com/azuchi/bech32rb"
15
- spec.license = "MIT"
12
+ spec.summary = %q(The implementation of Bech32 encoder and decoder.)
13
+ spec.description = %q(The implementation of Bech32 encoder and decoder.)
14
+ spec.homepage = 'https://github.com/azuchi/bech32rb'
15
+ spec.license = 'MIT'
16
16
 
17
17
  spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
18
- spec.bindir = "exe"
18
+ spec.bindir = 'exe'
19
19
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
20
- spec.require_paths = ["lib"]
20
+ spec.require_paths = ['lib']
21
+ spec.add_runtime_dependency 'thor', '>= 1.1.0'
21
22
 
22
- spec.add_development_dependency "rake", ">= 12.3.3"
23
- spec.add_development_dependency "rspec", "~> 3.0"
23
+ spec.add_development_dependency 'rake', '>= 12.3.3'
24
+ spec.add_development_dependency 'rspec', '~> 3.0'
24
25
  end
data/exe/bech32 ADDED
@@ -0,0 +1,31 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'bech32'
4
+ require 'thor'
5
+
6
+ class CLI < Thor
7
+
8
+ desc 'encode hrp data bech32/bech32m', 'Encoding data to bech32/bech32m string.'
9
+ def encode(hrp, data, type)
10
+ if type && !['bech32', 'bech32m'].include?(type)
11
+ puts 'Invalid type value. type must be bech32 or bech32m.'
12
+ else
13
+ spec = type.nil? || type == 'bech32' ? 1 : 2
14
+ data = [data].pack('H*').unpack('C*')
15
+ puts Bech32.encode(hrp, data, spec)
16
+ end
17
+ end
18
+
19
+ desc 'decode "bech32string"', 'Decoding bech32/bech32m string.'
20
+ def decode(bech32_str)
21
+ bech32 = Bech32.decode(bech32_str, bech32_str.length)
22
+ puts <<~EOS
23
+ HRP: #{bech32[0]}
24
+ DATA: #{bech32[1].pack('C*').unpack1('H*')}
25
+ TYPE: #{bech32[2] == Bech32::Encoding::BECH32 ? 'bech32' : 'bech32m'}
26
+ EOS
27
+ end
28
+
29
+ end
30
+
31
+ CLI.start(ARGV)
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Bech32
2
- VERSION = "1.1.0"
3
- end
4
+ VERSION = '1.2.0'
5
+ end
metadata CHANGED
@@ -1,15 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bech32
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Shigeyuki Azuchi
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-02-05 00:00:00.000000000 Z
11
+ date: 2021-07-01 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: thor
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: 1.1.0
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: 1.1.0
13
27
  - !ruby/object:Gem::Dependency
14
28
  name: rake
15
29
  requirement: !ruby/object:Gem::Requirement
@@ -40,16 +54,17 @@ dependencies:
40
54
  version: '3.0'
41
55
  description: The implementation of Bech32 encoder and decoder.
42
56
  email:
43
- - azuchi@haw.co.jp
44
- executables: []
57
+ - techmedia.think@gmail.com
58
+ executables:
59
+ - bech32
45
60
  extensions: []
46
61
  extra_rdoc_files: []
47
62
  files:
63
+ - ".github/workflows/main.yml"
48
64
  - ".gitignore"
49
65
  - ".rspec"
50
66
  - ".ruby-gemset"
51
67
  - ".ruby-version"
52
- - ".travis.yml"
53
68
  - CODE_OF_CONDUCT.md
54
69
  - Gemfile
55
70
  - LICENSE.txt
@@ -58,6 +73,7 @@ files:
58
73
  - bech32.gemspec
59
74
  - bin/console
60
75
  - bin/setup
76
+ - exe/bech32
61
77
  - lib/bech32.rb
62
78
  - lib/bech32/segwit_addr.rb
63
79
  - lib/bech32/version.rb
data/.travis.yml DELETED
@@ -1,9 +0,0 @@
1
- language: ruby
2
- rvm:
3
- - 2.2.10
4
- - 2.3.8
5
- - 2.4.10
6
- - 2.5.8
7
- - 2.6.6
8
- - 2.7.2
9
- - 3.0.0