bech32 1.1.0 → 1.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/main.yml +35 -0
- data/README.md +16 -0
- data/bech32.gemspec +12 -11
- data/exe/bech32 +31 -0
- data/lib/bech32/version.rb +4 -2
- metadata +21 -5
- data/.travis.yml +0 -9
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1556fd0046c912f798c99efd7162f3afc6ca970d618d0ba44dd38c05ab88de75
|
4
|
+
data.tar.gz: fc267a9f2e3344f11f692f7749666ba099a5f5fd73326271c412bc1000fe8616
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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 =
|
7
|
+
spec.name = 'bech32'
|
8
8
|
spec.version = Bech32::VERSION
|
9
|
-
spec.authors = [
|
10
|
-
spec.email = [
|
9
|
+
spec.authors = ['Shigeyuki Azuchi']
|
10
|
+
spec.email = ['techmedia.think@gmail.com']
|
11
11
|
|
12
|
-
spec.summary = %q
|
13
|
-
spec.description = %q
|
14
|
-
spec.homepage =
|
15
|
-
spec.license =
|
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 =
|
18
|
+
spec.bindir = 'exe'
|
19
19
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
20
|
-
spec.require_paths = [
|
20
|
+
spec.require_paths = ['lib']
|
21
|
+
spec.add_runtime_dependency 'thor', '>= 1.1.0'
|
21
22
|
|
22
|
-
spec.add_development_dependency
|
23
|
-
spec.add_development_dependency
|
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)
|
data/lib/bech32/version.rb
CHANGED
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.
|
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-
|
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
|
-
-
|
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
|