@secondlayer/sdk 6.47.0 → 6.48.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 +1286 -1211
- package/dist/index.js +8 -1
- package/dist/index.js.map +5 -5
- package/dist/sinks/bun-sqlite.d.ts +158 -0
- package/dist/sinks/bun-sqlite.js +255 -0
- package/dist/sinks/bun-sqlite.js.map +12 -0
- package/dist/sinks/core.d.ts +195 -0
- package/dist/sinks/core.js +215 -0
- package/dist/sinks/core.js.map +11 -0
- package/dist/sinks/drizzle.d.ts +184 -0
- package/dist/sinks/drizzle.js +309 -0
- package/dist/sinks/drizzle.js.map +12 -0
- package/dist/sinks/kysely.d.ts +87 -2
- package/dist/sinks/kysely.js +91 -54
- package/dist/sinks/kysely.js.map +6 -5
- package/dist/sinks/testing.d.ts +183 -0
- package/dist/sinks/testing.js +194 -0
- package/dist/sinks/testing.js.map +10 -0
- package/dist/streams/index.d.ts +558 -482
- package/dist/streams/index.js +7 -1
- package/dist/streams/index.js.map +4 -4
- package/dist/streams/rows.d.ts +208 -208
- package/dist/streams/rows.js +1 -1
- package/dist/streams/rows.js.map +2 -2
- package/dist/subgraphs/index.d.ts +1044 -968
- package/dist/subgraphs/index.js +8 -1
- package/dist/subgraphs/index.js.map +5 -5
- package/dist/x402.d.ts +49 -49
- package/dist/x402.js +1 -1
- package/dist/x402.js.map +2 -2
- package/package.json +25 -3
package/dist/streams/rows.d.ts
CHANGED
|
@@ -3,68 +3,68 @@ import { StreamsEventType } from "@secondlayer/shared";
|
|
|
3
3
|
* object carrying that hex (`{ hex }`), or a decoded Clarity-JSON object.
|
|
4
4
|
* Decode helpers (`decodeNftTransfer`, etc.) resolve it to a concrete value. */
|
|
5
5
|
type StreamsClarityValue = string | {
|
|
6
|
-
hex: string
|
|
6
|
+
hex: string;
|
|
7
7
|
} | Record<string, unknown>;
|
|
8
8
|
type StxTransferPayload = {
|
|
9
|
-
sender: string
|
|
10
|
-
recipient: string
|
|
11
|
-
amount: string
|
|
12
|
-
memo?: string
|
|
9
|
+
sender: string;
|
|
10
|
+
recipient: string;
|
|
11
|
+
amount: string;
|
|
12
|
+
memo?: string;
|
|
13
13
|
};
|
|
14
14
|
type StxMintPayload = {
|
|
15
|
-
recipient: string
|
|
16
|
-
amount: string
|
|
15
|
+
recipient: string;
|
|
16
|
+
amount: string;
|
|
17
17
|
};
|
|
18
18
|
type StxBurnPayload = {
|
|
19
|
-
sender: string
|
|
20
|
-
amount: string
|
|
19
|
+
sender: string;
|
|
20
|
+
amount: string;
|
|
21
21
|
};
|
|
22
22
|
type StxLockPayload = {
|
|
23
|
-
locked_address: string
|
|
24
|
-
locked_amount: string
|
|
25
|
-
unlock_height: string
|
|
23
|
+
locked_address: string;
|
|
24
|
+
locked_amount: string;
|
|
25
|
+
unlock_height: string;
|
|
26
26
|
};
|
|
27
27
|
type FtTransferPayload = {
|
|
28
|
-
asset_identifier: string
|
|
29
|
-
sender: string
|
|
30
|
-
recipient: string
|
|
31
|
-
amount: string
|
|
28
|
+
asset_identifier: string;
|
|
29
|
+
sender: string;
|
|
30
|
+
recipient: string;
|
|
31
|
+
amount: string;
|
|
32
32
|
};
|
|
33
33
|
type FtMintPayload = {
|
|
34
|
-
asset_identifier: string
|
|
35
|
-
recipient: string
|
|
36
|
-
amount: string
|
|
34
|
+
asset_identifier: string;
|
|
35
|
+
recipient: string;
|
|
36
|
+
amount: string;
|
|
37
37
|
};
|
|
38
38
|
type FtBurnPayload = {
|
|
39
|
-
asset_identifier: string
|
|
40
|
-
sender: string
|
|
41
|
-
amount: string
|
|
39
|
+
asset_identifier: string;
|
|
40
|
+
sender: string;
|
|
41
|
+
amount: string;
|
|
42
42
|
};
|
|
43
43
|
type NftTransferPayload = {
|
|
44
|
-
asset_identifier: string
|
|
45
|
-
sender: string
|
|
46
|
-
recipient: string
|
|
47
|
-
value: StreamsClarityValue
|
|
44
|
+
asset_identifier: string;
|
|
45
|
+
sender: string;
|
|
46
|
+
recipient: string;
|
|
47
|
+
value: StreamsClarityValue;
|
|
48
48
|
/** Canonical serialized hex of `value`, when the stream carries it. */
|
|
49
|
-
raw_value?: string
|
|
49
|
+
raw_value?: string;
|
|
50
50
|
};
|
|
51
51
|
type NftMintPayload = {
|
|
52
|
-
asset_identifier: string
|
|
53
|
-
recipient: string
|
|
54
|
-
value: StreamsClarityValue
|
|
55
|
-
raw_value?: string
|
|
52
|
+
asset_identifier: string;
|
|
53
|
+
recipient: string;
|
|
54
|
+
value: StreamsClarityValue;
|
|
55
|
+
raw_value?: string;
|
|
56
56
|
};
|
|
57
57
|
type NftBurnPayload = {
|
|
58
|
-
asset_identifier: string
|
|
59
|
-
sender: string
|
|
60
|
-
value: StreamsClarityValue
|
|
61
|
-
raw_value?: string
|
|
58
|
+
asset_identifier: string;
|
|
59
|
+
sender: string;
|
|
60
|
+
value: StreamsClarityValue;
|
|
61
|
+
raw_value?: string;
|
|
62
62
|
};
|
|
63
63
|
type PrintPayload = {
|
|
64
|
-
contract_id?: string | null
|
|
65
|
-
topic?: string
|
|
66
|
-
value?: unknown
|
|
67
|
-
raw_value?: string
|
|
64
|
+
contract_id?: string | null;
|
|
65
|
+
topic?: string;
|
|
66
|
+
value?: unknown;
|
|
67
|
+
raw_value?: string;
|
|
68
68
|
};
|
|
69
69
|
type StreamsEventBase = {
|
|
70
70
|
/**
|
|
@@ -72,242 +72,242 @@ type StreamsEventBase = {
|
|
|
72
72
|
* it as the primary key of your projection rows — replaying a batch then
|
|
73
73
|
* upserts cleanly. Don't synthesize your own id from `tx_id`/`event_index`.
|
|
74
74
|
*/
|
|
75
|
-
cursor: string
|
|
76
|
-
block_height: number
|
|
77
|
-
block_hash: string
|
|
78
|
-
burn_block_height: number
|
|
79
|
-
tx_id: string
|
|
80
|
-
tx_index: number
|
|
81
|
-
event_index: number
|
|
82
|
-
contract_id: string | null
|
|
83
|
-
ts: string
|
|
75
|
+
cursor: string;
|
|
76
|
+
block_height: number;
|
|
77
|
+
block_hash: string;
|
|
78
|
+
burn_block_height: number;
|
|
79
|
+
tx_id: string;
|
|
80
|
+
tx_index: number;
|
|
81
|
+
event_index: number;
|
|
82
|
+
contract_id: string | null;
|
|
83
|
+
ts: string;
|
|
84
84
|
/**
|
|
85
85
|
* True when this event's block is past the finality boundary (immutable).
|
|
86
86
|
* Optional for back-compat; the API always sets it on Streams responses.
|
|
87
87
|
*/
|
|
88
|
-
finalized?: boolean
|
|
88
|
+
finalized?: boolean;
|
|
89
89
|
/**
|
|
90
90
|
* Labels whose filter group this event satisfied, present only when the
|
|
91
91
|
* request used a labelled `filters` map. The SDK dispatches on it for you
|
|
92
92
|
* (`on.<label>`), so handlers rarely read it directly.
|
|
93
93
|
*/
|
|
94
|
-
matched?: string[]
|
|
94
|
+
matched?: string[];
|
|
95
95
|
};
|
|
96
96
|
type StreamsEventOf<
|
|
97
97
|
T extends StreamsEventType,
|
|
98
98
|
P
|
|
99
99
|
> = StreamsEventBase & {
|
|
100
|
-
event_type: T
|
|
101
|
-
payload: P
|
|
100
|
+
event_type: T;
|
|
101
|
+
payload: P;
|
|
102
102
|
};
|
|
103
103
|
/** A raw Streams event. Discriminated on `event_type`, so `event.payload`
|
|
104
104
|
* narrows to the matching payload shape once the type is checked. */
|
|
105
105
|
type StreamsEvent = StreamsEventOf<"stx_transfer", StxTransferPayload> | StreamsEventOf<"stx_mint", StxMintPayload> | StreamsEventOf<"stx_burn", StxBurnPayload> | StreamsEventOf<"stx_lock", StxLockPayload> | StreamsEventOf<"ft_transfer", FtTransferPayload> | StreamsEventOf<"ft_mint", FtMintPayload> | StreamsEventOf<"ft_burn", FtBurnPayload> | StreamsEventOf<"nft_transfer", NftTransferPayload> | StreamsEventOf<"nft_mint", NftMintPayload> | StreamsEventOf<"nft_burn", NftBurnPayload> | StreamsEventOf<"print", PrintPayload>;
|
|
106
106
|
type FtTransferEvent = Extract<StreamsEvent, {
|
|
107
|
-
event_type: "ft_transfer"
|
|
107
|
+
event_type: "ft_transfer";
|
|
108
108
|
}>;
|
|
109
109
|
type DecodedFtTransferPayload = {
|
|
110
|
-
asset_identifier: string
|
|
111
|
-
contract_id: string
|
|
112
|
-
token_name: string | null
|
|
113
|
-
sender: string
|
|
114
|
-
recipient: string
|
|
115
|
-
amount: string
|
|
110
|
+
asset_identifier: string;
|
|
111
|
+
contract_id: string;
|
|
112
|
+
token_name: string | null;
|
|
113
|
+
sender: string;
|
|
114
|
+
recipient: string;
|
|
115
|
+
amount: string;
|
|
116
116
|
};
|
|
117
117
|
type DecodedFtTransfer = {
|
|
118
|
-
cursor: string
|
|
119
|
-
block_height: number
|
|
120
|
-
tx_id: string
|
|
121
|
-
tx_index: number
|
|
122
|
-
event_index: number
|
|
123
|
-
event_type: "ft_transfer"
|
|
124
|
-
decoded_payload: DecodedFtTransferPayload
|
|
125
|
-
source_cursor: string
|
|
118
|
+
cursor: string;
|
|
119
|
+
block_height: number;
|
|
120
|
+
tx_id: string;
|
|
121
|
+
tx_index: number;
|
|
122
|
+
event_index: number;
|
|
123
|
+
event_type: "ft_transfer";
|
|
124
|
+
decoded_payload: DecodedFtTransferPayload;
|
|
125
|
+
source_cursor: string;
|
|
126
126
|
};
|
|
127
127
|
declare function isFtTransfer(event: StreamsEvent): event is FtTransferEvent;
|
|
128
128
|
declare function decodeFtTransfer(event: StreamsEvent): DecodedFtTransfer;
|
|
129
129
|
type NftTransferEvent = Extract<StreamsEvent, {
|
|
130
|
-
event_type: "nft_transfer"
|
|
130
|
+
event_type: "nft_transfer";
|
|
131
131
|
}>;
|
|
132
132
|
type DecodedNftTransferPayload = {
|
|
133
|
-
asset_identifier: string
|
|
134
|
-
contract_id: string
|
|
135
|
-
token_name: string | null
|
|
136
|
-
sender: string
|
|
137
|
-
recipient: string
|
|
138
|
-
value: string
|
|
133
|
+
asset_identifier: string;
|
|
134
|
+
contract_id: string;
|
|
135
|
+
token_name: string | null;
|
|
136
|
+
sender: string;
|
|
137
|
+
recipient: string;
|
|
138
|
+
value: string;
|
|
139
139
|
};
|
|
140
140
|
type DecodedNftTransfer = {
|
|
141
|
-
cursor: string
|
|
142
|
-
block_height: number
|
|
143
|
-
tx_id: string
|
|
144
|
-
tx_index: number
|
|
145
|
-
event_index: number
|
|
146
|
-
event_type: "nft_transfer"
|
|
147
|
-
decoded_payload: DecodedNftTransferPayload
|
|
148
|
-
source_cursor: string
|
|
141
|
+
cursor: string;
|
|
142
|
+
block_height: number;
|
|
143
|
+
tx_id: string;
|
|
144
|
+
tx_index: number;
|
|
145
|
+
event_index: number;
|
|
146
|
+
event_type: "nft_transfer";
|
|
147
|
+
decoded_payload: DecodedNftTransferPayload;
|
|
148
|
+
source_cursor: string;
|
|
149
149
|
};
|
|
150
150
|
declare function isNftTransfer(event: StreamsEvent): event is NftTransferEvent;
|
|
151
151
|
declare function decodeNftTransfer(event: StreamsEvent): DecodedNftTransfer;
|
|
152
152
|
type DecodedStxTransferPayload = {
|
|
153
|
-
sender: string
|
|
154
|
-
recipient: string
|
|
155
|
-
amount: string
|
|
156
|
-
memo: string | null
|
|
153
|
+
sender: string;
|
|
154
|
+
recipient: string;
|
|
155
|
+
amount: string;
|
|
156
|
+
memo: string | null;
|
|
157
157
|
};
|
|
158
158
|
type DecodedStxTransfer = {
|
|
159
|
-
cursor: string
|
|
160
|
-
block_height: number
|
|
161
|
-
tx_id: string
|
|
162
|
-
tx_index: number
|
|
163
|
-
event_index: number
|
|
164
|
-
event_type: "stx_transfer"
|
|
165
|
-
decoded_payload: DecodedStxTransferPayload
|
|
166
|
-
source_cursor: string
|
|
159
|
+
cursor: string;
|
|
160
|
+
block_height: number;
|
|
161
|
+
tx_id: string;
|
|
162
|
+
tx_index: number;
|
|
163
|
+
event_index: number;
|
|
164
|
+
event_type: "stx_transfer";
|
|
165
|
+
decoded_payload: DecodedStxTransferPayload;
|
|
166
|
+
source_cursor: string;
|
|
167
167
|
};
|
|
168
168
|
type DecodedStxMintPayload = {
|
|
169
|
-
recipient: string
|
|
170
|
-
amount: string
|
|
169
|
+
recipient: string;
|
|
170
|
+
amount: string;
|
|
171
171
|
};
|
|
172
172
|
type DecodedStxMint = {
|
|
173
|
-
cursor: string
|
|
174
|
-
block_height: number
|
|
175
|
-
tx_id: string
|
|
176
|
-
tx_index: number
|
|
177
|
-
event_index: number
|
|
178
|
-
event_type: "stx_mint"
|
|
179
|
-
decoded_payload: DecodedStxMintPayload
|
|
180
|
-
source_cursor: string
|
|
173
|
+
cursor: string;
|
|
174
|
+
block_height: number;
|
|
175
|
+
tx_id: string;
|
|
176
|
+
tx_index: number;
|
|
177
|
+
event_index: number;
|
|
178
|
+
event_type: "stx_mint";
|
|
179
|
+
decoded_payload: DecodedStxMintPayload;
|
|
180
|
+
source_cursor: string;
|
|
181
181
|
};
|
|
182
182
|
type DecodedStxBurnPayload = {
|
|
183
|
-
sender: string
|
|
184
|
-
amount: string
|
|
183
|
+
sender: string;
|
|
184
|
+
amount: string;
|
|
185
185
|
};
|
|
186
186
|
type DecodedStxBurn = {
|
|
187
|
-
cursor: string
|
|
188
|
-
block_height: number
|
|
189
|
-
tx_id: string
|
|
190
|
-
tx_index: number
|
|
191
|
-
event_index: number
|
|
192
|
-
event_type: "stx_burn"
|
|
193
|
-
decoded_payload: DecodedStxBurnPayload
|
|
194
|
-
source_cursor: string
|
|
187
|
+
cursor: string;
|
|
188
|
+
block_height: number;
|
|
189
|
+
tx_id: string;
|
|
190
|
+
tx_index: number;
|
|
191
|
+
event_index: number;
|
|
192
|
+
event_type: "stx_burn";
|
|
193
|
+
decoded_payload: DecodedStxBurnPayload;
|
|
194
|
+
source_cursor: string;
|
|
195
195
|
};
|
|
196
196
|
declare function isStxTransfer(event: StreamsEvent): event is StreamsEvent & {
|
|
197
|
-
event_type: "stx_transfer"
|
|
197
|
+
event_type: "stx_transfer";
|
|
198
198
|
};
|
|
199
199
|
declare function decodeStxTransfer(event: StreamsEvent): DecodedStxTransfer;
|
|
200
200
|
declare function isStxMint(event: StreamsEvent): event is StreamsEvent & {
|
|
201
|
-
event_type: "stx_mint"
|
|
201
|
+
event_type: "stx_mint";
|
|
202
202
|
};
|
|
203
203
|
declare function decodeStxMint(event: StreamsEvent): DecodedStxMint;
|
|
204
204
|
declare function isStxBurn(event: StreamsEvent): event is StreamsEvent & {
|
|
205
|
-
event_type: "stx_burn"
|
|
205
|
+
event_type: "stx_burn";
|
|
206
206
|
};
|
|
207
207
|
declare function decodeStxBurn(event: StreamsEvent): DecodedStxBurn;
|
|
208
208
|
type DecodedStxLockPayload = {
|
|
209
|
-
sender: string
|
|
210
|
-
amount: string
|
|
209
|
+
sender: string;
|
|
210
|
+
amount: string;
|
|
211
211
|
payload: {
|
|
212
|
-
unlock_height: string | null
|
|
213
|
-
}
|
|
212
|
+
unlock_height: string | null;
|
|
213
|
+
};
|
|
214
214
|
};
|
|
215
215
|
type DecodedStxLock = {
|
|
216
|
-
cursor: string
|
|
217
|
-
block_height: number
|
|
218
|
-
tx_id: string
|
|
219
|
-
tx_index: number
|
|
220
|
-
event_index: number
|
|
221
|
-
event_type: "stx_lock"
|
|
222
|
-
decoded_payload: DecodedStxLockPayload
|
|
223
|
-
source_cursor: string
|
|
216
|
+
cursor: string;
|
|
217
|
+
block_height: number;
|
|
218
|
+
tx_id: string;
|
|
219
|
+
tx_index: number;
|
|
220
|
+
event_index: number;
|
|
221
|
+
event_type: "stx_lock";
|
|
222
|
+
decoded_payload: DecodedStxLockPayload;
|
|
223
|
+
source_cursor: string;
|
|
224
224
|
};
|
|
225
225
|
declare function isStxLock(event: StreamsEvent): event is StreamsEvent & {
|
|
226
|
-
event_type: "stx_lock"
|
|
226
|
+
event_type: "stx_lock";
|
|
227
227
|
};
|
|
228
228
|
declare function decodeStxLock(event: StreamsEvent): DecodedStxLock;
|
|
229
229
|
type DecodedFtMintPayload = {
|
|
230
|
-
asset_identifier: string
|
|
231
|
-
contract_id: string
|
|
232
|
-
token_name: string | null
|
|
233
|
-
recipient: string
|
|
234
|
-
amount: string
|
|
230
|
+
asset_identifier: string;
|
|
231
|
+
contract_id: string;
|
|
232
|
+
token_name: string | null;
|
|
233
|
+
recipient: string;
|
|
234
|
+
amount: string;
|
|
235
235
|
};
|
|
236
236
|
type DecodedFtMint = {
|
|
237
|
-
cursor: string
|
|
238
|
-
block_height: number
|
|
239
|
-
tx_id: string
|
|
240
|
-
tx_index: number
|
|
241
|
-
event_index: number
|
|
242
|
-
event_type: "ft_mint"
|
|
243
|
-
decoded_payload: DecodedFtMintPayload
|
|
244
|
-
source_cursor: string
|
|
237
|
+
cursor: string;
|
|
238
|
+
block_height: number;
|
|
239
|
+
tx_id: string;
|
|
240
|
+
tx_index: number;
|
|
241
|
+
event_index: number;
|
|
242
|
+
event_type: "ft_mint";
|
|
243
|
+
decoded_payload: DecodedFtMintPayload;
|
|
244
|
+
source_cursor: string;
|
|
245
245
|
};
|
|
246
246
|
type DecodedFtBurnPayload = {
|
|
247
|
-
asset_identifier: string
|
|
248
|
-
contract_id: string
|
|
249
|
-
token_name: string | null
|
|
250
|
-
sender: string
|
|
251
|
-
amount: string
|
|
247
|
+
asset_identifier: string;
|
|
248
|
+
contract_id: string;
|
|
249
|
+
token_name: string | null;
|
|
250
|
+
sender: string;
|
|
251
|
+
amount: string;
|
|
252
252
|
};
|
|
253
253
|
type DecodedFtBurn = {
|
|
254
|
-
cursor: string
|
|
255
|
-
block_height: number
|
|
256
|
-
tx_id: string
|
|
257
|
-
tx_index: number
|
|
258
|
-
event_index: number
|
|
259
|
-
event_type: "ft_burn"
|
|
260
|
-
decoded_payload: DecodedFtBurnPayload
|
|
261
|
-
source_cursor: string
|
|
254
|
+
cursor: string;
|
|
255
|
+
block_height: number;
|
|
256
|
+
tx_id: string;
|
|
257
|
+
tx_index: number;
|
|
258
|
+
event_index: number;
|
|
259
|
+
event_type: "ft_burn";
|
|
260
|
+
decoded_payload: DecodedFtBurnPayload;
|
|
261
|
+
source_cursor: string;
|
|
262
262
|
};
|
|
263
263
|
type DecodedNftMintPayload = {
|
|
264
|
-
asset_identifier: string
|
|
265
|
-
contract_id: string
|
|
266
|
-
token_name: string | null
|
|
267
|
-
recipient: string
|
|
268
|
-
value: string
|
|
264
|
+
asset_identifier: string;
|
|
265
|
+
contract_id: string;
|
|
266
|
+
token_name: string | null;
|
|
267
|
+
recipient: string;
|
|
268
|
+
value: string;
|
|
269
269
|
};
|
|
270
270
|
type DecodedNftMint = {
|
|
271
|
-
cursor: string
|
|
272
|
-
block_height: number
|
|
273
|
-
tx_id: string
|
|
274
|
-
tx_index: number
|
|
275
|
-
event_index: number
|
|
276
|
-
event_type: "nft_mint"
|
|
277
|
-
decoded_payload: DecodedNftMintPayload
|
|
278
|
-
source_cursor: string
|
|
271
|
+
cursor: string;
|
|
272
|
+
block_height: number;
|
|
273
|
+
tx_id: string;
|
|
274
|
+
tx_index: number;
|
|
275
|
+
event_index: number;
|
|
276
|
+
event_type: "nft_mint";
|
|
277
|
+
decoded_payload: DecodedNftMintPayload;
|
|
278
|
+
source_cursor: string;
|
|
279
279
|
};
|
|
280
280
|
type DecodedNftBurnPayload = {
|
|
281
|
-
asset_identifier: string
|
|
282
|
-
contract_id: string
|
|
283
|
-
token_name: string | null
|
|
284
|
-
sender: string
|
|
285
|
-
value: string
|
|
281
|
+
asset_identifier: string;
|
|
282
|
+
contract_id: string;
|
|
283
|
+
token_name: string | null;
|
|
284
|
+
sender: string;
|
|
285
|
+
value: string;
|
|
286
286
|
};
|
|
287
287
|
type DecodedNftBurn = {
|
|
288
|
-
cursor: string
|
|
289
|
-
block_height: number
|
|
290
|
-
tx_id: string
|
|
291
|
-
tx_index: number
|
|
292
|
-
event_index: number
|
|
293
|
-
event_type: "nft_burn"
|
|
294
|
-
decoded_payload: DecodedNftBurnPayload
|
|
295
|
-
source_cursor: string
|
|
288
|
+
cursor: string;
|
|
289
|
+
block_height: number;
|
|
290
|
+
tx_id: string;
|
|
291
|
+
tx_index: number;
|
|
292
|
+
event_index: number;
|
|
293
|
+
event_type: "nft_burn";
|
|
294
|
+
decoded_payload: DecodedNftBurnPayload;
|
|
295
|
+
source_cursor: string;
|
|
296
296
|
};
|
|
297
297
|
declare function isFtMint(event: StreamsEvent): event is StreamsEvent & {
|
|
298
|
-
event_type: "ft_mint"
|
|
298
|
+
event_type: "ft_mint";
|
|
299
299
|
};
|
|
300
300
|
declare function decodeFtMint(event: StreamsEvent): DecodedFtMint;
|
|
301
301
|
declare function isFtBurn(event: StreamsEvent): event is StreamsEvent & {
|
|
302
|
-
event_type: "ft_burn"
|
|
302
|
+
event_type: "ft_burn";
|
|
303
303
|
};
|
|
304
304
|
declare function decodeFtBurn(event: StreamsEvent): DecodedFtBurn;
|
|
305
305
|
declare function isNftMint(event: StreamsEvent): event is StreamsEvent & {
|
|
306
|
-
event_type: "nft_mint"
|
|
306
|
+
event_type: "nft_mint";
|
|
307
307
|
};
|
|
308
308
|
declare function decodeNftMint(event: StreamsEvent): DecodedNftMint;
|
|
309
309
|
declare function isNftBurn(event: StreamsEvent): event is StreamsEvent & {
|
|
310
|
-
event_type: "nft_burn"
|
|
310
|
+
event_type: "nft_burn";
|
|
311
311
|
};
|
|
312
312
|
declare function decodeNftBurn(event: StreamsEvent): DecodedNftBurn;
|
|
313
313
|
/** Decoded form of a Clarity `print` event:
|
|
@@ -316,41 +316,41 @@ declare function decodeNftBurn(event: StreamsEvent): DecodedNftBurn;
|
|
|
316
316
|
* `0x…` hex, tuples as objects)
|
|
317
317
|
* - `raw_value`: the canonical serialized hex, for byte-exact consumers */
|
|
318
318
|
type DecodedPrintValue = {
|
|
319
|
-
topic: string | null
|
|
320
|
-
value: unknown
|
|
321
|
-
raw_value: string | null
|
|
319
|
+
topic: string | null;
|
|
320
|
+
value: unknown;
|
|
321
|
+
raw_value: string | null;
|
|
322
322
|
};
|
|
323
323
|
type DecodedPrintPayload = {
|
|
324
|
-
contract_id: string | null
|
|
325
|
-
payload: DecodedPrintValue
|
|
324
|
+
contract_id: string | null;
|
|
325
|
+
payload: DecodedPrintValue;
|
|
326
326
|
};
|
|
327
327
|
type DecodedPrint = {
|
|
328
|
-
cursor: string
|
|
329
|
-
block_height: number
|
|
330
|
-
tx_id: string
|
|
331
|
-
tx_index: number
|
|
332
|
-
event_index: number
|
|
333
|
-
event_type: "print"
|
|
334
|
-
decoded_payload: DecodedPrintPayload
|
|
335
|
-
source_cursor: string
|
|
328
|
+
cursor: string;
|
|
329
|
+
block_height: number;
|
|
330
|
+
tx_id: string;
|
|
331
|
+
tx_index: number;
|
|
332
|
+
event_index: number;
|
|
333
|
+
event_type: "print";
|
|
334
|
+
decoded_payload: DecodedPrintPayload;
|
|
335
|
+
source_cursor: string;
|
|
336
336
|
};
|
|
337
337
|
declare function isPrint(event: StreamsEvent): event is StreamsEvent & {
|
|
338
|
-
event_type: "print"
|
|
338
|
+
event_type: "print";
|
|
339
339
|
};
|
|
340
340
|
declare function decodePrint(event: StreamsEvent): DecodedPrint;
|
|
341
341
|
/** Superset of the columns the decoded_events table holds. Every decoded
|
|
342
342
|
* event's `decoded_payload` is assignable to this, so the indexer's writer
|
|
343
343
|
* can map columns generically instead of per-event-type. */
|
|
344
344
|
type DecodedEventColumns = {
|
|
345
|
-
contract_id?: string | null
|
|
346
|
-
asset_identifier?: string | null
|
|
347
|
-
sender?: string | null
|
|
348
|
-
recipient?: string | null
|
|
349
|
-
amount?: string | null
|
|
350
|
-
value?: string | null
|
|
351
|
-
memo?: string | null
|
|
345
|
+
contract_id?: string | null;
|
|
346
|
+
asset_identifier?: string | null;
|
|
347
|
+
sender?: string | null;
|
|
348
|
+
recipient?: string | null;
|
|
349
|
+
amount?: string | null;
|
|
350
|
+
value?: string | null;
|
|
351
|
+
memo?: string | null;
|
|
352
352
|
/** JSONB overflow for non-flat types (e.g. print's decoded value). */
|
|
353
|
-
payload?: unknown
|
|
353
|
+
payload?: unknown;
|
|
354
354
|
};
|
|
355
355
|
type DecodedEventRow = DecodedFtTransfer | DecodedNftTransfer | DecodedStxTransfer | DecodedStxMint | DecodedStxBurn | DecodedStxLock | DecodedFtMint | DecodedFtBurn | DecodedNftMint | DecodedNftBurn | DecodedPrint;
|
|
356
356
|
export { isStxTransfer, isStxMint, isStxLock, isStxBurn, isPrint, isNftTransfer, isNftMint, isNftBurn, isFtTransfer, isFtMint, isFtBurn, decodeStxTransfer, decodeStxMint, decodeStxLock, decodeStxBurn, decodePrint, decodeNftTransfer, decodeNftMint, decodeNftBurn, decodeFtTransfer, decodeFtMint, decodeFtBurn, DecodedStxTransfer, DecodedStxMint, DecodedStxLock, DecodedStxBurn, DecodedPrintPayload, DecodedPrint, DecodedNftTransferPayload, DecodedNftTransfer, DecodedNftMint, DecodedNftBurn, DecodedFtTransferPayload, DecodedFtTransfer, DecodedFtMint, DecodedFtBurn, DecodedEventRow, DecodedEventColumns };
|
package/dist/streams/rows.js
CHANGED
package/dist/streams/rows.js.map
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["
|
|
3
|
+
"sources": ["src/streams/_payload.ts", "src/streams/ft-transfer.ts", "src/streams/nft-transfer.ts", "src/clarity.ts", "src/streams/print.ts", "src/streams/stx-events.ts", "src/streams/token-mint-burn.ts"],
|
|
4
4
|
"sourcesContent": [
|
|
5
5
|
"import type { StreamsEvent } from \"./types.ts\";\n\n/** Superset of the columns the decoded_events table holds. Every decoded\n * event's `decoded_payload` is assignable to this, so the indexer's writer\n * can map columns generically instead of per-event-type. */\nexport type DecodedEventColumns = {\n\tcontract_id?: string | null;\n\tasset_identifier?: string | null;\n\tsender?: string | null;\n\trecipient?: string | null;\n\tamount?: string | null;\n\tvalue?: string | null;\n\tmemo?: string | null;\n\t/** JSONB overflow for non-flat types (e.g. print's decoded value). */\n\tpayload?: unknown;\n};\n\nexport function requireString(\n\tpayload: Record<string, unknown>,\n\tfield: string,\n\teventType: string,\n): string {\n\tconst value = payload[field];\n\tif (typeof value !== \"string\" || value.length === 0) {\n\t\tthrow new Error(`${eventType} payload missing ${field}`);\n\t}\n\treturn value;\n}\n\nexport function optionalString(value: unknown): string | null {\n\treturn typeof value === \"string\" && value.length > 0 ? value : null;\n}\n\nexport function requireAmountField(\n\tpayload: Record<string, unknown>,\n\tfield: string,\n\teventType: string,\n): string {\n\tconst amount = requireString(payload, field, eventType);\n\tif (!/^(0|[1-9]\\d*)$/.test(amount)) {\n\t\tthrow new Error(`${eventType} payload has malformed ${field}`);\n\t}\n\treturn amount;\n}\n\nexport function requireAmount(\n\tpayload: Record<string, unknown>,\n\teventType: string,\n): string {\n\treturn requireAmountField(payload, \"amount\", eventType);\n}\n\nexport function parseAssetIdentifier(\n\tassetIdentifier: string,\n\teventType: string,\n): { contract_id: string; token_name: string | null } {\n\tconst [contractId, tokenName] = assetIdentifier.split(\"::\");\n\tif (!contractId) {\n\t\tthrow new Error(`${eventType} payload has malformed asset_identifier`);\n\t}\n\treturn {\n\t\tcontract_id: contractId,\n\t\ttoken_name: tokenName && tokenName.length > 0 ? tokenName : null,\n\t};\n}\n\n/** NFT token id: live streams emits a typed Clarity value at `value` and the\n * canonical hex at `raw_value`; prefer raw_value when present. */\nexport function requireHexValue(\n\tpayload: Record<string, unknown>,\n\teventType: string,\n): string {\n\tconst rawValue = payload.raw_value;\n\tif (typeof rawValue === \"string\") {\n\t\tif (!/^0x[0-9a-fA-F]*$/.test(rawValue)) {\n\t\t\tthrow new Error(`${eventType} payload has malformed value`);\n\t\t}\n\t\treturn rawValue;\n\t}\n\n\tconst value = payload.value;\n\tconst hex =\n\t\ttypeof value === \"string\"\n\t\t\t? value\n\t\t\t: value &&\n\t\t\t\t\ttypeof value === \"object\" &&\n\t\t\t\t\ttypeof (value as { hex?: unknown }).hex === \"string\"\n\t\t\t\t? (value as { hex: string }).hex\n\t\t\t\t: null;\n\n\tif (!hex) {\n\t\tthrow new Error(`${eventType} payload missing value`);\n\t}\n\tif (!/^0x[0-9a-fA-F]*$/.test(hex)) {\n\t\tthrow new Error(`${eventType} payload has malformed value`);\n\t}\n\treturn hex;\n}\n\n/** Common envelope fields shared by every decoded event, lifted off the\n * source StreamsEvent. The decoder supplies event_type + decoded_payload. */\nexport function decodedRow<T extends string, P>(\n\tevent: StreamsEvent,\n\teventType: T,\n\tdecoded_payload: P,\n): {\n\tcursor: string;\n\tblock_height: number;\n\ttx_id: string;\n\ttx_index: number;\n\tevent_index: number;\n\tevent_type: T;\n\tdecoded_payload: P;\n\tsource_cursor: string;\n} {\n\treturn {\n\t\tcursor: event.cursor,\n\t\tblock_height: event.block_height,\n\t\ttx_id: event.tx_id,\n\t\ttx_index: event.tx_index,\n\t\tevent_index: event.event_index,\n\t\tevent_type: eventType,\n\t\tdecoded_payload,\n\t\tsource_cursor: event.cursor,\n\t};\n}\n",
|
|
6
6
|
"import {\n\tdecodedRow,\n\tparseAssetIdentifier,\n\trequireAmount,\n\trequireString,\n} from \"./_payload.ts\";\nimport type { StreamsEvent } from \"./types.ts\";\n\nexport type { FtTransferPayload } from \"./types.ts\";\n\nexport type FtTransferEvent = Extract<\n\tStreamsEvent,\n\t{ event_type: \"ft_transfer\" }\n>;\n\nexport type DecodedFtTransferPayload = {\n\tasset_identifier: string;\n\tcontract_id: string;\n\ttoken_name: string | null;\n\tsender: string;\n\trecipient: string;\n\tamount: string;\n};\n\nexport type DecodedFtTransfer = {\n\tcursor: string;\n\tblock_height: number;\n\ttx_id: string;\n\ttx_index: number;\n\tevent_index: number;\n\tevent_type: \"ft_transfer\";\n\tdecoded_payload: DecodedFtTransferPayload;\n\tsource_cursor: string;\n};\n\nexport function isFtTransfer(event: StreamsEvent): event is FtTransferEvent {\n\treturn event.event_type === \"ft_transfer\";\n}\n\nexport function decodeFtTransfer(event: StreamsEvent): DecodedFtTransfer {\n\tif (!isFtTransfer(event)) {\n\t\tthrow new Error(`Expected ft_transfer event, got ${event.event_type}`);\n\t}\n\n\tconst payload = event.payload;\n\tconst assetIdentifier = requireString(\n\t\tpayload,\n\t\t\"asset_identifier\",\n\t\t\"ft_transfer\",\n\t);\n\tconst sender = requireString(payload, \"sender\", \"ft_transfer\");\n\tconst recipient = requireString(payload, \"recipient\", \"ft_transfer\");\n\tconst amount = requireAmount(payload, \"ft_transfer\");\n\tconst { contract_id, token_name } = parseAssetIdentifier(\n\t\tassetIdentifier,\n\t\t\"ft_transfer\",\n\t);\n\n\treturn decodedRow(event, \"ft_transfer\", {\n\t\tasset_identifier: assetIdentifier,\n\t\tcontract_id: event.contract_id ?? contract_id,\n\t\ttoken_name,\n\t\tsender,\n\t\trecipient,\n\t\tamount,\n\t});\n}\n",
|
|
@@ -11,6 +11,6 @@
|
|
|
11
11
|
"import {\n\tdecodedRow,\n\tparseAssetIdentifier,\n\trequireAmount,\n\trequireHexValue,\n\trequireString,\n} from \"./_payload.ts\";\nimport type { StreamsEvent } from \"./types.ts\";\n\nexport type DecodedFtMintPayload = {\n\tasset_identifier: string;\n\tcontract_id: string;\n\ttoken_name: string | null;\n\trecipient: string;\n\tamount: string;\n};\n\nexport type DecodedFtMint = {\n\tcursor: string;\n\tblock_height: number;\n\ttx_id: string;\n\ttx_index: number;\n\tevent_index: number;\n\tevent_type: \"ft_mint\";\n\tdecoded_payload: DecodedFtMintPayload;\n\tsource_cursor: string;\n};\n\nexport type DecodedFtBurnPayload = {\n\tasset_identifier: string;\n\tcontract_id: string;\n\ttoken_name: string | null;\n\tsender: string;\n\tamount: string;\n};\n\nexport type DecodedFtBurn = {\n\tcursor: string;\n\tblock_height: number;\n\ttx_id: string;\n\ttx_index: number;\n\tevent_index: number;\n\tevent_type: \"ft_burn\";\n\tdecoded_payload: DecodedFtBurnPayload;\n\tsource_cursor: string;\n};\n\nexport type DecodedNftMintPayload = {\n\tasset_identifier: string;\n\tcontract_id: string;\n\ttoken_name: string | null;\n\trecipient: string;\n\tvalue: string;\n};\n\nexport type DecodedNftMint = {\n\tcursor: string;\n\tblock_height: number;\n\ttx_id: string;\n\ttx_index: number;\n\tevent_index: number;\n\tevent_type: \"nft_mint\";\n\tdecoded_payload: DecodedNftMintPayload;\n\tsource_cursor: string;\n};\n\nexport type DecodedNftBurnPayload = {\n\tasset_identifier: string;\n\tcontract_id: string;\n\ttoken_name: string | null;\n\tsender: string;\n\tvalue: string;\n};\n\nexport type DecodedNftBurn = {\n\tcursor: string;\n\tblock_height: number;\n\ttx_id: string;\n\ttx_index: number;\n\tevent_index: number;\n\tevent_type: \"nft_burn\";\n\tdecoded_payload: DecodedNftBurnPayload;\n\tsource_cursor: string;\n};\n\nfunction assetFields(event: StreamsEvent, eventType: string) {\n\tconst assetIdentifier = requireString(\n\t\tevent.payload,\n\t\t\"asset_identifier\",\n\t\teventType,\n\t);\n\tconst { contract_id, token_name } = parseAssetIdentifier(\n\t\tassetIdentifier,\n\t\teventType,\n\t);\n\treturn {\n\t\tasset_identifier: assetIdentifier,\n\t\tcontract_id: event.contract_id ?? contract_id,\n\t\ttoken_name,\n\t};\n}\n\nexport function isFtMint(\n\tevent: StreamsEvent,\n): event is StreamsEvent & { event_type: \"ft_mint\" } {\n\treturn event.event_type === \"ft_mint\";\n}\n\nexport function decodeFtMint(event: StreamsEvent): DecodedFtMint {\n\tif (!isFtMint(event)) {\n\t\tthrow new Error(`Expected ft_mint event, got ${event.event_type}`);\n\t}\n\treturn decodedRow(event, \"ft_mint\", {\n\t\t...assetFields(event, \"ft_mint\"),\n\t\trecipient: requireString(event.payload, \"recipient\", \"ft_mint\"),\n\t\tamount: requireAmount(event.payload, \"ft_mint\"),\n\t});\n}\n\nexport function isFtBurn(\n\tevent: StreamsEvent,\n): event is StreamsEvent & { event_type: \"ft_burn\" } {\n\treturn event.event_type === \"ft_burn\";\n}\n\nexport function decodeFtBurn(event: StreamsEvent): DecodedFtBurn {\n\tif (!isFtBurn(event)) {\n\t\tthrow new Error(`Expected ft_burn event, got ${event.event_type}`);\n\t}\n\treturn decodedRow(event, \"ft_burn\", {\n\t\t...assetFields(event, \"ft_burn\"),\n\t\tsender: requireString(event.payload, \"sender\", \"ft_burn\"),\n\t\tamount: requireAmount(event.payload, \"ft_burn\"),\n\t});\n}\n\nexport function isNftMint(\n\tevent: StreamsEvent,\n): event is StreamsEvent & { event_type: \"nft_mint\" } {\n\treturn event.event_type === \"nft_mint\";\n}\n\nexport function decodeNftMint(event: StreamsEvent): DecodedNftMint {\n\tif (!isNftMint(event)) {\n\t\tthrow new Error(`Expected nft_mint event, got ${event.event_type}`);\n\t}\n\treturn decodedRow(event, \"nft_mint\", {\n\t\t...assetFields(event, \"nft_mint\"),\n\t\trecipient: requireString(event.payload, \"recipient\", \"nft_mint\"),\n\t\tvalue: requireHexValue(event.payload, \"nft_mint\"),\n\t});\n}\n\nexport function isNftBurn(\n\tevent: StreamsEvent,\n): event is StreamsEvent & { event_type: \"nft_burn\" } {\n\treturn event.event_type === \"nft_burn\";\n}\n\nexport function decodeNftBurn(event: StreamsEvent): DecodedNftBurn {\n\tif (!isNftBurn(event)) {\n\t\tthrow new Error(`Expected nft_burn event, got ${event.event_type}`);\n\t}\n\treturn decodedRow(event, \"nft_burn\", {\n\t\t...assetFields(event, \"nft_burn\"),\n\t\tsender: requireString(event.payload, \"sender\", \"nft_burn\"),\n\t\tvalue: requireHexValue(event.payload, \"nft_burn\"),\n\t});\n}\n"
|
|
12
12
|
],
|
|
13
13
|
"mappings": "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",
|
|
14
|
-
"debugId": "
|
|
14
|
+
"debugId": "1297EE104E5B35B464756E2164756E21",
|
|
15
15
|
"names": []
|
|
16
16
|
}
|