near_api 0.1.5 → 0.1.6

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: cc403c86a44e7bd759b4c71d8bf7499fbf5145c06d2a680811e2dea09fd1dada
4
- data.tar.gz: b72df18eee4fec70ccc3f500255fa933a391b29606f564fd4264983369c81311
3
+ metadata.gz: 45334f18df28991a38a1e2301b797334ccf9ac72156d0667bfaee2ce16175b86
4
+ data.tar.gz: 3dd56b817520c32493de57a2510ea76e1d2de7563ad5670b38fde97903b060f9
5
5
  SHA512:
6
- metadata.gz: 3ba8d6c54f88f826e475105ff0bb64d59d57a35a0cdc3b196b69d43acddfcd3f9bbcd7af7eb6753704ca4b964f61fa13a0d21c280522de8f34fa55caad6cf2e4
7
- data.tar.gz: 6d00755fa74f570b0acfbe51e64ca5e95c36b643a8c29509df0e6bcb0040de983ea638b319f927e1b9933581a551395257f56d11a92f3591b070ca330c6bbed6
6
+ metadata.gz: 3f948aa2cb4e9a55993192a273a580a0a987cc13c6c2a2b613bef361e7ac5a604d5ce644ccf9c1312dafcdedca68e521877f31306530a51fb00ea1b0c15aa363
7
+ data.tar.gz: f80f23346467ed75fe3f66bf4a108ae54070f9072f0d786a89e1df6e9402a8995e36f2431107a299fcb0e99f0020160734799bf4c8138c0b4b3aebb517d4439c
@@ -0,0 +1,27 @@
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: rspec
9
+
10
+ on:
11
+ push:
12
+ jobs:
13
+ test:
14
+ runs-on: ubuntu-latest
15
+ concurrency:
16
+ group: ${{ github.ref }}
17
+ cancel-in-progress: true
18
+ steps:
19
+ - uses: actions/checkout@v2
20
+ - name: Set up Ruby
21
+ uses: ruby/setup-ruby@v1
22
+ with:
23
+ ruby-version: 3.0.2
24
+ - name: Install dependencies
25
+ run: bundle install --path vendor/bundle --jobs 4 --retry 3
26
+ - name: Rspec
27
+ run: bundle exec rspec
data/README.md CHANGED
@@ -1,3 +1,4 @@
1
+ ![tests](https://github.com/near-rails-guide/near_api/actions/workflows/ci.yml/badge.svg)
1
2
  # NearApi
2
3
 
3
4
  Welcome to your new gem! In this directory, you'll find the files you need to be able to package up your Ruby library into a gem. Put your Ruby code in the file `lib/near_api`. To experiment with that code, run `bin/console` for an interactive prompt.
@@ -4,18 +4,22 @@ class NearApi::Base58
4
4
  BASE = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz'
5
5
 
6
6
  def self.encode(bytestring)
7
- number = bytestring.unpack("C*").reverse.each_with_index.inject(0) do |sum, (byte, index)|
8
- sum + byte * (256 ** index)
7
+ number = bytestring.unpack('C*').reverse.each_with_index.inject(0) do |sum, (byte, index)|
8
+ sum + byte * (256**index)
9
9
  end
10
- tos number
10
+ nzeroes = bytestring.bytes.find_index { |b| b != 0 } || bytestring.length - 1
11
+ prefix = BASE[0] * nzeroes
12
+ prefix + tos(number)
11
13
  end
12
14
 
13
15
  def self.decode(encoded_string)
14
16
  integer = toi encoded_string
15
- to_bytestring(integer)
17
+ nzeroes = encoded_string.chars.find_index { |c| c != BASE[0] } || encoded_string.length - 1
18
+ prefix = nzeroes < 0 ? '' : 0.chr * nzeroes
19
+ prefix + to_bytestring(integer)
16
20
  end
17
21
 
18
- def self.toi(string=to_s, base=58, digits=BASE)
22
+ def self.toi(string = to_s, base = 58, digits = BASE)
19
23
  return nil if string.empty?
20
24
 
21
25
  integer = 0
@@ -26,9 +30,10 @@ class NearApi::Base58
26
30
  integer
27
31
  end
28
32
 
29
- def self.tos(integer=to_i, base=58, digits=BASE)
33
+ def self.tos(integer = to_i, base = 58, digits = BASE)
30
34
  return '' if integer.nil?
31
35
  return digits[0] if integer == 0
36
+
32
37
  string = ''
33
38
  while integer > 0
34
39
  integer, index = integer.divmod(base)
@@ -38,6 +43,8 @@ class NearApi::Base58
38
43
  end
39
44
 
40
45
  def self.to_bytestring(number)
46
+ return 0.chr if number == 0
47
+
41
48
  integer = number
42
49
  result = ''
43
50
  while integer > 0
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module NearApi
4
- VERSION = "0.1.5"
4
+ VERSION = "0.1.6"
5
5
  end
data/near_api.gemspec CHANGED
@@ -9,13 +9,13 @@ Gem::Specification.new do |spec|
9
9
  spec.email = ["700@2rba.com"]
10
10
 
11
11
  spec.summary = "NEAR blockchain ruby API"
12
- spec.homepage = "https://github.com/2rba/near_api"
12
+ spec.homepage = "https://github.com/near-rails-guide/near_api"
13
13
  spec.license = "MIT"
14
14
  spec.required_ruby_version = ">= 2.4.0"
15
15
 
16
16
  spec.metadata["homepage_uri"] = spec.homepage
17
- spec.metadata["source_code_uri"] = "https://github.com/2rba/near_api"
18
- spec.metadata["changelog_uri"] = "https://github.com/2rba/near_api"
17
+ spec.metadata["source_code_uri"] = "https://github.com/near-rails-guide/near_api"
18
+ spec.metadata["changelog_uri"] = "https://github.com/near-rails-guide/near_api"
19
19
 
20
20
  # Specify which files should be added to the gem when it is released.
21
21
  # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: near_api
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.5
4
+ version: 0.1.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Serg Tyatin
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-12-23 00:00:00.000000000 Z
11
+ date: 2022-03-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: borsh-rb
@@ -73,6 +73,7 @@ executables: []
73
73
  extensions: []
74
74
  extra_rdoc_files: []
75
75
  files:
76
+ - ".github/workflows/ci.yml"
76
77
  - ".gitignore"
77
78
  - ".rspec"
78
79
  - Gemfile
@@ -92,13 +93,13 @@ files:
92
93
  - lib/near_api/status.rb
93
94
  - lib/near_api/version.rb
94
95
  - near_api.gemspec
95
- homepage: https://github.com/2rba/near_api
96
+ homepage: https://github.com/near-rails-guide/near_api
96
97
  licenses:
97
98
  - MIT
98
99
  metadata:
99
- homepage_uri: https://github.com/2rba/near_api
100
- source_code_uri: https://github.com/2rba/near_api
101
- changelog_uri: https://github.com/2rba/near_api
100
+ homepage_uri: https://github.com/near-rails-guide/near_api
101
+ source_code_uri: https://github.com/near-rails-guide/near_api
102
+ changelog_uri: https://github.com/near-rails-guide/near_api
102
103
  post_install_message:
103
104
  rdoc_options: []
104
105
  require_paths:
@@ -114,7 +115,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
114
115
  - !ruby/object:Gem::Version
115
116
  version: '0'
116
117
  requirements: []
117
- rubygems_version: 3.2.22
118
+ rubygems_version: 3.2.32
118
119
  signing_key:
119
120
  specification_version: 4
120
121
  summary: NEAR blockchain ruby API