siwe-rb 0.1.0 → 0.1.2
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 +4 -4
- data/CHANGELOG.md +15 -2
- data/Gemfile.lock +2 -2
- data/README.md +2 -1
- data/lib/siwe/version.rb +1 -1
- data/lib/siwe.rb +11 -0
- data/siwe-rb.gemspec +4 -4
- metadata +4 -4
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 2f43daa18ea4cad6fad589c66ec33ab0e42fe605371705b9f6b6b9c42a00d619
|
|
4
|
+
data.tar.gz: 251ff4c5139a8632090db0db4480020bfe954a595d855d13e9a45ede412feaf4
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 82a18c3a0584046085715bd316d8eda59628b6b92696f2b219adb8e3115546cdcbf2deb3c72996a36550a8fa0966a25a15acfeacbc1416386c153b9a8d771c5a
|
|
7
|
+
data.tar.gz: 88b136c8941313f6d11cf9ea6bb03c538d2e00f09ea4b40fa5806810eb2efbb381f14d738cb2266c36151c9104cab1e0af37f23c7c44e17441e984afc90163dd
|
data/CHANGELOG.md
CHANGED
|
@@ -1,10 +1,23 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.1.2] — 2026-05-04
|
|
4
|
+
|
|
5
|
+
- Add top-level convenience methods `Siwe.parse(str)` (alias for `Siwe::Message.parse`) and `Siwe.eip6492_signature?(hex)` (alias for `Siwe::Eip6492.signature?`), mirroring the TS package's root-level exports.
|
|
6
|
+
- New CI `package` job: builds and installs the gem from a `.gem` file, then runs `script/smoke_test.rb` in a fresh Ruby process. Catches packaging issues (missing files, autoload typos) that in-tree specs miss.
|
|
7
|
+
- Wire up SimpleCov in `spec_helper.rb` (branch coverage enabled). Set `SIWE_SKIP_COVERAGE=1` to disable.
|
|
8
|
+
- Bump GitHub Actions `actions/checkout` v4 → v5 to silence Node.js 20 deprecation warnings.
|
|
9
|
+
- Update gemspec author metadata.
|
|
10
|
+
|
|
11
|
+
## [0.1.1] — 2026-05-04
|
|
12
|
+
|
|
13
|
+
- Bump minimum Ruby to 3.3. RuboCop's transitive dep `parallel` 2.1+ requires Ruby ≥ 3.3, so 3.2 can no longer pass the gem's own CI; Ruby 3.2 went EOL in March 2026 anyway. Runtime users on 3.2 can stay on 0.1.0 — the only runtime dep (`eth`) still supports 3.2.
|
|
14
|
+
- CI matrix dropped 3.2; now runs on Ruby 3.3 and 3.4.
|
|
15
|
+
|
|
3
16
|
## [0.1.0] — 2026-05-04
|
|
4
17
|
|
|
5
18
|
Initial release of `siwe-rb`. Hard fork of the abandoned `siwe` gem (last published 0.1.0, 2021).
|
|
6
19
|
|
|
7
|
-
- Modern Ruby (≥ 3.
|
|
20
|
+
- Modern Ruby (≥ 3.3), no Ruby 2.x cruft.
|
|
8
21
|
- ABNF-aligned EIP-4361 parser; passes the shared `@signinwithethereum/test-vectors` suite (parsing, grammar, objects, verification).
|
|
9
22
|
- 17-character alphanumeric nonce, matching the TypeScript reference (`Siwe.generate_nonce`).
|
|
10
23
|
- Optional `scheme` field for `https://`-prefixed messages (ERC-4361 erratum).
|
|
@@ -13,4 +26,4 @@ Initial release of `siwe-rb`. Hard fork of the abandoned `siwe` gem (last publis
|
|
|
13
26
|
- ERC-1271 + EIP-6492 smart-wallet support via the off-chain universal validator (single `eth_call` covers deployed wallets like Safe and counterfactual wallets like Coinbase Smart Wallet).
|
|
14
27
|
- Built-in `Siwe::Rpc::HttpClient` (Net::HTTP-based JSON-RPC) plus a duck-typed plug-in surface — drop in `web3.rb`, `eth-rpc`, or any object responding to `eth_call(to:, data:, block:)`.
|
|
15
28
|
- Pluggable `Siwe::Adapter` (defaults to the `eth` gem) for crypto / signature recovery.
|
|
16
|
-
- Modern toolchain: RuboCop, RSpec, WebMock, GitHub Actions matrix on Ruby 3.
|
|
29
|
+
- Modern toolchain: RuboCop, RSpec, WebMock, GitHub Actions matrix on Ruby 3.3 / 3.4, optional gated live-RPC integration job.
|
data/Gemfile.lock
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
siwe-rb (0.1.
|
|
4
|
+
siwe-rb (0.1.2)
|
|
5
5
|
eth (>= 0.5.11, < 1.0)
|
|
6
6
|
|
|
7
7
|
GEM
|
|
@@ -202,7 +202,7 @@ CHECKSUMS
|
|
|
202
202
|
simplecov (0.22.0) sha256=fe2622c7834ff23b98066bb0a854284b2729a569ac659f82621fc22ef36213a5
|
|
203
203
|
simplecov-html (0.13.2) sha256=bd0b8e54e7c2d7685927e8d6286466359b6f16b18cb0df47b508e8d73c777246
|
|
204
204
|
simplecov_json_formatter (0.1.4) sha256=529418fbe8de1713ac2b2d612aa3daa56d316975d307244399fa4838c601b428
|
|
205
|
-
siwe-rb (0.1.
|
|
205
|
+
siwe-rb (0.1.2)
|
|
206
206
|
unicode-display_width (3.2.0) sha256=0cdd96b5681a5949cdbc2c55e7b420facae74c4aaf9a9815eee1087cb1853c42
|
|
207
207
|
unicode-emoji (4.2.0) sha256=519e69150f75652e40bf736106cfbc8f0f73aa3fb6a65afe62fefa7f80b0f80f
|
|
208
208
|
webmock (3.26.2) sha256=774556f2ea6371846cca68c01769b2eac0d134492d21f6d0ab5dd643965a4c90
|
data/README.md
CHANGED
|
@@ -15,7 +15,7 @@ gem "siwe-rb", "~> 0.1"
|
|
|
15
15
|
require "siwe"
|
|
16
16
|
```
|
|
17
17
|
|
|
18
|
-
Requires Ruby ≥ 3.
|
|
18
|
+
Requires Ruby ≥ 3.3.
|
|
19
19
|
|
|
20
20
|
## Usage
|
|
21
21
|
|
|
@@ -125,6 +125,7 @@ The full set of error types mirrors `SiweErrorType` in the TypeScript reference
|
|
|
125
125
|
| EIP-6492 verification | ✓ (via viem) | ✓ (built-in) |
|
|
126
126
|
| Pluggable provider | viem / ethers | duck-typed RPC |
|
|
127
127
|
| Shared test-vector suite | ✓ | ✓ |
|
|
128
|
+
| CI matrix | - | Ruby 3.3 / 3.4 |
|
|
128
129
|
|
|
129
130
|
## Development
|
|
130
131
|
|
data/lib/siwe/version.rb
CHANGED
data/lib/siwe.rb
CHANGED
|
@@ -33,5 +33,16 @@ module Siwe
|
|
|
33
33
|
def generate_nonce
|
|
34
34
|
Util.generate_nonce
|
|
35
35
|
end
|
|
36
|
+
|
|
37
|
+
# Top-level alias for Siwe::Message.parse — mirrors how the TS package
|
|
38
|
+
# exposes parsing at the package root.
|
|
39
|
+
def parse(str)
|
|
40
|
+
Message.parse(str)
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
# Top-level alias for Siwe::Eip6492.signature? — mirrors TS isEIP6492Signature.
|
|
44
|
+
def eip6492_signature?(hex)
|
|
45
|
+
Eip6492.signature?(hex)
|
|
46
|
+
end
|
|
36
47
|
end
|
|
37
48
|
end
|
data/siwe-rb.gemspec
CHANGED
|
@@ -5,15 +5,15 @@ require_relative "lib/siwe/version"
|
|
|
5
5
|
Gem::Specification.new do |spec|
|
|
6
6
|
spec.name = "siwe-rb"
|
|
7
7
|
spec.version = Siwe::VERSION
|
|
8
|
-
spec.authors = ["
|
|
9
|
-
spec.email = ["jalil@
|
|
8
|
+
spec.authors = ["EthID.org"]
|
|
9
|
+
spec.email = ["jalil@ethfollow.xyz"]
|
|
10
10
|
|
|
11
11
|
spec.summary = "Sign-In with Ethereum (EIP-4361) for Ruby"
|
|
12
12
|
spec.description = "EIP-4361 message construction, parsing, and signature verification, " \
|
|
13
13
|
"with built-in support for ERC-1271 and EIP-6492 smart contract wallets."
|
|
14
14
|
spec.homepage = "https://github.com/signinwithethereum/siwe-rb"
|
|
15
15
|
spec.license = "MIT"
|
|
16
|
-
spec.required_ruby_version = ">= 3.
|
|
16
|
+
spec.required_ruby_version = ">= 3.3"
|
|
17
17
|
|
|
18
18
|
spec.metadata["homepage_uri"] = spec.homepage
|
|
19
19
|
spec.metadata["source_code_uri"] = spec.homepage
|
|
@@ -23,7 +23,7 @@ Gem::Specification.new do |spec|
|
|
|
23
23
|
spec.files = Dir.chdir(File.expand_path(__dir__)) do
|
|
24
24
|
`git ls-files -z`.split("\x0").reject do |f|
|
|
25
25
|
f == __FILE__ ||
|
|
26
|
-
f.start_with?("spec/", "test/", "features/", "bin/", "gems/") ||
|
|
26
|
+
f.start_with?("spec/", "test/", "features/", "bin/", "gems/", "script/") ||
|
|
27
27
|
f.match?(/\A\.(?:git|github|rubocop|ruby-version|rspec)/)
|
|
28
28
|
end
|
|
29
29
|
end
|
metadata
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: siwe-rb
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.1.
|
|
4
|
+
version: 0.1.2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
|
-
-
|
|
7
|
+
- EthID.org
|
|
8
8
|
bindir: bin
|
|
9
9
|
cert_chain: []
|
|
10
10
|
date: 1980-01-02 00:00:00.000000000 Z
|
|
@@ -32,7 +32,7 @@ dependencies:
|
|
|
32
32
|
description: EIP-4361 message construction, parsing, and signature verification, with
|
|
33
33
|
built-in support for ERC-1271 and EIP-6492 smart contract wallets.
|
|
34
34
|
email:
|
|
35
|
-
- jalil@
|
|
35
|
+
- jalil@ethfollow.xyz
|
|
36
36
|
executables: []
|
|
37
37
|
extensions: []
|
|
38
38
|
extra_rdoc_files: []
|
|
@@ -72,7 +72,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
72
72
|
requirements:
|
|
73
73
|
- - ">="
|
|
74
74
|
- !ruby/object:Gem::Version
|
|
75
|
-
version: '3.
|
|
75
|
+
version: '3.3'
|
|
76
76
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
77
77
|
requirements:
|
|
78
78
|
- - ">="
|