solana-studio 0.4.2 → 0.4.3

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: eddaba3ed1477d676bec3f207d9d1fd41614853259b3fb1b6d8606708f461eef
4
- data.tar.gz: 3517d316ee585700c03b70c868bd5b3e1225e18f3dd03992e69d3e36d81a3e1e
3
+ metadata.gz: 309578396b9717148d416026b43b3e8c6ac485e76620680dd3e0e382b1c1600a
4
+ data.tar.gz: b5ae8dbb553d4941343bf30da034f890effad52b0c0b1d45639c6d51d0b384cf
5
5
  SHA512:
6
- metadata.gz: 8fee45a8591c3c3a8b193aa3a3ab0b719aafedd79ae746e3c3d679c15f83113a3dcc52b1bac34216d4da3502ca3f53dfcc1f12fbc2f159e6df3ca1385d35287a
7
- data.tar.gz: a959122852472eb7a5c1172cfe7f6a719ef44ad3f985ed12d548127c798d976964916dba92a47627a43579e2116a0cdbfb5ed4095ccc25bf299db4434fc6c70a
6
+ metadata.gz: c6d84c1fe7e7ddabf243522864fcbd520325419c373e65e0245dbfc28925bf0d9d70adad1a3ad225fca51c263404309e0b0fc6b08425164592f8495d3ece2d2e
7
+ data.tar.gz: 074a079e4d03ad0ef6ed1d4fb4376788adc5f3a212428c227b88fff2416a23d3ec7d91996989cebc2f7980fa710de9a24b69536ff7a1ace31b78e691f6ed1388
data/CHANGELOG.md CHANGED
@@ -2,6 +2,14 @@
2
2
 
3
3
  The format is [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). This project follows [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
4
4
 
5
+ ## v0.4.3 (2026-05-27)
6
+
7
+ ### Fixed
8
+ - **`Solana::Client#http_post` now preserves the query string when constructing the `Net::HTTP::Post` path** (was: dropped). RPC providers that carry their API key on the query — Helius (`https://devnet.helius-rpc.com/?api-key=…`), QuickNode, Triton — previously received an authless request and replied with their equivalent of `"missing api key"`, breaking every RPC call. `@uri.request_uri` is the correct accessor (path + "?" + query); `@uri.path` returns only the path portion. Surfaced when turf-monster moved off the public devnet endpoint to Helius.
9
+
10
+ ### Tests
11
+ - New `test/client_test.rb` (2 tests): asserts `http_post` builds the request with the full request-URI (path + query) when the RPC URL carries a query string, and falls back to `"/"` when path is empty.
12
+
5
13
  ## v0.4.2 (2026-05-19)
6
14
 
7
15
  Tier-3 fixes from the turf-monster pre-prod opsec audit (OPSEC-017/018/043).
data/lib/solana/client.rb CHANGED
@@ -152,7 +152,13 @@ module Solana
152
152
  http.open_timeout = 10
153
153
  http.read_timeout = 30
154
154
 
155
- request = Net::HTTP::Post.new(@uri.path.empty? ? "/" : @uri.path)
155
+ # `request_uri` preserves the query string (path + "?" + query).
156
+ # `path` alone drops it, which silently breaks RPC providers that
157
+ # carry credentials on the query — e.g. Helius:
158
+ # `https://devnet.helius-rpc.com/?api-key=…`. The server replies
159
+ # with `{"error":"missing api key"}` and the client retries.
160
+ request_path = @uri.request_uri
161
+ request = Net::HTTP::Post.new(request_path.empty? ? "/" : request_path)
156
162
  request["Content-Type"] = "application/json"
157
163
  request.body = body.to_json
158
164
 
data/lib/solana_studio.rb CHANGED
@@ -6,5 +6,5 @@ require_relative "solana/spl_token"
6
6
  require_relative "solana/auth_verifier"
7
7
 
8
8
  module SolanaStudio
9
- VERSION = "0.4.1"
9
+ VERSION = "0.4.3"
10
10
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: solana-studio
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.2
4
+ version: 0.4.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alex McRitchie
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2026-05-20 00:00:00.000000000 Z
11
+ date: 2026-05-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: ed25519