@secondlayer/sdk 6.0.0 → 6.2.0

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/dist/index.d.ts CHANGED
@@ -105,6 +105,175 @@ declare class Subgraphs extends BaseClient {
105
105
  private createTableClient;
106
106
  }
107
107
  import { InferSubgraphClient as InferSubgraphClient2 } from "@secondlayer/subgraphs";
108
+ /**
109
+ * Typed client for the contract-discovery API (`GET /v1/contracts`).
110
+ *
111
+ * "Find all contracts conforming to a trait" — backed by the contract registry:
112
+ * `declared` traits parsed from Clarity source, `inferred` standards from static
113
+ * ABI shape-matching. Anonymous public read. `trait` is required; the ABI blob is
114
+ * omitted unless `include: "abi"` is passed.
115
+ */
116
+ /** Whether a trait match must be declared in source, inferred from ABI, or either. */
117
+ type ContractConformance = "declared" | "inferred" | "any";
118
+ interface ContractsListParams {
119
+ /** Required. Trait identifier to match (e.g. "sip-010", or a fully-qualified trait). */
120
+ trait: string;
121
+ /** Match source. Defaults to "any" server-side. */
122
+ conformance?: ContractConformance;
123
+ /** Set to "abi" to include the full ABI blob in each row. */
124
+ include?: "abi";
125
+ /** Page size, 1–500 (default 100 server-side). */
126
+ limit?: number;
127
+ /** Opaque cursor from a prior response's `next_cursor`. */
128
+ cursor?: string;
129
+ }
130
+ interface ContractSummary {
131
+ contract_id: string;
132
+ deployer: string;
133
+ block_height: number;
134
+ declared_traits: string[] | null;
135
+ inferred_standards: string[] | null;
136
+ abi_status: string;
137
+ /** Present only when `include: "abi"` was requested. */
138
+ abi?: unknown;
139
+ }
140
+ interface ContractsEnvelope {
141
+ contracts: ContractSummary[];
142
+ next_cursor: string | null;
143
+ }
144
+ declare class Contracts extends BaseClient {
145
+ constructor(options?: Partial<SecondLayerOptions>);
146
+ /** Find contracts conforming to `trait`. `trait` is required (server 400s without it). */
147
+ list(params: ContractsListParams): Promise<ContractsEnvelope>;
148
+ }
149
+ /**
150
+ * Typed client for the Foundation Datasets REST API (`/v1/datasets/*`).
151
+ *
152
+ * Most datasets are cursor-paginated event lists with a uniform `list`/`walk`
153
+ * surface; a few (bns names/namespaces/resolve, network-health) are
154
+ * offset/single-object/summary and get bespoke methods. Query params are typed
155
+ * per dataset; rows are `DatasetRow` (JSON) in v1 — per-dataset row interfaces
156
+ * are a fast-follow.
157
+ */
158
+ /** A dataset row — flat JSON object. Per-dataset interfaces are a follow-up. */
159
+ type DatasetRow = Record<string, unknown>;
160
+ /** Filters shared by every cursor-paginated dataset. */
161
+ interface CursorListParams {
162
+ cursor?: string;
163
+ limit?: number;
164
+ fromBlock?: number;
165
+ toBlock?: number;
166
+ }
167
+ interface CursorEnvelope {
168
+ rows: DatasetRow[];
169
+ next_cursor: string | null;
170
+ tip?: {
171
+ block_height: number
172
+ };
173
+ }
174
+ type RangeFilters = CursorListParams;
175
+ type StxTransfersParams = RangeFilters & {
176
+ sender?: string
177
+ recipient?: string
178
+ };
179
+ type SbtcEventsParams = RangeFilters & {
180
+ topic?: string
181
+ address?: string
182
+ };
183
+ type SbtcTokenEventsParams = RangeFilters & {
184
+ eventType?: string
185
+ sender?: string
186
+ recipient?: string
187
+ };
188
+ type Pox4CallsParams = RangeFilters & {
189
+ functionName?: string
190
+ stacker?: string
191
+ delegateTo?: string
192
+ signerKey?: string
193
+ rewardCycle?: number
194
+ /** Any-role: matches caller OR stacker OR delegate_to. */
195
+ address?: string
196
+ };
197
+ type BurnchainRewardsParams = RangeFilters & {
198
+ /** Filter to one Bitcoin reward address. */
199
+ recipient?: string
200
+ };
201
+ type BurnchainRewardSlotsParams = RangeFilters & {
202
+ /** Filter to one reward-set Bitcoin address. */
203
+ holder?: string
204
+ };
205
+ type BnsEventsParams = RangeFilters & {
206
+ topic?: string
207
+ namespace?: string
208
+ name?: string
209
+ owner?: string
210
+ };
211
+ type BnsNamespaceEventsParams = RangeFilters & {
212
+ status?: string
213
+ namespace?: string
214
+ };
215
+ type BnsMarketplaceEventsParams = RangeFilters & {
216
+ action?: string
217
+ bnsId?: string
218
+ };
219
+ type CursorDataset<P> = {
220
+ list: (params?: P) => Promise<CursorEnvelope>
221
+ walk: (params?: P & {
222
+ batchSize?: number
223
+ signal?: AbortSignal
224
+ }) => AsyncIterable<DatasetRow>
225
+ };
226
+ /** Cursor-paginated dataset slugs → REST path + envelope row key. */
227
+ declare const CURSOR_SLUGS: Record<string, {
228
+ path: string
229
+ rowKey: string
230
+ }>;
231
+ declare class Datasets extends BaseClient {
232
+ constructor(options?: Partial<SecondLayerOptions>);
233
+ /** Dataset catalog + freshness (the discovery endpoint). */
234
+ listDatasets(): Promise<unknown>;
235
+ /**
236
+ * Generic cursor query by slug — used by the CLI. Params are passed through as
237
+ * REST query keys (snake_case), so callers can use the documented filter names
238
+ * directly. Throws for non-cursor (bespoke) datasets.
239
+ */
240
+ query(slug: string, params?: Record<string, unknown>): Promise<CursorEnvelope>;
241
+ readonly stxTransfers: CursorDataset<StxTransfersParams>;
242
+ readonly sbtcEvents: CursorDataset<SbtcEventsParams>;
243
+ readonly sbtcTokenEvents: CursorDataset<SbtcTokenEventsParams>;
244
+ readonly pox4Calls: CursorDataset<Pox4CallsParams>;
245
+ readonly burnchainRewards: CursorDataset<BurnchainRewardsParams>;
246
+ readonly burnchainRewardSlots: CursorDataset<BurnchainRewardSlotsParams>;
247
+ readonly bnsEvents: CursorDataset<BnsEventsParams>;
248
+ readonly bnsNamespaceEvents: CursorDataset<BnsNamespaceEventsParams>;
249
+ readonly bnsMarketplaceEvents: CursorDataset<BnsMarketplaceEventsParams>;
250
+ /** BNS names — offset-paginated. */
251
+ bnsNames(params?: {
252
+ namespace?: string
253
+ owner?: string
254
+ limit?: number
255
+ offset?: number
256
+ }): Promise<{
257
+ names: DatasetRow[]
258
+ }>;
259
+ /** All BNS namespaces (no pagination). */
260
+ bnsNamespaces(): Promise<{
261
+ namespaces: DatasetRow[]
262
+ }>;
263
+ /** Resolve a fully-qualified BNS name → single record. */
264
+ bnsResolve(fqn: string): Promise<{
265
+ name: DatasetRow | null
266
+ }>;
267
+ /** Network health summary. */
268
+ networkHealth(): Promise<{
269
+ summary: DatasetRow
270
+ }>;
271
+ private get;
272
+ /** Map camelCase filter fields to snake_case query keys (dropping pagination
273
+ * controls) and build the canonical query suffix. */
274
+ private paramsToQuery;
275
+ private cursorDataset;
276
+ }
108
277
  type IndexTip = {
109
278
  block_height: number
110
279
  lag_seconds: number
@@ -417,6 +586,11 @@ type PrintPayload = {
417
586
  * parent `StreamsEvent`. */
418
587
  type StreamsEventPayload = StxTransferPayload | StxMintPayload | StxBurnPayload | StxLockPayload | FtTransferPayload | FtMintPayload | FtBurnPayload | NftTransferPayload | NftMintPayload | NftBurnPayload | PrintPayload;
419
588
  type StreamsEventBase = {
589
+ /**
590
+ * Globally unique, monotonic position of this event (`<block>:<index>`). Use
591
+ * it as the primary key of your projection rows — replaying a batch then
592
+ * upserts cleanly. Don't synthesize your own id from `tx_id`/`event_index`.
593
+ */
420
594
  cursor: string
421
595
  block_height: number
422
596
  block_hash: string
@@ -513,9 +687,32 @@ type StreamsEventsStreamParams = {
513
687
  maxEmptyPolls?: number
514
688
  signal?: AbortSignal
515
689
  };
690
+ /**
691
+ * The checkpoint the SDK computes for a batch. Persist `cursor` inside the same
692
+ * transaction as your projection writes, then resume from it via `fromCursor`.
693
+ * It is the position to advance to: `next_cursor` normally, or the last
694
+ * finalized event when `finalizedOnly` is set.
695
+ */
696
+ type StreamsBatchContext = {
697
+ cursor: string | null
698
+ };
699
+ /**
700
+ * The checkpoint for a reorg rollback. Persist `cursor` (the rewind position)
701
+ * inside the same transaction as your rollback so the two commit atomically.
702
+ */
703
+ type StreamsReorgContext = {
704
+ cursor: string
705
+ };
516
706
  type StreamsEventsConsumeParams = {
517
707
  fromCursor?: string | null
518
708
  mode?: "tail" | "bounded"
709
+ /**
710
+ * Emit only finalized (immutable) events and never surface reorgs. The SDK
711
+ * checkpoints at the last finalized event and re-reads the unfinalized tail
712
+ * until it settles. Trades finality lag for zero reorg handling; `onReorg` is
713
+ * ignored.
714
+ */
715
+ finalizedOnly?: boolean
519
716
  types?: readonly StreamsEventType[]
520
717
  notTypes?: readonly StreamsEventType[]
521
718
  contractId?: StreamsFilterValue
@@ -523,7 +720,20 @@ type StreamsEventsConsumeParams = {
523
720
  recipient?: StreamsFilterValue
524
721
  assetIdentifier?: string
525
722
  batchSize?: number
526
- onBatch: (events: StreamsEvent[], envelope: StreamsEventsEnvelope) => Promise<string | null | undefined> | string | null | undefined
723
+ /**
724
+ * Apply a page of canonical events. Persist `ctx.cursor` in the same
725
+ * transaction as your writes. Returning a cursor overrides `ctx.cursor` as
726
+ * the resume point (advanced manual control); returning nothing uses it.
727
+ */
728
+ onBatch: (events: StreamsEvent[], envelope: StreamsEventsEnvelope, ctx: StreamsBatchContext) => void | string | null | undefined | Promise<void> | Promise<string | null | undefined>
729
+ /**
730
+ * Roll your projection back to `reorg.fork_point_height`, persisting
731
+ * `ctx.cursor` in the same transaction. Called once per *new* reorg
732
+ * (deduped in-memory, fork-ascending) before the SDK rewinds and re-reads the
733
+ * now-canonical events. Omit it to ignore reorgs (events stay canonical, but
734
+ * stale rows from an orphaned fork are left in place).
735
+ */
736
+ onReorg?: (reorg: StreamsReorg, ctx: StreamsReorgContext) => Promise<void> | void
527
737
  emptyBackoffMs?: number
528
738
  maxPages?: number
529
739
  maxEmptyPolls?: number
@@ -665,6 +875,8 @@ declare class Subscriptions extends BaseClient {
665
875
  declare class SecondLayer extends BaseClient {
666
876
  readonly streams: StreamsClient;
667
877
  readonly index: Index;
878
+ readonly datasets: Datasets;
879
+ readonly contracts: Contracts;
668
880
  readonly subgraphs: Subgraphs;
669
881
  readonly subscriptions: Subscriptions;
670
882
  constructor(options?: Partial<SecondLayerOptions>);
@@ -979,133 +1191,26 @@ type DecodedEventColumns = {
979
1191
  /** JSONB overflow for non-flat types (e.g. print's decoded value). */
980
1192
  payload?: unknown
981
1193
  };
982
- type DecodedEventRow = DecodedFtTransfer | DecodedNftTransfer | DecodedStxTransfer | DecodedStxMint | DecodedStxBurn | DecodedStxLock | DecodedFtMint | DecodedFtBurn | DecodedNftMint | DecodedNftBurn | DecodedPrint;
983
1194
  /**
984
- * Typed client for the Foundation Datasets REST API (`/v1/datasets/*`).
985
- *
986
- * Most datasets are cursor-paginated event lists with a uniform `list`/`walk`
987
- * surface; a few (bns names/namespaces/resolve, network-health) are
988
- * offset/single-object/summary and get bespoke methods. Query params are typed
989
- * per dataset; rows are `DatasetRow` (JSON) in v1 — per-dataset row interfaces
990
- * are a fast-follow.
1195
+ * Helpers for Streams cursors. A cursor is the opaque `<block>:<index>` string
1196
+ * that marks a position in the event stream; treat the format as an
1197
+ * implementation detail and go through these helpers instead of string-building
1198
+ * it at call sites.
991
1199
  */
992
- /** A dataset row — flat JSON object. Per-dataset interfaces are a follow-up. */
993
- type DatasetRow = Record<string, unknown>;
994
- /** Filters shared by every cursor-paginated dataset. */
995
- interface CursorListParams {
996
- cursor?: string;
997
- limit?: number;
998
- fromBlock?: number;
999
- toBlock?: number;
1000
- }
1001
- interface CursorEnvelope {
1002
- rows: DatasetRow[];
1003
- next_cursor: string | null;
1004
- tip?: {
1005
- block_height: number
1006
- };
1007
- }
1008
- type RangeFilters = CursorListParams;
1009
- type StxTransfersParams = RangeFilters & {
1010
- sender?: string
1011
- recipient?: string
1012
- };
1013
- type SbtcEventsParams = RangeFilters & {
1014
- topic?: string
1015
- address?: string
1016
- };
1017
- type SbtcTokenEventsParams = RangeFilters & {
1018
- eventType?: string
1019
- sender?: string
1020
- recipient?: string
1021
- };
1022
- type Pox4CallsParams = RangeFilters & {
1023
- functionName?: string
1024
- stacker?: string
1025
- delegateTo?: string
1026
- signerKey?: string
1027
- rewardCycle?: number
1028
- /** Any-role: matches caller OR stacker OR delegate_to. */
1029
- address?: string
1030
- };
1031
- type BurnchainRewardsParams = RangeFilters & {
1032
- /** Filter to one Bitcoin reward address. */
1033
- recipient?: string
1034
- };
1035
- type BurnchainRewardSlotsParams = RangeFilters & {
1036
- /** Filter to one reward-set Bitcoin address. */
1037
- holder?: string
1038
- };
1039
- type BnsEventsParams = RangeFilters & {
1040
- topic?: string
1041
- namespace?: string
1042
- name?: string
1043
- owner?: string
1044
- };
1045
- type BnsNamespaceEventsParams = RangeFilters & {
1046
- status?: string
1047
- namespace?: string
1048
- };
1049
- type BnsMarketplaceEventsParams = RangeFilters & {
1050
- action?: string
1051
- bnsId?: string
1052
- };
1053
- type CursorDataset<P> = {
1054
- list: (params?: P) => Promise<CursorEnvelope>
1055
- walk: (params?: P & {
1056
- batchSize?: number
1057
- signal?: AbortSignal
1058
- }) => AsyncIterable<DatasetRow>
1059
- };
1060
- /** Cursor-paginated dataset slugs → REST path + envelope row key. */
1061
- declare const CURSOR_SLUGS: Record<string, {
1062
- path: string
1063
- rowKey: string
1064
- }>;
1065
- declare class Datasets extends BaseClient {
1066
- constructor(options?: Partial<SecondLayerOptions>);
1067
- /** Dataset catalog + freshness (the discovery endpoint). */
1068
- listDatasets(): Promise<unknown>;
1200
+ declare const Cursor: {
1069
1201
  /**
1070
- * Generic cursor query by slug used by the CLI. Params are passed through as
1071
- * REST query keys (snake_case), so callers can use the documented filter names
1072
- * directly. Throws for non-cursor (bespoke) datasets.
1202
+ * Cursor at the foot of `height`. Resuming from it re-reads every event
1203
+ * strictly above block `height` (cursors are exclusive), so this is the
1204
+ * position to rewind to after a reorg whose fork point is `height`.
1073
1205
  */
1074
- query(slug: string, params?: Record<string, unknown>): Promise<CursorEnvelope>;
1075
- readonly stxTransfers: CursorDataset<StxTransfersParams>;
1076
- readonly sbtcEvents: CursorDataset<SbtcEventsParams>;
1077
- readonly sbtcTokenEvents: CursorDataset<SbtcTokenEventsParams>;
1078
- readonly pox4Calls: CursorDataset<Pox4CallsParams>;
1079
- readonly burnchainRewards: CursorDataset<BurnchainRewardsParams>;
1080
- readonly burnchainRewardSlots: CursorDataset<BurnchainRewardSlotsParams>;
1081
- readonly bnsEvents: CursorDataset<BnsEventsParams>;
1082
- readonly bnsNamespaceEvents: CursorDataset<BnsNamespaceEventsParams>;
1083
- readonly bnsMarketplaceEvents: CursorDataset<BnsMarketplaceEventsParams>;
1084
- /** BNS names — offset-paginated. */
1085
- bnsNames(params?: {
1086
- namespace?: string
1087
- owner?: string
1088
- limit?: number
1089
- offset?: number
1090
- }): Promise<{
1091
- names: DatasetRow[]
1092
- }>;
1093
- /** All BNS namespaces (no pagination). */
1094
- bnsNamespaces(): Promise<{
1095
- namespaces: DatasetRow[]
1096
- }>;
1097
- /** Resolve a fully-qualified BNS name → single record. */
1098
- bnsResolve(fqn: string): Promise<{
1099
- name: DatasetRow | null
1100
- }>;
1101
- /** Network health summary. */
1102
- networkHealth(): Promise<{
1103
- summary: DatasetRow
1104
- }>;
1105
- private get;
1106
- private buildParams;
1107
- private cursorDataset;
1108
- }
1206
+ atHeight(height: number): string
1207
+ /** Parse a `<block>:<index>` cursor. Throws `ValidationError` if malformed. */
1208
+ parse(cursor: string): {
1209
+ blockHeight: number
1210
+ eventIndex: number
1211
+ }
1212
+ };
1213
+ type DecodedEventRow = DecodedFtTransfer | DecodedNftTransfer | DecodedStxTransfer | DecodedStxMint | DecodedStxBurn | DecodedStxLock | DecodedFtMint | DecodedFtBurn | DecodedNftMint | DecodedNftBurn | DecodedPrint;
1109
1214
  import { SubgraphAgentSchema as SubgraphAgentSchema3, SubgraphSpecFormat as SubgraphSpecFormat2, SubgraphSpecOptions as SubgraphSpecOptions3 } from "@secondlayer/shared/subgraphs/spec";
1110
1215
  /**
1111
1216
  * Error thrown by {@link SecondLayer} when an API request fails.
@@ -1224,4 +1329,4 @@ declare function toJsonSafe(value: unknown): unknown;
1224
1329
  /** Decode a hex-encoded Clarity value to JSON-safe JS (uints as strings,
1225
1330
  * buffers as `0x…` hex, tuples as objects). Returns the input hex on failure. */
1226
1331
  declare function decodeClarityValue(hex: string): unknown;
1227
- export { verifyWebhookSignature, toJsonSafe, isStxTransfer, isStxMint, isStxLock, isStxBurn, isPrint, isNftTransfer, isNftMint, isNftBurn, isFtTransfer, isFtMint, isFtBurn, getSubgraph, decodeStxTransfer, decodeStxMint, decodeStxLock, decodeStxBurn, decodePrint, decodeNftTransfer, decodeNftMint, decodeNftBurn, decodeFtTransfer, decodeFtMint, decodeFtBurn, decodeClarityValue, createStreamsClient, VersionConflictError, ValidationError, UpdateSubscriptionRequest2 as UpdateSubscriptionRequest, Subscriptions, SubscriptionSummary2 as SubscriptionSummary, SubscriptionStatus, SubscriptionRuntime, SubscriptionFormat, SubscriptionDetail2 as SubscriptionDetail, Subgraphs, SubgraphSpecOptions3 as SubgraphSpecOptions, SubgraphSpecFormat2 as SubgraphSpecFormat, SubgraphAgentSchema3 as SubgraphAgentSchema, StreamsTip, StreamsSignatureError, StreamsServerError, StreamsReorgsListParams, StreamsReorgsListEnvelope, StreamsReorg, StreamsEventsStreamParams, StreamsEventsListParams, StreamsEventsListEnvelope, StreamsEventsEnvelope, StreamsEventsConsumeResult, StreamsEventsConsumeParams, StreamsEventType, StreamsEventPayload, StreamsEvent, StreamsDumpsManifest, StreamsDumps, StreamsDumpFile, StreamsClient, StreamsCanonicalBlock, SecondLayerOptions, SecondLayer, RotateSecretResponse2 as RotateSecretResponse, ReplayResult2 as ReplayResult, RateLimitError, Pox4CallsParams, NftTransfersWalkParams, NftTransfersListParams, NftTransfersEnvelope, NftTransferPayload, NftTransferEvent, NftTransfer, IndexTip, IndexEventType, IndexEvent, IndexContractCall, Index, FtTransfersWalkParams, FtTransfersListParams, FtTransfersEnvelope, FtTransferPayload, FtTransferEvent, FtTransfer, FetchLike2 as FetchLike, EventsWalkParams, EventsListParams, EventsEnvelope, DeliveryRow2 as DeliveryRow, DecodedStxTransferPayload, DecodedStxTransfer, DecodedStxMintPayload, DecodedStxMint, DecodedStxLockPayload, DecodedStxLock, DecodedStxBurnPayload, DecodedStxBurn, DecodedPrintValue, DecodedPrintPayload, DecodedPrint, DecodedNftTransferPayload, DecodedNftTransfer, DecodedNftMintPayload, DecodedNftMint, DecodedNftBurnPayload, DecodedNftBurn, DecodedFtTransferPayload, DecodedFtTransfer, DecodedFtMintPayload, DecodedFtMint, DecodedFtBurnPayload, DecodedFtBurn, DecodedEventRow, DecodedEventColumns, DeadRow2 as DeadRow, Datasets, DatasetRow, CursorListParams, CursorEnvelope, CreateSubscriptionResponse2 as CreateSubscriptionResponse, CreateSubscriptionRequest2 as CreateSubscriptionRequest, ContractCallsWalkParams, ContractCallsListParams, ContractCallsEnvelope, CURSOR_SLUGS, AuthError, ApiError };
1332
+ export { verifyWebhookSignature, toJsonSafe, isStxTransfer, isStxMint, isStxLock, isStxBurn, isPrint, isNftTransfer, isNftMint, isNftBurn, isFtTransfer, isFtMint, isFtBurn, getSubgraph, decodeStxTransfer, decodeStxMint, decodeStxLock, decodeStxBurn, decodePrint, decodeNftTransfer, decodeNftMint, decodeNftBurn, decodeFtTransfer, decodeFtMint, decodeFtBurn, decodeClarityValue, createStreamsClient, VersionConflictError, ValidationError, UpdateSubscriptionRequest2 as UpdateSubscriptionRequest, Subscriptions, SubscriptionSummary2 as SubscriptionSummary, SubscriptionStatus, SubscriptionRuntime, SubscriptionFormat, SubscriptionDetail2 as SubscriptionDetail, Subgraphs, SubgraphSpecOptions3 as SubgraphSpecOptions, SubgraphSpecFormat2 as SubgraphSpecFormat, SubgraphAgentSchema3 as SubgraphAgentSchema, StreamsTip, StreamsSignatureError, StreamsServerError, StreamsReorgsListParams, StreamsReorgsListEnvelope, StreamsReorgContext, StreamsReorg, StreamsEventsStreamParams, StreamsEventsListParams, StreamsEventsListEnvelope, StreamsEventsEnvelope, StreamsEventsConsumeResult, StreamsEventsConsumeParams, StreamsEventType, StreamsEventPayload, StreamsEvent, StreamsDumpsManifest, StreamsDumps, StreamsDumpFile, StreamsClient, StreamsCanonicalBlock, StreamsBatchContext, SecondLayerOptions, SecondLayer, RotateSecretResponse2 as RotateSecretResponse, ReplayResult2 as ReplayResult, RateLimitError, Pox4CallsParams, NftTransfersWalkParams, NftTransfersListParams, NftTransfersEnvelope, NftTransferPayload, NftTransferEvent, NftTransfer, IndexTip, IndexEventType, IndexEvent, IndexContractCall, Index, FtTransfersWalkParams, FtTransfersListParams, FtTransfersEnvelope, FtTransferPayload, FtTransferEvent, FtTransfer, FetchLike2 as FetchLike, EventsWalkParams, EventsListParams, EventsEnvelope, DeliveryRow2 as DeliveryRow, DecodedStxTransferPayload, DecodedStxTransfer, DecodedStxMintPayload, DecodedStxMint, DecodedStxLockPayload, DecodedStxLock, DecodedStxBurnPayload, DecodedStxBurn, DecodedPrintValue, DecodedPrintPayload, DecodedPrint, DecodedNftTransferPayload, DecodedNftTransfer, DecodedNftMintPayload, DecodedNftMint, DecodedNftBurnPayload, DecodedNftBurn, DecodedFtTransferPayload, DecodedFtTransfer, DecodedFtMintPayload, DecodedFtMint, DecodedFtBurnPayload, DecodedFtBurn, DecodedEventRow, DecodedEventColumns, DeadRow2 as DeadRow, Datasets, DatasetRow, CursorListParams, CursorEnvelope, Cursor, CreateSubscriptionResponse2 as CreateSubscriptionResponse, CreateSubscriptionRequest2 as CreateSubscriptionRequest, ContractsListParams, ContractsEnvelope, Contracts, ContractSummary, ContractConformance, ContractCallsWalkParams, ContractCallsListParams, ContractCallsEnvelope, CURSOR_SLUGS, AuthError, ApiError };