quicknode_sdk 0.1.0.pre.alpha.29-aarch64-linux → 0.1.1-aarch64-linux

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: ded498b342675ccc8425e504a91837878527b09da68553906edbad5076f37ce2
4
- data.tar.gz: fb6aad20abc0e7d0bed91a53e5ba2ec1342243c1afd4c6452aa9ecb34ff31340
3
+ metadata.gz: 7a3f4f9d1920af63dae76da08b608550bf27625ba7b293ed1711d67dffe9e28c
4
+ data.tar.gz: a1f73f064a382ea3366a43fe4aa372465ddc4e6e200b6ae185627845ad793555
5
5
  SHA512:
6
- metadata.gz: 60d059bdf9cc1ff9eeff468cf715b622998e352351732ffc4715e2f968c5892ca676446870fb5d266b4bf56fb588fef4fd5832e685abdcdab5d4ef3c08dc14d8
7
- data.tar.gz: 4d364cd214e4b24162f0bde0ee1ad4cc932c59a5bb2a2065170fdc08f9e5cdde01be787af142d14e498a3c99452be36bd01540dbe3dd976dabb0c20c4393c41d
6
+ metadata.gz: 2622e4404fbc12da5284d0f5ab74b26515c2d8032989885801ce267164cac31bbf1c998a3343010d81e609721e9971de54f3ac20dda10e854747a3905fe3ab01
7
+ data.tar.gz: 9cf30f83a605fa25f21c7d937b943a8785e56020d59bd1d1b4d35d22f6768e215e2a6f0c355397736c0c2cd2b5df5634115e73de8361cc0e86ecf73c07b3e09a
data/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  Ruby bindings for the Quicknode SDK.
4
4
 
5
- This is one of four language bindings published from the same Rust core. See the [project README](https://github.com/quiknode-labs/sdk/blob/main/README.md) for the polyglot overview, development setup, and release process.
5
+ This is one of four language bindings published from the same Rust core. See the [project README](https://github.com/quicknode/sdk/blob/main/README.md) for the polyglot overview, development setup, and release process.
6
6
 
7
7
  ## Table of Contents
8
8
 
@@ -137,7 +137,9 @@ Snippets assume `qn` was already constructed via the Quick Start. Optional param
137
137
 
138
138
  ### Language conventions
139
139
 
140
- - Methods are **blocking** (not async). Parameters are a single Hash with symbol keys. Responses that carry data are returned as a `Hash` with indifferent access — `resp[:data]` and `resp["data"]` both work. Unknown parameter keys raise `ArgumentError`.
140
+ - Methods are **blocking** (not async). Parameters are a single Hash with symbol keys. Unknown parameter keys raise `ArgumentError`.
141
+ - **Response shape.** Every method that returns data returns a `QuicknodeSdk::IndifferentHash` — a plain `Hash` subclass with `Hashie::Extensions::IndifferentAccess`. Access values with `resp[:data]`, `resp["data"]`, or `resp.dig(:data, :id)`. Nested hashes and arrays are wrapped recursively, so symbol or string keys work at every level. **Dot accessors (`resp.data.id`) do not work** — there is no `MethodAccess` extension on this class. Use `[]` or `dig`.
142
+ - **Pagination key naming differs across products** because the underlying APIs do. Admin list endpoints return `resp[:pagination]` (`{ total, limit, offset }`); streams and webhooks list endpoints return `resp[:pageInfo]` (same shape, camelCase). Per-method `**Returns**` blocks note which one applies.
141
143
 
142
144
  ---
143
145
 
@@ -833,13 +835,13 @@ Returns the rate-limit rows currently enforced on the endpoint, each identifying
833
835
 
834
836
  **Parameters**: `id` (endpoint id, required).
835
837
 
836
- **Returns**: `GetRateLimitsResponse` (as a `Hashie::Mash`) with `data.rate_limits: Array<RateLimitEntry>`.
838
+ **Returns**: `GetRateLimitsResponse` (as an `IndifferentHash`) with `data[:rate_limits]: Array<RateLimitEntry>`.
837
839
 
838
840
  ```ruby
839
841
  # Ruby
840
842
  resp = qn.admin.get_rate_limits(id: "123")
841
- resp.data.rate_limits.each do |row|
842
- puts "#{row.bucket} #{row.rate_limit} #{row.source} #{row.id}"
843
+ resp.dig(:data, :rate_limits)&.each do |row|
844
+ puts "#{row[:bucket]} #{row[:rate_limit]} #{row[:source]} #{row[:id]}"
843
845
  end
844
846
  ```
845
847
 
@@ -864,14 +866,14 @@ Returns the HTTP and WebSocket URLs for the endpoint without fetching the full e
864
866
 
865
867
  **Parameters**: `id` (endpoint id, required).
866
868
 
867
- **Returns**: `GetEndpointUrlsResponse` (as a `Hashie::Mash`) with `data.http_url`, `data.wss_url`, and `data.multichain_urls`.
869
+ **Returns**: `GetEndpointUrlsResponse` (as an `IndifferentHash`) with `data[:http_url]`, `data[:wss_url]`, and `data[:multichain_urls]`.
868
870
 
869
871
  ```ruby
870
872
  # Ruby
871
873
  resp = qn.admin.get_endpoint_urls(id: "123")
872
- puts resp.data.http_url
873
- resp.data.multichain_urls&.each do |network, urls|
874
- puts "#{network} #{urls.http_url}"
874
+ puts resp.dig(:data, :http_url)
875
+ resp.dig(:data, :multichain_urls)&.each do |network, urls|
876
+ puts "#{network} #{urls[:http_url]}"
875
877
  end
876
878
  ```
877
879
 
@@ -883,7 +885,7 @@ Returns metric series for an endpoint over a time period.
883
885
 
884
886
  **Parameters**: `id` (endpoint id, required); body: `period` (`"hour"` | `"day"` | `"week"` | `"month"`), `metric` (e.g. `"method_calls_over_time"`, `"response_status_breakdown"`).
885
887
 
886
- **Returns**: `GetEndpointMetricsResponse` (as a `Hashie::Mash`) with `data: Array<EndpointMetric>`. Each `EndpointMetric` has `tag: Array<String>` and `data: Array<Array<Integer>>` of `[timestamp, value]` pairs. Single-axis series (e.g. `response_time_over_time` with a percentile) come back as a one-element tag like `["p95"]`; multi-axis series come back as `["network", "arbitrum-mainnet"]`.
888
+ **Returns**: `GetEndpointMetricsResponse` (as an `IndifferentHash`) with `data: Array<EndpointMetric>`. Each `EndpointMetric` has `tag: Array<String>` and `data: Array<Array<Integer>>` of `[timestamp, value]` pairs. Single-axis series (e.g. `response_time_over_time` with a percentile) come back as a one-element tag like `["p95"]`; multi-axis series come back as `["network", "arbitrum-mainnet"]`.
887
889
 
888
890
  ```ruby
889
891
  # Ruby
@@ -900,7 +902,7 @@ Returns account-level metric series. Supports an optional `percentile` (e.g. `"p
900
902
 
901
903
  **Parameters**: `period` (required), `metric` (required), `percentile` (string, optional).
902
904
 
903
- **Returns**: `GetAccountMetricsResponse` (as a `Hashie::Mash`) with `data: Array<EndpointMetric>`. See `get_endpoint_metrics` above for the `tag: Array<String>` shape.
905
+ **Returns**: `GetAccountMetricsResponse` (as an `IndifferentHash`) with `data: Array<EndpointMetric>`. See `get_endpoint_metrics` above for the `tag: Array<String>` shape.
904
906
 
905
907
  ```ruby
906
908
  # Ruby
@@ -1010,13 +1012,13 @@ resp = qn.admin.list_tags
1010
1012
 
1011
1013
  Renames an account-level tag.
1012
1014
 
1013
- **Parameters**: `tag_id` (i32, required); body: `label` (string, required).
1015
+ **Parameters**: `id` (i32, required — the tag id); body: `label` (string, required).
1014
1016
 
1015
1017
  **Returns**: `RenameTagResponse` with updated `AccountTag`.
1016
1018
 
1017
1019
  ```ruby
1018
1020
  # Ruby
1019
- resp = qn.admin.rename_tag(tag_id: 42, label: "staging")
1021
+ resp = qn.admin.rename_tag(id: 42, label: "staging")
1020
1022
  ```
1021
1023
 
1022
1024
  ##### `delete_account_tag` / `deleteAccountTag`
@@ -1032,6 +1034,24 @@ Deletes a tag from the account. The tag must first be removed from any endpoints
1032
1034
  qn.admin.delete_account_tag(id: 42)
1033
1035
  ```
1034
1036
 
1037
+ #### Tag / delete method parameter quick-reference
1038
+
1039
+ The pattern across the Admin client: `id:` always names the **parent** resource. The child resource takes its own `<child>_id:`. The two account-level tag operations collapse to a single `id:` (the tag id) because there is no parent endpoint.
1040
+
1041
+ | Method | Required keys |
1042
+ |---|---|
1043
+ | `delete_tag` (per-endpoint) | `id:` (endpoint id), `tag_id:` |
1044
+ | `delete_account_tag` | `id:` (tag id) |
1045
+ | `rename_tag` | `id:` (tag id), `label:` |
1046
+ | `delete_token` | `id:` (endpoint id), `token_id:` |
1047
+ | `delete_referrer` | `id:`, `referrer_id:` |
1048
+ | `delete_ip` | `id:`, `ip_id:` |
1049
+ | `delete_domain_mask` | `id:`, `domain_mask_id:` |
1050
+ | `delete_jwt` | `id:`, `jwt_id:` |
1051
+ | `delete_method_rate_limit` | `id:`, `method_rate_limit_id:` |
1052
+ | `delete_request_filter` | `id:`, `request_filter_id:` |
1053
+ | `delete_rate_limit_override` | `id:`, `override_id:` |
1054
+
1035
1055
  ---
1036
1056
 
1037
1057
  ### Streams Client
@@ -1048,20 +1068,16 @@ Enums used across stream methods:
1048
1068
  - **`FilterLanguage`**: `Javascript`, `Go`, `Wasm`.
1049
1069
  - **`StreamMetadataLocation`**: `Body`, `Header`, `None`.
1050
1070
 
1051
- Destinations are expressed via `DestinationAttributes`. Each variant wraps an attribute struct:
1071
+ Destinations are expressed via `DestinationAttributes`. Each variant wraps an attribute struct. On returned `Stream` records, `destination_attributes` is **flat** (no `attributes:` nesting) — access fields directly with `resp.dig(:destination_attributes, :url)`.
1072
+
1052
1073
 
1053
1074
  | Variant | Struct | Key fields |
1054
1075
  |---|---|---|
1055
1076
  | `Webhook` | `WebhookAttributes` | `url`, `max_retry`, `retry_interval_sec`, `post_timeout_sec`, `compression`, `security_token?` |
1056
1077
  | `S3` | `S3Attributes` | `endpoint`, `access_key`, `secret_key`, `bucket`, `object_prefix`, `compression`, `file_type`, `max_retry`, `retry_interval_sec`, `use_ssl?` |
1057
1078
  | `Azure` | `AzureAttributes` | `storage_account`, `sas_token`, `container`, `compression`, `file_type`, `max_retry`, `retry_interval_sec`, `blob_prefix?` |
1058
- | `Postgres` | `PostgresAttributes` | `host`, `port`, `username`, `password`, `database`, `schema`, `table`, `max_retry`, `retry_interval_sec`, `use_ssl?` |
1059
- | `Mysql` | `MysqlAttributes` | `host`, `port`, `username`, `password`, `database`, `table`, `max_retry`, `retry_interval_sec`, `use_ssl?` |
1060
- | `Mongo` | `MongoAttributes` | `connection_string`, `database`, `collection`, `max_retry`, `retry_interval_sec` |
1061
- | `Clickhouse` | `ClickhouseAttributes` | `host`, `port`, `username`, `password`, `database`, `table`, `max_retry`, `retry_interval_sec`, `use_ssl?` |
1062
- | `Snowflake` | `SnowflakeAttributes` | `account`, `warehouse`, `database`, `schema`, `table`, `username`, `private_key`, `max_retry`, `retry_interval_sec` |
1063
- | `Kafka` | `KafkaAttributes` | `bootstrap_servers`, `topic`, `compression`, `max_retry`, `retry_interval_sec` |
1064
- | `Redis` | `RedisAttributes` | `host`, `port`, `username`, `password`, `key`, `max_retry`, `retry_interval_sec`, `use_ssl?` |
1079
+ | `Postgres` | `PostgresAttributes` | `host`, `port?` (default `5432`), `username`, `password`, `database`, `table_name`, `sslmode`, `max_retry?`, `retry_interval_sec?` |
1080
+ | `Kafka` | `KafkaAttributes` | `bootstrap_servers`, `topic_name`, `compression_type`, `batch_size?`, `linger_ms?`, `max_message_bytes?`, `timeout_sec?`, `max_retry?`, `retry_interval_sec?`, `username?`, `password?`, `protocol?`, `mechanisms?` |
1065
1081
 
1066
1082
  Wrapper naming per language:
1067
1083
 
@@ -1109,7 +1125,7 @@ Paginated list of streams on the account.
1109
1125
 
1110
1126
  **Parameters** (all optional): `offset` (i64), `limit` (i64), `order_by` (string), `order_direction` (`"asc"` | `"desc"`), `stream_type` (string).
1111
1127
 
1112
- **Returns**: `ListStreamsResponse` with `data: Stream[]` and `page_info`.
1128
+ **Returns**: `ListStreamsResponse` with `data: Stream[]` and `pageInfo` (camelCase on the wire — access as `resp[:pageInfo][:total]`).
1113
1129
 
1114
1130
  ```ruby
1115
1131
  # Ruby
@@ -1250,7 +1266,7 @@ Accessed as `qn.webhooks`. Creates webhooks from filter templates and manages th
1250
1266
  | Factory | Argument struct | Fields |
1251
1267
  |---|---|---|
1252
1268
  | `evm_wallet_filter` | `EvmWalletFilterTemplate` | `wallets: string[]` |
1253
- | `evm_contract_events` | `EvmContractEventsTemplate` | `contracts: string[]`, `event_hashes?: string[]` |
1269
+ | `evm_contract_events` | `EvmContractEventsTemplate` | `contracts: string[]`, `eventHashes?: string[]` (camelCase — `event_hashes` is rejected by the API) |
1254
1270
  | `evm_abi_filter` | `EvmAbiFilterTemplate` | `abi: string` (JSON), `contracts: string[]` |
1255
1271
  | `solana_wallet_filter` | `SolanaWalletFilterTemplate` | `accounts: string[]` |
1256
1272
  | `bitcoin_wallet_filter` | `BitcoinWalletFilterTemplate` | `wallets: string[]` |
@@ -1262,7 +1278,7 @@ Accessed as `qn.webhooks`. Creates webhooks from filter templates and manages th
1262
1278
 
1263
1279
  `WebhookStartFrom`: `Last` (resume from last delivered block) or `Latest` (start from newest).
1264
1280
 
1265
- In Ruby, `template_args` is passed as a JSON string under the key `template_args_json`; destination is passed as a JSON string under `destination_attributes_json`.
1281
+ In Ruby, `template_args` is passed as a JSON string under the key `template_args_json` on every template-aware method. The destination is passed as a JSON string under `destination_attributes_json` on `create_webhook_from_template` and `update_webhook`. **`update_webhook_template` cannot change the destination** — it accepts only `webhook_id`, `template_args_json`, `name?`, and `notification_email?`.
1266
1282
 
1267
1283
  #### Webhooks methods
1268
1284
 
@@ -1333,9 +1349,9 @@ webhook = qn.webhooks.update_webhook(id: "wh-1", name: "Renamed Webhook")
1333
1349
 
1334
1350
  ##### `update_webhook_template` / `updateWebhookTemplate`
1335
1351
 
1336
- Updates the template args (and optionally name, email, destination) on an existing template-backed webhook.
1352
+ Updates the template args (and optionally name and notification email) on an existing template-backed webhook. The destination cannot be changed after creation — to point a webhook at a new URL or storage backend, create a new one.
1337
1353
 
1338
- **Parameters**: `webhook_id` (required), `template_args` (required); optional: `name`, `notification_email`, `destination_attributes`.
1354
+ **Parameters**: `webhook_id` (required), `template_args_json` (required — JSON string); optional: `name`, `notification_email`.
1339
1355
 
1340
1356
  **Returns**: updated `Webhook`.
1341
1357
 
Binary file
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: quicknode_sdk
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0.pre.alpha.29
4
+ version: 0.1.1
5
5
  platform: aarch64-linux
6
6
  authors:
7
7
  - Quicknode
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2026-05-27 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: hashie