@quicknode/sdk 3.1.0-alpha.14 → 3.1.0-alpha.17
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.
- package/README.md +64 -114
- package/index.d.ts +107 -143
- package/index.darwin-arm64.node +0 -0
- package/index.linux-arm64-gnu.node +0 -0
- package/index.linux-arm64-musl.node +0 -0
- package/index.linux-x64-gnu.node +0 -0
- package/index.linux-x64-musl.node +0 -0
- package/package.json +6 -6
- package/sdk.d.ts +8 -16
package/README.md
CHANGED
|
@@ -15,10 +15,10 @@ Rust SDK with Python, Node.js, and Ruby bindings.
|
|
|
15
15
|
- [Testing](#testing)
|
|
16
16
|
- [Examples](#examples)
|
|
17
17
|
- [Releasing](#releasing)
|
|
18
|
-
- [
|
|
19
|
-
- [
|
|
20
|
-
- [
|
|
21
|
-
- [
|
|
18
|
+
- [Two-phase flow](#two-phase-flow)
|
|
19
|
+
- [Building blocks](#building-blocks)
|
|
20
|
+
- [Version conventions](#version-conventions)
|
|
21
|
+
- [First-time setup](#first-time-setup)
|
|
22
22
|
- [License](#license)
|
|
23
23
|
|
|
24
24
|
## Per-language docs
|
|
@@ -76,7 +76,7 @@ cargo check
|
|
|
76
76
|
cargo test -p quicknode-sdk
|
|
77
77
|
|
|
78
78
|
# Python (from project root)
|
|
79
|
-
just python-setup
|
|
79
|
+
just python-setup
|
|
80
80
|
just python-build
|
|
81
81
|
|
|
82
82
|
# Node.js (from npm/)
|
|
@@ -120,126 +120,76 @@ QN_SDK__API_KEY=replaceme ruby ruby/examples/streams.rb
|
|
|
120
120
|
|
|
121
121
|
### Releasing
|
|
122
122
|
|
|
123
|
-
|
|
123
|
+
All four packages (Rust crate, Python wheels, Node `.node` module, Ruby gem) ship together from a single project version. The release flow is split into two `just` commands:
|
|
124
124
|
|
|
125
|
-
|
|
125
|
+
- **`just release-prepare <version>`** — bump versions, push, tag, build all Linux + macOS artifacts, attach them to a GitHub release. **No registry publish yet.**
|
|
126
|
+
- **`just release-publish <version>`** — push to crates.io and trigger the PyPI / npm / RubyGems publish workflows.
|
|
126
127
|
|
|
127
|
-
|
|
128
|
-
# 1. Bump the version in crates/core/Cargo.toml (e.g. 0.1.0 → 0.1.0-alpha.5)
|
|
129
|
-
# Pre-release identifiers use SemVer 2.0 syntax: MAJOR.MINOR.PATCH-<id>.<N>
|
|
130
|
-
# Examples: 0.1.0-alpha.4, 0.2.0-beta.1, 0.2.0-rc.1
|
|
131
|
-
|
|
132
|
-
# 2. Commit and push
|
|
133
|
-
git commit -am "chore: release quicknode-sdk 0.1.0-alpha.5"
|
|
134
|
-
git push
|
|
135
|
-
|
|
136
|
-
# 3. Validate the tarball (no upload)
|
|
137
|
-
cargo publish -p quicknode-sdk --dry-run
|
|
138
|
-
|
|
139
|
-
# 4. Publish (requires `cargo login` with a crates.io token)
|
|
140
|
-
cargo publish -p quicknode-sdk
|
|
141
|
-
```
|
|
142
|
-
|
|
143
|
-
The first publish claims the `quicknode-sdk` name permanently. Published versions are immutable — you cannot overwrite or delete them (only `cargo yank`, which hides but doesn't remove).
|
|
144
|
-
|
|
145
|
-
#### All bindings together (Python / Node / Ruby)
|
|
146
|
-
|
|
147
|
-
macOS (Apple Silicon) artifacts are built locally rather than on GitHub Actions to avoid the ~10× runner cost. Linux artifacts are built by CI when a GitHub release is published.
|
|
148
|
-
|
|
149
|
-
1. **Bump versions and commit:**
|
|
150
|
-
```bash
|
|
151
|
-
just release 0.2.0
|
|
152
|
-
git push
|
|
153
|
-
```
|
|
154
|
-
|
|
155
|
-
2. **Create the GitHub release** via the GitHub UI:
|
|
156
|
-
- **Releases → Draft a new release**.
|
|
157
|
-
- **Choose a tag** → type `v0.2.0` → **Create new tag on publish**.
|
|
158
|
-
- Target branch: `main`.
|
|
159
|
-
- Fill in title and notes (or click **Generate release notes**).
|
|
160
|
-
- Click **Publish release**.
|
|
161
|
-
|
|
162
|
-
This creates + pushes the tag and triggers `.github/workflows/release.yml`, which builds Linux artifacts and attaches them to the release.
|
|
163
|
-
|
|
164
|
-
3. **Build macOS arm64 artifacts locally and append them to the release:**
|
|
165
|
-
```bash
|
|
166
|
-
just macos-build-and-publish 0.2.0
|
|
167
|
-
```
|
|
168
|
-
|
|
169
|
-
Step 3 requires the [`gh` CLI](https://cli.github.com/) authenticated to the repo. Intel macOS (`x86_64-apple-darwin`) is not shipped — users on Intel Macs install from source.
|
|
170
|
-
|
|
171
|
-
`just release` does **not** bump the Rust crate version (that's managed separately in `crates/core/Cargo.toml`). If you want the Rust crate to move in lockstep with a binding release, bump it manually in the same commit.
|
|
172
|
-
|
|
173
|
-
#### npm publish (`@quicknode/sdk`)
|
|
174
|
-
|
|
175
|
-
The Node package is published to npm as `@quicknode/sdk`. During the 3.x pre-release period, publishes use the `next` dist-tag so `npm install @quicknode/sdk` continues to resolve to the legacy 2.x release while `npm install @quicknode/sdk@next` pulls the rewrite.
|
|
176
|
-
|
|
177
|
-
The npm publish uses [napi-rs's multi-package layout](https://napi.rs/docs/deep-dive/release): one main package plus per-platform sub-packages (`@quicknode/sdk-linux-x64-gnu`, `@quicknode/sdk-darwin-arm64`, etc.) declared as `optionalDependencies`. Publishing is triggered manually via a GitHub Actions workflow so the macOS binary (built locally) can be uploaded to the GitHub release before publish.
|
|
128
|
+
The pause between the two commands is the natural review point: inspect the GitHub release page and confirm all artifacts are present before anything goes public.
|
|
178
129
|
|
|
179
|
-
|
|
130
|
+
Requires the [`gh` CLI](https://cli.github.com/) authenticated to the repo, an Apple Silicon Mac (macOS arm64 artifacts are built locally to avoid the ~10× CI runner cost), and `cargo login` with a crates.io token.
|
|
180
131
|
|
|
181
|
-
|
|
132
|
+
#### Two-phase flow
|
|
182
133
|
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
2. **Create the GitHub release** via the GitHub UI:
|
|
188
|
-
- Go to **Releases → Draft a new release**.
|
|
189
|
-
- Click **Choose a tag**, type the new tag (e.g. `v0.1.0-alpha.5`), and select **Create new tag on publish**.
|
|
190
|
-
- Target branch: `main`.
|
|
191
|
-
- Fill in the title and release notes (or click **Generate release notes**).
|
|
192
|
-
- Click **Publish release**.
|
|
193
|
-
|
|
194
|
-
Publishing the release creates + pushes the tag, which triggers `.github/workflows/release.yml`. CI builds the Linux `.node` artifacts and attaches them to the release you just created.
|
|
195
|
-
|
|
196
|
-
3. **Wait for `release.yml` to finish.** Confirm the four Linux `index.*.node` artifacts are attached to the release.
|
|
197
|
-
|
|
198
|
-
4. **Build and upload the macOS arm64 binary** locally (Apple Silicon Mac required):
|
|
199
|
-
```bash
|
|
200
|
-
just node-build
|
|
201
|
-
gh release upload v0.1.0-alpha.5 npm/index.darwin-arm64.node
|
|
202
|
-
```
|
|
203
|
-
|
|
204
|
-
5. **Trigger the publish workflow.** From the GitHub UI: **Actions → Publish npm → Run workflow**, then enter the git tag (`v0.1.0-alpha.5`) and npm dist-tag (`next`). Or via CLI:
|
|
205
|
-
```bash
|
|
206
|
-
gh workflow run publish-npm.yml -f tag=v0.1.0-alpha.5 -f npm_tag=next
|
|
207
|
-
```
|
|
208
|
-
|
|
209
|
-
6. **Verify.**
|
|
210
|
-
```bash
|
|
211
|
-
npm view @quicknode/sdk dist-tags
|
|
212
|
-
# Expected: next: 3.0.0-alpha.5, latest: 2.6.0 (unchanged)
|
|
213
|
-
```
|
|
214
|
-
|
|
215
|
-
Users can install the pre-release with `npm install @quicknode/sdk@next`.
|
|
216
|
-
|
|
217
|
-
#### PyPI publish (`quicknode-sdk`)
|
|
218
|
-
|
|
219
|
-
The Python package is published to PyPI as `quicknode-sdk`. Wheels and the sdist are built by `release.yml` on every GitHub release and attached as artifacts; the `Publish PyPI` workflow downloads them from a release tag and uploads to PyPI via `twine`.
|
|
220
|
-
|
|
221
|
-
**Version format:** PyPI uses PEP 440, so pre-releases are written without a hyphen. `0.1.0-alpha.6` → `0.1.0a6` in `pyproject.toml`.
|
|
222
|
-
|
|
223
|
-
**Per-release flow:**
|
|
134
|
+
```bash
|
|
135
|
+
# Phase 1: build a fully-staged GitHub release
|
|
136
|
+
just release-prepare 0.2.0
|
|
224
137
|
|
|
225
|
-
|
|
138
|
+
# Inspect https://github.com/<org>/<repo>/releases/tag/v0.2.0
|
|
139
|
+
# Confirm: Linux Python wheels, Linux .node files, Linux Ruby gem,
|
|
140
|
+
# macOS arm64 wheels, index.darwin-arm64.node, arm64-darwin .gem.
|
|
226
141
|
|
|
227
|
-
|
|
142
|
+
# Phase 2: publish to crates.io + trigger registry publish workflows
|
|
143
|
+
just release-publish 0.2.0
|
|
144
|
+
```
|
|
228
145
|
|
|
229
|
-
|
|
146
|
+
`release-prepare` prompts twice — once up front before bumping, and once after the bump (showing the diff) before pushing the tag. `release-publish` prompts once before any registry write. Pass `yes=1` to skip prompts (e.g. for automation): `just release-prepare 0.2.0 yes=1`.
|
|
230
147
|
|
|
231
|
-
|
|
232
|
-
```bash
|
|
233
|
-
gh workflow run publish-pypi.yml -f tag=v0.1.0-alpha.6
|
|
234
|
-
```
|
|
148
|
+
#### Building blocks
|
|
235
149
|
|
|
236
|
-
|
|
237
|
-
```bash
|
|
238
|
-
pip install quicknode-sdk==0.1.0a6
|
|
239
|
-
python -c "import sdk; print(sdk.QuicknodeSdk)"
|
|
240
|
-
```
|
|
150
|
+
If a phase fails partway, resume with the individual recipes — they are also useful for reruns:
|
|
241
151
|
|
|
242
|
-
|
|
152
|
+
| Recipe | Purpose |
|
|
153
|
+
|---|---|
|
|
154
|
+
| `release-bump <version>` | Bump versions in all manifests, commit + tag locally |
|
|
155
|
+
| `release-push <version>` | `git push` + push tag |
|
|
156
|
+
| `release-create-tag <version>` | `gh release create` (triggers Linux CI build) |
|
|
157
|
+
| `release-wait-ci <version>` | Block until `release.yml` finishes attaching Linux artifacts |
|
|
158
|
+
| `macos-build-and-publish <version>` | Build macOS arm64 wheels / `.node` / `.gem` and `gh release upload` |
|
|
159
|
+
| `release-cargo-publish-check` | `cargo publish -p quicknode-sdk --dry-run` |
|
|
160
|
+
| `release-cargo-publish` | `cargo publish -p quicknode-sdk` |
|
|
161
|
+
| `release-trigger-pypi <version>` | Dispatch `publish-pypi.yml` |
|
|
162
|
+
| `release-trigger-npm <version> [npm_tag]` | Dispatch `publish-npm.yml` (default tag: `next`) |
|
|
163
|
+
| `release-trigger-rubygems <version>` | Dispatch `publish-rubygems.yml` |
|
|
164
|
+
| `release-trigger-all <version> [npm_tag]` | All three trigger recipes in sequence |
|
|
165
|
+
|
|
166
|
+
#### Version conventions
|
|
167
|
+
|
|
168
|
+
A single version argument drives every manifest, with two automatic translations applied by `release-bump`:
|
|
169
|
+
|
|
170
|
+
| Manifest | Format example for `0.1.0-alpha.6` |
|
|
171
|
+
|---|---|
|
|
172
|
+
| `Cargo.toml` (workspace) | `0.1.0-alpha.6` |
|
|
173
|
+
| `crates/core/Cargo.toml` | `0.1.0-alpha.6` |
|
|
174
|
+
| `pyproject.toml` (PEP 440) | `0.1.0a6` |
|
|
175
|
+
| `ruby/quicknode_sdk.gemspec` | `0.1.0-alpha.6` |
|
|
176
|
+
| `npm/package.json` | `3.0.0-alpha.6` (`0.x` → `3.x` because `@quicknode/sdk` 2.x already exists on npm) |
|
|
177
|
+
|
|
178
|
+
Pre-release identifiers use SemVer 2.0 syntax: `MAJOR.MINOR.PATCH-<id>.<N>` — e.g. `0.1.0-alpha.4`, `0.2.0-beta.1`, `0.2.0-rc.1`. The npm pre-release period uses the `next` dist-tag so `npm install @quicknode/sdk` continues to resolve to legacy 2.x while `npm install @quicknode/sdk@next` pulls the rewrite.
|
|
179
|
+
|
|
180
|
+
`release-bump` only accepts versions starting with `0.`. The `0.x → 3.x` mapping (and the recipe's guard) needs to be revisited when the project graduates to `1.0`.
|
|
181
|
+
|
|
182
|
+
#### First-time setup
|
|
183
|
+
|
|
184
|
+
- The first crates.io publish claims the `quicknode-sdk` name permanently. Published versions are immutable (only `cargo yank` is reversible, and it only hides).
|
|
185
|
+
- The first PyPI upload needs a user-scoped `PYPI_API_TOKEN`; rotate to a project-scoped token after.
|
|
186
|
+
- Verify a release reached each registry:
|
|
187
|
+
```bash
|
|
188
|
+
cargo search quicknode-sdk
|
|
189
|
+
pip install quicknode-sdk==0.1.0a6
|
|
190
|
+
npm view @quicknode/sdk dist-tags
|
|
191
|
+
gem search -e quicknode_sdk
|
|
192
|
+
```
|
|
243
193
|
|
|
244
194
|
## License
|
|
245
195
|
|
package/index.d.ts
CHANGED
|
@@ -108,7 +108,7 @@ export interface BulkUpdateEndpointStatusResponse {
|
|
|
108
108
|
export interface BulkAddTagRequest {
|
|
109
109
|
/** Endpoint ids to tag. */
|
|
110
110
|
ids: Array<string>
|
|
111
|
-
/** Label of the tag to apply (created if it doesn't exist). */
|
|
111
|
+
/** Label of the tag to apply (created if it doesn't exist). Maximum 25 characters. */
|
|
112
112
|
label: string
|
|
113
113
|
}
|
|
114
114
|
/** Tag reference returned on bulk tag operations. */
|
|
@@ -208,8 +208,12 @@ export interface GetAccountMetricsRequest {
|
|
|
208
208
|
export interface EndpointMetric {
|
|
209
209
|
/** Data points, each as `[timestamp, value]`. */
|
|
210
210
|
data: Array<Array<number>>
|
|
211
|
-
/**
|
|
212
|
-
|
|
211
|
+
/**
|
|
212
|
+
* Tag identifying the series. Single-axis metrics return a one-element
|
|
213
|
+
* vector (e.g. `["total"]`, `["p95"]`); multi-axis metrics return the
|
|
214
|
+
* key/value pair (e.g. `["network", "arbitrum-mainnet"]`).
|
|
215
|
+
*/
|
|
216
|
+
tag: Array<string>
|
|
213
217
|
}
|
|
214
218
|
/** Response from `get_endpoint_metrics`. */
|
|
215
219
|
export interface GetEndpointMetricsResponse {
|
|
@@ -298,6 +302,37 @@ export interface UpdateRateLimitsRequest {
|
|
|
298
302
|
/** Rate limit values to apply. */
|
|
299
303
|
rateLimits: RateLimitSettings
|
|
300
304
|
}
|
|
305
|
+
/**
|
|
306
|
+
* A single rate-limit row returned by `get_rate_limits`, identifying the
|
|
307
|
+
* bucket (`rps`/`rpm`/`rpd`), the value enforced, and whether the value comes
|
|
308
|
+
* from the plan default or a user-set override.
|
|
309
|
+
*/
|
|
310
|
+
export interface RateLimitEntry {
|
|
311
|
+
/** Which bucket this row applies to: `rps`, `rpm`, or `rpd`. */
|
|
312
|
+
bucket: string
|
|
313
|
+
/** The enforced value for this bucket. */
|
|
314
|
+
rateLimit: number
|
|
315
|
+
/** Where the value comes from: `plan_default` or `user_override`. */
|
|
316
|
+
source: string
|
|
317
|
+
/**
|
|
318
|
+
* Row identifier. Present on `user_override` rows — pass it to
|
|
319
|
+
* `delete_rate_limit_override` to remove the override. May be absent on
|
|
320
|
+
* `plan_default` rows and cannot be deleted there.
|
|
321
|
+
*/
|
|
322
|
+
id?: string
|
|
323
|
+
}
|
|
324
|
+
/** Inner data for `get_rate_limits`. */
|
|
325
|
+
export interface GetRateLimitsData {
|
|
326
|
+
/** One row per enforced bucket. */
|
|
327
|
+
rateLimits: Array<RateLimitEntry>
|
|
328
|
+
}
|
|
329
|
+
/** Response from `get_rate_limits`. */
|
|
330
|
+
export interface GetRateLimitsResponse {
|
|
331
|
+
/** Rate-limit rows with their source. */
|
|
332
|
+
data?: GetRateLimitsData
|
|
333
|
+
/** Error message when the request did not succeed. */
|
|
334
|
+
error?: string
|
|
335
|
+
}
|
|
301
336
|
/** A single security feature's name, status, and optional value. */
|
|
302
337
|
export interface SecurityOption {
|
|
303
338
|
/** Name of the security feature (e.g. `tokens`, `jwts`, `ips`). */
|
|
@@ -420,6 +455,32 @@ export interface DeleteBoolResponse {
|
|
|
420
455
|
/** Error message when the request did not succeed. */
|
|
421
456
|
error?: string
|
|
422
457
|
}
|
|
458
|
+
/** HTTP/WSS URL pair for a single network on a multichain endpoint. */
|
|
459
|
+
export interface EndpointUrl {
|
|
460
|
+
/** HTTP RPC URL. */
|
|
461
|
+
httpUrl: string
|
|
462
|
+
/** WebSocket RPC URL, when available. */
|
|
463
|
+
wssUrl?: string
|
|
464
|
+
}
|
|
465
|
+
/**
|
|
466
|
+
* Inner data for `get_endpoint_urls` — the http/wss URLs for the endpoint and,
|
|
467
|
+
* when the endpoint is multichain, a per-network map of additional URLs.
|
|
468
|
+
*/
|
|
469
|
+
export interface GetEndpointUrlsData {
|
|
470
|
+
/** HTTP RPC URL. */
|
|
471
|
+
httpUrl: string
|
|
472
|
+
/** WebSocket RPC URL, when available. */
|
|
473
|
+
wssUrl?: string
|
|
474
|
+
/** Per-network URLs for multichain endpoints; `None` for single-chain endpoints. */
|
|
475
|
+
multichainUrls?: Record<string, EndpointUrl>
|
|
476
|
+
}
|
|
477
|
+
/** Response from `get_endpoint_urls`. */
|
|
478
|
+
export interface GetEndpointUrlsResponse {
|
|
479
|
+
/** URLs for the endpoint. */
|
|
480
|
+
data?: GetEndpointUrlsData
|
|
481
|
+
/** Error message when the request did not succeed. */
|
|
482
|
+
error?: string
|
|
483
|
+
}
|
|
423
484
|
/** Parameters for `get_endpoints`. */
|
|
424
485
|
export interface GetEndpointsRequest {
|
|
425
486
|
/** Maximum number of endpoints returned. */
|
|
@@ -489,6 +550,8 @@ export interface Endpoint {
|
|
|
489
550
|
wssUrl?: string
|
|
490
551
|
/** Tags applied to the endpoint. */
|
|
491
552
|
tags: Array<EndpointTag>
|
|
553
|
+
/** Whether the endpoint is configured to serve multiple chains/networks. */
|
|
554
|
+
isMultichain: boolean
|
|
492
555
|
}
|
|
493
556
|
/** Tag reference as returned on an endpoint. */
|
|
494
557
|
export interface EndpointTag {
|
|
@@ -533,6 +596,8 @@ export interface SingleEndpoint {
|
|
|
533
596
|
rateLimits?: EndpointRateLimits
|
|
534
597
|
/** Tags applied to the endpoint. */
|
|
535
598
|
tags: Array<EndpointTag>
|
|
599
|
+
/** Whether the endpoint is configured to serve multiple chains/networks. */
|
|
600
|
+
isMultichain: boolean
|
|
536
601
|
}
|
|
537
602
|
/** Rate limits applied to an endpoint. */
|
|
538
603
|
export interface EndpointRateLimits {
|
|
@@ -662,7 +727,7 @@ export interface UpdateEndpointStatusResponse {
|
|
|
662
727
|
}
|
|
663
728
|
/** Parameters for `create_tag` (on a specific endpoint). */
|
|
664
729
|
export interface CreateTagRequest {
|
|
665
|
-
/** Label for the new tag. */
|
|
730
|
+
/** Label for the new tag. Maximum 25 characters. */
|
|
666
731
|
label?: string
|
|
667
732
|
}
|
|
668
733
|
/** Response from `get_endpoint_security`. */
|
|
@@ -1244,12 +1309,7 @@ export const enum StreamDestination {
|
|
|
1244
1309
|
S3 = 'S3',
|
|
1245
1310
|
Azure = 'Azure',
|
|
1246
1311
|
Postgres = 'Postgres',
|
|
1247
|
-
|
|
1248
|
-
Snowflake = 'Snowflake',
|
|
1249
|
-
Mysql = 'Mysql',
|
|
1250
|
-
Mongo = 'Mongo',
|
|
1251
|
-
Kafka = 'Kafka',
|
|
1252
|
-
Redis = 'Redis'
|
|
1312
|
+
Kafka = 'Kafka'
|
|
1253
1313
|
}
|
|
1254
1314
|
/** Language a stream's filter function is written in. */
|
|
1255
1315
|
export const enum FilterLanguage {
|
|
@@ -1280,16 +1340,16 @@ export const enum StreamStatus {
|
|
|
1280
1340
|
export interface WebhookAttributes {
|
|
1281
1341
|
/** Destination URL that receives batched stream payloads. */
|
|
1282
1342
|
url: string
|
|
1283
|
-
/** Maximum number of retry attempts for a failed delivery. */
|
|
1343
|
+
/** Maximum number of retry attempts for a failed delivery. Must be in the range 1–10. */
|
|
1284
1344
|
maxRetry: number
|
|
1285
1345
|
/** Seconds to wait between retry attempts. */
|
|
1286
1346
|
retryIntervalSec: number
|
|
1287
1347
|
/** Timeout in seconds for each POST request. */
|
|
1288
1348
|
postTimeoutSec: number
|
|
1289
|
-
/** Optional token included with each request so the receiver can verify authenticity. */
|
|
1349
|
+
/** Optional token included with each request so the receiver can verify authenticity. When supplied, must be at least 32 bytes (256 bits). */
|
|
1290
1350
|
securityToken?: string
|
|
1291
|
-
/** Compression applied to the payload (e.g. `none`, `gzip`). */
|
|
1292
|
-
compression
|
|
1351
|
+
/** Compression applied to the payload (e.g. `none`, `gzip`). When omitted the server defaults to no compression. */
|
|
1352
|
+
compression?: string
|
|
1293
1353
|
}
|
|
1294
1354
|
/** Configuration for delivering stream batches to an S3-compatible object store. */
|
|
1295
1355
|
export interface S3Attributes {
|
|
@@ -1347,109 +1407,13 @@ export interface PostgresAttributes {
|
|
|
1347
1407
|
password: string
|
|
1348
1408
|
/** Destination table for inserted rows. */
|
|
1349
1409
|
tableName: string
|
|
1350
|
-
/** Postgres SSL mode
|
|
1410
|
+
/** Postgres SSL mode. The Quicknode API accepts only `disable` or `require`. */
|
|
1351
1411
|
sslmode: string
|
|
1352
1412
|
/** Maximum number of retry attempts for a failed write. */
|
|
1353
1413
|
maxRetry: number
|
|
1354
1414
|
/** Seconds to wait between retry attempts. */
|
|
1355
1415
|
retryIntervalSec: number
|
|
1356
1416
|
}
|
|
1357
|
-
/** Configuration for delivering stream batches to a MySQL database. */
|
|
1358
|
-
export interface MysqlAttributes {
|
|
1359
|
-
/** Database host. */
|
|
1360
|
-
host: string
|
|
1361
|
-
/** Database port. */
|
|
1362
|
-
port: number
|
|
1363
|
-
/** Database name. */
|
|
1364
|
-
database: string
|
|
1365
|
-
/** Username used to authenticate. */
|
|
1366
|
-
username: string
|
|
1367
|
-
/** Password used to authenticate. */
|
|
1368
|
-
password: string
|
|
1369
|
-
/** Destination table for inserted rows. */
|
|
1370
|
-
tableName: string
|
|
1371
|
-
/** Maximum number of retry attempts for a failed write. */
|
|
1372
|
-
maxRetry: number
|
|
1373
|
-
/** Seconds to wait between retry attempts. */
|
|
1374
|
-
retryIntervalSec: number
|
|
1375
|
-
}
|
|
1376
|
-
/** Configuration for delivering stream batches to a MongoDB database. */
|
|
1377
|
-
export interface MongoAttributes {
|
|
1378
|
-
/** Database host (connection string or hostname). */
|
|
1379
|
-
host: string
|
|
1380
|
-
/** Database name. */
|
|
1381
|
-
database: string
|
|
1382
|
-
/** Username used to authenticate. */
|
|
1383
|
-
username: string
|
|
1384
|
-
/** Password used to authenticate. */
|
|
1385
|
-
password: string
|
|
1386
|
-
/** Destination collection for inserted documents. */
|
|
1387
|
-
collectionName: string
|
|
1388
|
-
/** Maximum number of retry attempts for a failed write. */
|
|
1389
|
-
maxRetry: number
|
|
1390
|
-
/** Seconds to wait between retry attempts. */
|
|
1391
|
-
retryIntervalSec: number
|
|
1392
|
-
}
|
|
1393
|
-
/** Configuration for delivering stream batches to a ClickHouse cluster. */
|
|
1394
|
-
export interface ClickhouseAttributes {
|
|
1395
|
-
/** Comma-separated list of ClickHouse hosts. */
|
|
1396
|
-
hosts: string
|
|
1397
|
-
/** Database name. */
|
|
1398
|
-
database: string
|
|
1399
|
-
/** Username used to authenticate. */
|
|
1400
|
-
username: string
|
|
1401
|
-
/** Password used to authenticate. */
|
|
1402
|
-
password: string
|
|
1403
|
-
/** Destination table for inserted rows. */
|
|
1404
|
-
tableName: string
|
|
1405
|
-
/** Default table engine options applied when a table is created. */
|
|
1406
|
-
defaultTableEngineOpts: string
|
|
1407
|
-
/** Default index granularity for created tables. */
|
|
1408
|
-
defaultGranularity: number
|
|
1409
|
-
/** Default compression codec for created tables. */
|
|
1410
|
-
defaultCompression: string
|
|
1411
|
-
/** Default secondary index type for created tables. */
|
|
1412
|
-
defaultIndexType: string
|
|
1413
|
-
/** Maximum number of retry attempts for a failed write. */
|
|
1414
|
-
maxRetry: number
|
|
1415
|
-
/** Seconds to wait between retry attempts. */
|
|
1416
|
-
retryIntervalSec: number
|
|
1417
|
-
/** Disable datetime precision for older ClickHouse versions that don't support it. */
|
|
1418
|
-
disableDatetimePrecision?: boolean
|
|
1419
|
-
/** Enable when the target ClickHouse server does not support `RENAME COLUMN`. */
|
|
1420
|
-
dontSupportRenameColumn?: boolean
|
|
1421
|
-
/** Enable when the target ClickHouse server does not support empty default values. */
|
|
1422
|
-
dontSupportEmptyDefaultValue?: boolean
|
|
1423
|
-
/** Skip writing version metadata during initialization. */
|
|
1424
|
-
skipInitializeWithVersion?: boolean
|
|
1425
|
-
}
|
|
1426
|
-
/** Configuration for delivering stream batches to a Snowflake data warehouse. */
|
|
1427
|
-
export interface SnowflakeAttributes {
|
|
1428
|
-
/** Snowflake account identifier. */
|
|
1429
|
-
account: string
|
|
1430
|
-
/** Snowflake host. */
|
|
1431
|
-
host: string
|
|
1432
|
-
/** Snowflake port. */
|
|
1433
|
-
port: number
|
|
1434
|
-
/** Connection protocol (e.g. `https`). */
|
|
1435
|
-
protocol: string
|
|
1436
|
-
/** Database name. */
|
|
1437
|
-
database: string
|
|
1438
|
-
/** Schema within the database. */
|
|
1439
|
-
schema: string
|
|
1440
|
-
/** Warehouse used to run inserts. */
|
|
1441
|
-
warehouse: string
|
|
1442
|
-
/** Username used to authenticate. */
|
|
1443
|
-
username: string
|
|
1444
|
-
/** Password used to authenticate. */
|
|
1445
|
-
password: string
|
|
1446
|
-
/** Maximum number of retry attempts for a failed write. */
|
|
1447
|
-
maxRetry: number
|
|
1448
|
-
/** Seconds to wait between retry attempts. */
|
|
1449
|
-
retryIntervalSec: number
|
|
1450
|
-
/** Optional destination table for inserted rows. */
|
|
1451
|
-
tableName?: string
|
|
1452
|
-
}
|
|
1453
1417
|
/** Configuration for delivering stream batches to a Kafka topic. */
|
|
1454
1418
|
export interface KafkaAttributes {
|
|
1455
1419
|
/** Comma-separated list of Kafka broker addresses (host:port). */
|
|
@@ -1462,8 +1426,8 @@ export interface KafkaAttributes {
|
|
|
1462
1426
|
batchSize: number
|
|
1463
1427
|
/** Milliseconds the producer waits to batch additional messages. */
|
|
1464
1428
|
lingerMs: number
|
|
1465
|
-
/** Maximum
|
|
1466
|
-
|
|
1429
|
+
/** Maximum size in bytes of a single Kafka message (`max_message_bytes`). */
|
|
1430
|
+
maxMessageBytes: number
|
|
1467
1431
|
/** Request timeout in seconds. */
|
|
1468
1432
|
timeoutSec: number
|
|
1469
1433
|
/** Maximum number of retry attempts for a failed produce. */
|
|
@@ -1479,27 +1443,6 @@ export interface KafkaAttributes {
|
|
|
1479
1443
|
/** Optional SASL mechanism (e.g. `PLAIN`, `SCRAM-SHA-256`). */
|
|
1480
1444
|
mechanisms?: string
|
|
1481
1445
|
}
|
|
1482
|
-
/** Configuration for delivering stream batches to a Redis instance. */
|
|
1483
|
-
export interface RedisAttributes {
|
|
1484
|
-
/** Redis host. */
|
|
1485
|
-
host: string
|
|
1486
|
-
/** Redis port. */
|
|
1487
|
-
port: number
|
|
1488
|
-
/** Redis logical database index. */
|
|
1489
|
-
database: number
|
|
1490
|
-
/** Username used to authenticate. */
|
|
1491
|
-
username: string
|
|
1492
|
-
/** Password used to authenticate. */
|
|
1493
|
-
password: string
|
|
1494
|
-
/** Redis key that receives written payloads. */
|
|
1495
|
-
keyName: string
|
|
1496
|
-
/** Maximum number of retry attempts for a failed write. */
|
|
1497
|
-
maxRetry: number
|
|
1498
|
-
/** Seconds to wait between retry attempts. */
|
|
1499
|
-
retryIntervalSec: number
|
|
1500
|
-
/** Whether to connect over TLS. */
|
|
1501
|
-
tls?: boolean
|
|
1502
|
-
}
|
|
1503
1446
|
/**
|
|
1504
1447
|
* Links a stream's filter to an address book so JSON paths resolve against its
|
|
1505
1448
|
* managed address set.
|
|
@@ -1542,8 +1485,8 @@ export interface TestFilterParams {
|
|
|
1542
1485
|
dataset: StreamDataset
|
|
1543
1486
|
/** Specific block number to feed into the filter for the test. */
|
|
1544
1487
|
block: string
|
|
1545
|
-
/** Base64-encoded filter function to evaluate. */
|
|
1546
|
-
filterFunction
|
|
1488
|
+
/** Base64-encoded filter function to evaluate. Required by the API. To inspect raw block data with no transformation, supply a base64-encoded identity function such as `function main(d){return d;}`. */
|
|
1489
|
+
filterFunction: string
|
|
1547
1490
|
/** Language the filter function is written in. */
|
|
1548
1491
|
filterLanguage?: FilterLanguage
|
|
1549
1492
|
/** Address book linked to the filter, if any. */
|
|
@@ -1721,9 +1664,9 @@ export interface CreateStreamParamsNode {
|
|
|
1721
1664
|
startRange: number
|
|
1722
1665
|
endRange: number
|
|
1723
1666
|
destinationAttributes: any
|
|
1724
|
-
plan
|
|
1725
|
-
thresholdFetchBuffer
|
|
1726
|
-
datasetBatchSize
|
|
1667
|
+
plan?: string
|
|
1668
|
+
thresholdFetchBuffer?: number
|
|
1669
|
+
datasetBatchSize: number
|
|
1727
1670
|
maxBatchSize?: number
|
|
1728
1671
|
maxBufferRangeSize?: number
|
|
1729
1672
|
maxBufferProcessingWorkers?: number
|
|
@@ -1737,7 +1680,7 @@ export interface CreateStreamParamsNode {
|
|
|
1737
1680
|
notificationEmail?: string
|
|
1738
1681
|
chargeMinCap?: number
|
|
1739
1682
|
fixBlockReorgs?: number
|
|
1740
|
-
elasticBatchEnabled
|
|
1683
|
+
elasticBatchEnabled: boolean
|
|
1741
1684
|
extraDestinations?: Array<any>
|
|
1742
1685
|
}
|
|
1743
1686
|
export interface UpdateStreamParamsNode {
|
|
@@ -2004,11 +1947,32 @@ export declare class AdminApiClient {
|
|
|
2004
1947
|
/** Removes a method rate limit from an endpoint by method rate limit id. */
|
|
2005
1948
|
deleteMethodRateLimit(id: string, methodRateLimitId: string): Promise<void>
|
|
2006
1949
|
/**
|
|
2007
|
-
*
|
|
2008
|
-
* (requests per second), `rpm` (requests per minute), and `rpd`
|
|
2009
|
-
* per day).
|
|
1950
|
+
* Partial update of the endpoint-level rate-limit overrides. Accepts
|
|
1951
|
+
* `rps` (requests per second), `rpm` (requests per minute), and `rpd`
|
|
1952
|
+
* (requests per day). Only buckets included are modified — omitted
|
|
1953
|
+
* buckets are left unchanged. Values are capped by the account's plan
|
|
1954
|
+
* tier.
|
|
2010
1955
|
*/
|
|
2011
1956
|
updateRateLimits(id: string, params: UpdateRateLimitsRequest): Promise<void>
|
|
1957
|
+
/**
|
|
1958
|
+
* Returns the endpoint-level rate limits currently enforced, with each
|
|
1959
|
+
* row identifying its bucket (`rps`/`rpm`/`rpd`), value, and source
|
|
1960
|
+
* (`plan_default` or `user_override`). User-set overrides expose an
|
|
1961
|
+
* `overrideId` that can be passed to `deleteRateLimitOverride`.
|
|
1962
|
+
*/
|
|
1963
|
+
getRateLimits(id: string): Promise<GetRateLimitsResponse>
|
|
1964
|
+
/**
|
|
1965
|
+
* Deletes a user-set rate-limit override by its UUID. Plan defaults are
|
|
1966
|
+
* not deletable.
|
|
1967
|
+
*/
|
|
1968
|
+
deleteRateLimitOverride(id: string, overrideId: string): Promise<void>
|
|
1969
|
+
/**
|
|
1970
|
+
* Returns the HTTP and WebSocket URLs for the endpoint without fetching
|
|
1971
|
+
* the full endpoint record. For multichain endpoints, `multichainUrls`
|
|
1972
|
+
* is a per-network mapping of additional URLs; for single-chain endpoints
|
|
1973
|
+
* it is `null`.
|
|
1974
|
+
*/
|
|
1975
|
+
getEndpointUrls(id: string): Promise<GetEndpointUrlsResponse>
|
|
2012
1976
|
/**
|
|
2013
1977
|
* Returns time-series metrics for a specific endpoint. Requires a
|
|
2014
1978
|
* `period` (`hour`, `day`, `week`, or `month`) and a metric type such as
|
package/index.darwin-arm64.node
CHANGED
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/index.linux-x64-gnu.node
CHANGED
|
Binary file
|
|
Binary file
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@quicknode/sdk",
|
|
3
|
-
"version": "3.1.0-alpha.
|
|
3
|
+
"version": "3.1.0-alpha.17",
|
|
4
4
|
"description": "Quicknode SDK",
|
|
5
5
|
"main": "sdk.js",
|
|
6
6
|
"types": "sdk.d.ts",
|
|
@@ -46,10 +46,10 @@
|
|
|
46
46
|
},
|
|
47
47
|
"license": "MIT",
|
|
48
48
|
"optionalDependencies": {
|
|
49
|
-
"@quicknode/sdk-linux-x64-gnu": "3.1.0-alpha.
|
|
50
|
-
"@quicknode/sdk-linux-arm64-gnu": "3.1.0-alpha.
|
|
51
|
-
"@quicknode/sdk-linux-x64-musl": "3.1.0-alpha.
|
|
52
|
-
"@quicknode/sdk-linux-arm64-musl": "3.1.0-alpha.
|
|
53
|
-
"@quicknode/sdk-darwin-arm64": "3.1.0-alpha.
|
|
49
|
+
"@quicknode/sdk-linux-x64-gnu": "3.1.0-alpha.17",
|
|
50
|
+
"@quicknode/sdk-linux-arm64-gnu": "3.1.0-alpha.17",
|
|
51
|
+
"@quicknode/sdk-linux-x64-musl": "3.1.0-alpha.17",
|
|
52
|
+
"@quicknode/sdk-linux-arm64-musl": "3.1.0-alpha.17",
|
|
53
|
+
"@quicknode/sdk-darwin-arm64": "3.1.0-alpha.17"
|
|
54
54
|
}
|
|
55
55
|
}
|
package/sdk.d.ts
CHANGED
|
@@ -6,12 +6,7 @@ import {
|
|
|
6
6
|
S3Attributes,
|
|
7
7
|
AzureAttributes,
|
|
8
8
|
PostgresAttributes,
|
|
9
|
-
MysqlAttributes,
|
|
10
|
-
MongoAttributes,
|
|
11
|
-
ClickhouseAttributes,
|
|
12
|
-
SnowflakeAttributes,
|
|
13
9
|
KafkaAttributes,
|
|
14
|
-
RedisAttributes,
|
|
15
10
|
WebhookTemplateId,
|
|
16
11
|
EvmWalletFilterTemplate,
|
|
17
12
|
EvmContractEventsTemplate,
|
|
@@ -32,12 +27,7 @@ export type StreamDestinationAttributesInput =
|
|
|
32
27
|
| { destination: "s3"; attributes: S3Attributes }
|
|
33
28
|
| { destination: "azure"; attributes: AzureAttributes }
|
|
34
29
|
| { destination: "postgres"; attributes: PostgresAttributes }
|
|
35
|
-
| { destination: "
|
|
36
|
-
| { destination: "mongo"; attributes: MongoAttributes }
|
|
37
|
-
| { destination: "clickhouse"; attributes: ClickhouseAttributes }
|
|
38
|
-
| { destination: "snowflake"; attributes: SnowflakeAttributes }
|
|
39
|
-
| { destination: "kafka"; attributes: KafkaAttributes }
|
|
40
|
-
| { destination: "redis"; attributes: RedisAttributes };
|
|
30
|
+
| { destination: "kafka"; attributes: KafkaAttributes };
|
|
41
31
|
|
|
42
32
|
// Stream destination attributes (response). Mirrors the input shape so a
|
|
43
33
|
// response can be round-tripped back into an update call without renaming.
|
|
@@ -117,12 +107,7 @@ export type {
|
|
|
117
107
|
S3Attributes,
|
|
118
108
|
AzureAttributes,
|
|
119
109
|
PostgresAttributes,
|
|
120
|
-
MysqlAttributes,
|
|
121
|
-
MongoAttributes,
|
|
122
|
-
ClickhouseAttributes,
|
|
123
|
-
SnowflakeAttributes,
|
|
124
110
|
KafkaAttributes,
|
|
125
|
-
RedisAttributes,
|
|
126
111
|
AddressBookConfig,
|
|
127
112
|
StreamsApiClient,
|
|
128
113
|
// billing
|
|
@@ -153,6 +138,13 @@ export type {
|
|
|
153
138
|
UpdateMethodRateLimitResponse,
|
|
154
139
|
RateLimitSettings,
|
|
155
140
|
UpdateRateLimitsRequest,
|
|
141
|
+
RateLimitEntry,
|
|
142
|
+
GetRateLimitsData,
|
|
143
|
+
GetRateLimitsResponse,
|
|
144
|
+
// endpoint URLs
|
|
145
|
+
EndpointUrl,
|
|
146
|
+
GetEndpointUrlsData,
|
|
147
|
+
GetEndpointUrlsResponse,
|
|
156
148
|
// security options
|
|
157
149
|
SecurityOption,
|
|
158
150
|
GetSecurityOptionsResponse,
|