@secondlayer/stacks 6.0.0 → 6.1.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.
Files changed (153) hide show
  1. package/dist/shared/{stacks-qt8ehebn.js → stacks-esm-0rdxcta7.js} +2 -2
  2. package/dist/shared/{stacks-qt8ehebn.js.map → stacks-esm-0rdxcta7.js.map} +1 -1
  3. package/dist/shared/{stacks-4hs8r4q2.js → stacks-esm-1jae0a3r.js} +2 -2
  4. package/dist/shared/{stacks-xjkn3en1.cjs.map → stacks-esm-1jae0a3r.js.map} +1 -1
  5. package/dist/shared/{stacks-4d7c3x27.js → stacks-esm-2mc7ebrm.js} +3 -3
  6. package/dist/shared/{stacks-4d7c3x27.js.map → stacks-esm-2mc7ebrm.js.map} +1 -1
  7. package/dist/shared/{stacks-8brgfvqx.js → stacks-esm-3g33bqsm.js} +4 -4
  8. package/dist/shared/{stacks-8brgfvqx.js.map → stacks-esm-3g33bqsm.js.map} +1 -1
  9. package/dist/shared/{stacks-gjz26k6b.js → stacks-esm-3pv5avgr.js} +59 -15
  10. package/dist/shared/stacks-esm-3pv5avgr.js.map +12 -0
  11. package/dist/shared/{stacks-qex691bh.js → stacks-esm-743jfh10.js} +6 -6
  12. package/dist/shared/{stacks-qex691bh.js.map → stacks-esm-743jfh10.js.map} +1 -1
  13. package/dist/shared/{stacks-wxfd6r4b.js → stacks-esm-7fpqgtyx.js} +3 -3
  14. package/dist/shared/{stacks-wxfd6r4b.js.map → stacks-esm-7fpqgtyx.js.map} +1 -1
  15. package/dist/shared/{stacks-71k0vmct.js → stacks-esm-9rnx0zxr.js} +5 -5
  16. package/dist/shared/{stacks-71k0vmct.js.map → stacks-esm-9rnx0zxr.js.map} +1 -1
  17. package/dist/shared/{stacks-fd4rx56e.js → stacks-esm-aw2mj3sj.js} +7 -7
  18. package/dist/shared/{stacks-fd4rx56e.js.map → stacks-esm-aw2mj3sj.js.map} +1 -1
  19. package/dist/shared/{stacks-qs5fzts5.js → stacks-esm-cvhazvhd.js} +2 -2
  20. package/dist/shared/{stacks-qs5fzts5.js.map → stacks-esm-cvhazvhd.js.map} +1 -1
  21. package/dist/shared/{stacks-69nq48jp.js → stacks-esm-fcfdn2zx.js} +5 -5
  22. package/dist/shared/{stacks-69nq48jp.js.map → stacks-esm-fcfdn2zx.js.map} +1 -1
  23. package/dist/shared/{stacks-x0qqwrev.js → stacks-esm-hr7fpxtj.js} +4 -4
  24. package/dist/shared/{stacks-x0qqwrev.js.map → stacks-esm-hr7fpxtj.js.map} +1 -1
  25. package/dist/shared/{stacks-mbt36bzt.js → stacks-esm-kds4n82p.js} +11 -11
  26. package/dist/shared/{stacks-mbt36bzt.js.map → stacks-esm-kds4n82p.js.map} +1 -1
  27. package/dist/shared/{stacks-kg1npstf.js → stacks-esm-n53kvwmt.js} +2 -2
  28. package/dist/shared/{stacks-kg1npstf.js.map → stacks-esm-n53kvwmt.js.map} +1 -1
  29. package/dist/shared/{stacks-v2rfr46a.js → stacks-esm-pxhfqfff.js} +4 -4
  30. package/dist/shared/{stacks-v2rfr46a.js.map → stacks-esm-pxhfqfff.js.map} +1 -1
  31. package/dist/shared/{stacks-yajyej2y.js → stacks-esm-q19a17fd.js} +3 -3
  32. package/dist/shared/{stacks-yajyej2y.js.map → stacks-esm-q19a17fd.js.map} +1 -1
  33. package/dist/shared/{stacks-v03zef3g.js → stacks-esm-qk0p9fr6.js} +9 -9
  34. package/dist/shared/{stacks-v03zef3g.js.map → stacks-esm-qk0p9fr6.js.map} +1 -1
  35. package/dist/shared/{stacks-qcae5852.js → stacks-esm-qkj67g80.js} +2 -2
  36. package/dist/shared/{stacks-qcae5852.js.map → stacks-esm-qkj67g80.js.map} +1 -1
  37. package/dist/shared/{stacks-mftyrc60.js → stacks-esm-r6dejrgr.js} +4 -4
  38. package/dist/shared/{stacks-mftyrc60.js.map → stacks-esm-r6dejrgr.js.map} +1 -1
  39. package/dist/shared/{stacks-9c1yam8b.js → stacks-esm-r9q4wnyw.js} +5 -5
  40. package/dist/shared/{stacks-9c1yam8b.js.map → stacks-esm-r9q4wnyw.js.map} +1 -1
  41. package/dist/shared/{stacks-51ybf135.js → stacks-esm-skmcf5n2.js} +5 -5
  42. package/dist/shared/{stacks-51ybf135.js.map → stacks-esm-skmcf5n2.js.map} +1 -1
  43. package/dist/shared/{stacks-yvb7rvwk.js → stacks-esm-v45990hx.js} +2 -2
  44. package/dist/shared/{stacks-8vzxax5e.cjs.map → stacks-esm-v45990hx.js.map} +1 -1
  45. package/dist/shared/{stacks-z90xdr1x.js → stacks-esm-wv67m4g6.js} +3 -3
  46. package/dist/shared/{stacks-z90xdr1x.js.map → stacks-esm-wv67m4g6.js.map} +1 -1
  47. package/dist/shared/{stacks-1m3m1agc.js → stacks-esm-x1r01353.js} +5 -5
  48. package/dist/shared/{stacks-1m3m1agc.js.map → stacks-esm-x1r01353.js.map} +1 -1
  49. package/dist/src/accounts/index.cjs +558 -4
  50. package/dist/src/accounts/index.cjs.map +10 -4
  51. package/dist/src/accounts/index.js +3 -3
  52. package/dist/src/actions/index.cjs +3815 -1
  53. package/dist/src/actions/index.cjs.map +65 -3
  54. package/dist/src/actions/index.js +14 -14
  55. package/dist/src/bitcoin/index.cjs +2477 -1
  56. package/dist/src/bitcoin/index.cjs.map +31 -3
  57. package/dist/src/bitcoin/index.js +11 -11
  58. package/dist/src/bns/index.cjs +4439 -17
  59. package/dist/src/bns/index.cjs.map +50 -3
  60. package/dist/src/bns/index.js +14 -14
  61. package/dist/src/chains/index.cjs +135 -1
  62. package/dist/src/chains/index.cjs.map +5 -3
  63. package/dist/src/chains/index.js +1 -1
  64. package/dist/src/clarity/index.cjs +2019 -1
  65. package/dist/src/clarity/index.cjs.map +24 -3
  66. package/dist/src/clarity/index.js +8 -8
  67. package/dist/src/filters/index.cjs +725 -1
  68. package/dist/src/filters/index.cjs.map +11 -3
  69. package/dist/src/filters/index.d.cts +76 -13
  70. package/dist/src/filters/index.d.ts +76 -13
  71. package/dist/src/filters/index.js +8 -4
  72. package/dist/src/filters/index.js.map +1 -1
  73. package/dist/src/index.cjs +3935 -62
  74. package/dist/src/index.cjs.map +69 -4
  75. package/dist/src/index.d.cts +62 -11
  76. package/dist/src/index.d.ts +62 -11
  77. package/dist/src/index.js +16 -16
  78. package/dist/src/postconditions/index.cjs +1726 -1
  79. package/dist/src/postconditions/index.cjs.map +20 -3
  80. package/dist/src/postconditions/index.js +6 -6
  81. package/dist/src/pox/index.cjs +3855 -1
  82. package/dist/src/pox/index.cjs.map +48 -3
  83. package/dist/src/pox/index.js +13 -13
  84. package/dist/src/pox5/index.cjs +4054 -29
  85. package/dist/src/pox5/index.cjs.map +54 -3
  86. package/dist/src/pox5/index.js +15 -15
  87. package/dist/src/sbtc/index.cjs +3705 -4
  88. package/dist/src/sbtc/index.cjs.map +47 -3
  89. package/dist/src/sbtc/index.js +12 -12
  90. package/dist/src/stackingdao/index.cjs +3751 -8
  91. package/dist/src/stackingdao/index.cjs.map +45 -3
  92. package/dist/src/stackingdao/index.js +12 -12
  93. package/dist/src/subscriptions/index.cjs +153 -1
  94. package/dist/src/subscriptions/index.cjs.map +6 -3
  95. package/dist/src/subscriptions/index.js +2 -2
  96. package/dist/src/transactions/index.cjs +2139 -1
  97. package/dist/src/transactions/index.cjs.map +23 -3
  98. package/dist/src/transactions/index.js +6 -6
  99. package/dist/src/utils/index.cjs +435 -3
  100. package/dist/src/utils/index.cjs.map +9 -3
  101. package/dist/src/utils/index.js +3 -3
  102. package/package.json +1 -1
  103. package/dist/shared/stacks-02actsrx.cjs +0 -17
  104. package/dist/shared/stacks-02actsrx.cjs.map +0 -10
  105. package/dist/shared/stacks-03vfm21t.cjs +0 -222
  106. package/dist/shared/stacks-03vfm21t.cjs.map +0 -12
  107. package/dist/shared/stacks-24h5k94q.cjs +0 -74
  108. package/dist/shared/stacks-24h5k94q.cjs.map +0 -11
  109. package/dist/shared/stacks-37kz5t9f.cjs +0 -764
  110. package/dist/shared/stacks-37kz5t9f.cjs.map +0 -23
  111. package/dist/shared/stacks-3mt2q2na.cjs +0 -65
  112. package/dist/shared/stacks-3mt2q2na.cjs.map +0 -9
  113. package/dist/shared/stacks-4hs8r4q2.js.map +0 -10
  114. package/dist/shared/stacks-8vzxax5e.cjs +0 -45
  115. package/dist/shared/stacks-agk106zs.cjs +0 -267
  116. package/dist/shared/stacks-agk106zs.cjs.map +0 -12
  117. package/dist/shared/stacks-bdgh9n83.cjs +0 -212
  118. package/dist/shared/stacks-bdgh9n83.cjs.map +0 -11
  119. package/dist/shared/stacks-dpxnxhqb.cjs +0 -51
  120. package/dist/shared/stacks-dpxnxhqb.cjs.map +0 -11
  121. package/dist/shared/stacks-ee53k9j2.cjs +0 -651
  122. package/dist/shared/stacks-ee53k9j2.cjs.map +0 -13
  123. package/dist/shared/stacks-enpj9krt.cjs +0 -38
  124. package/dist/shared/stacks-enpj9krt.cjs.map +0 -10
  125. package/dist/shared/stacks-f35mnrmg.cjs +0 -164
  126. package/dist/shared/stacks-f35mnrmg.cjs.map +0 -10
  127. package/dist/shared/stacks-fhzwsn5d.cjs +0 -261
  128. package/dist/shared/stacks-fhzwsn5d.cjs.map +0 -12
  129. package/dist/shared/stacks-gjz26k6b.js.map +0 -12
  130. package/dist/shared/stacks-gza2n1zs.cjs +0 -73
  131. package/dist/shared/stacks-gza2n1zs.cjs.map +0 -11
  132. package/dist/shared/stacks-kem68d80.cjs +0 -156
  133. package/dist/shared/stacks-kem68d80.cjs.map +0 -10
  134. package/dist/shared/stacks-n98w7g57.cjs +0 -234
  135. package/dist/shared/stacks-n98w7g57.cjs.map +0 -10
  136. package/dist/shared/stacks-p337hp6m.cjs +0 -336
  137. package/dist/shared/stacks-p337hp6m.cjs.map +0 -25
  138. package/dist/shared/stacks-q34k4vnc.cjs +0 -286
  139. package/dist/shared/stacks-q34k4vnc.cjs.map +0 -12
  140. package/dist/shared/stacks-rryme9bv.cjs +0 -569
  141. package/dist/shared/stacks-rryme9bv.cjs.map +0 -13
  142. package/dist/shared/stacks-s5vej5z6.cjs +0 -410
  143. package/dist/shared/stacks-s5vej5z6.cjs.map +0 -15
  144. package/dist/shared/stacks-sdqkapct.cjs +0 -67
  145. package/dist/shared/stacks-sdqkapct.cjs.map +0 -12
  146. package/dist/shared/stacks-vea7nde7.cjs +0 -731
  147. package/dist/shared/stacks-vea7nde7.cjs.map +0 -13
  148. package/dist/shared/stacks-wk8yp13j.cjs +0 -33
  149. package/dist/shared/stacks-wk8yp13j.cjs.map +0 -11
  150. package/dist/shared/stacks-xjkn3en1.cjs +0 -42
  151. package/dist/shared/stacks-xnrywjf1.cjs +0 -131
  152. package/dist/shared/stacks-xnrywjf1.cjs.map +0 -11
  153. package/dist/shared/stacks-yvb7rvwk.js.map +0 -10
@@ -1,3 +1,727 @@
1
+ var import_node_module = require("node:module");
2
+ var __create = Object.create;
3
+ var __getProtoOf = Object.getPrototypeOf;
4
+ var __defProp = Object.defineProperty;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ function __accessProp(key) {
9
+ return this[key];
10
+ }
11
+ var __toESMCache_node;
12
+ var __toESMCache_esm;
13
+ var __toESM = (mod, isNodeMode, target) => {
14
+ var canCache = mod != null && typeof mod === "object";
15
+ if (canCache) {
16
+ var cache = isNodeMode ? __toESMCache_node ??= new WeakMap : __toESMCache_esm ??= new WeakMap;
17
+ var cached = cache.get(mod);
18
+ if (cached)
19
+ return cached;
20
+ }
21
+ target = mod != null ? __create(__getProtoOf(mod)) : {};
22
+ const to = isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target;
23
+ for (let key of __getOwnPropNames(mod))
24
+ if (!__hasOwnProp.call(to, key))
25
+ __defProp(to, key, {
26
+ get: __accessProp.bind(mod, key),
27
+ enumerable: true
28
+ });
29
+ if (canCache)
30
+ cache.set(mod, to);
31
+ return to;
32
+ };
33
+ var __toCommonJS = (from) => {
34
+ var entry = (__moduleCache ??= new WeakMap).get(from), desc;
35
+ if (entry)
36
+ return entry;
37
+ entry = __defProp({}, "__esModule", { value: true });
38
+ if (from && typeof from === "object" || typeof from === "function") {
39
+ for (var key of __getOwnPropNames(from))
40
+ if (!__hasOwnProp.call(entry, key))
41
+ __defProp(entry, key, {
42
+ get: __accessProp.bind(from, key),
43
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
44
+ });
45
+ }
46
+ __moduleCache.set(from, entry);
47
+ return entry;
48
+ };
49
+ var __moduleCache;
50
+ var __returnValue = (v) => v;
51
+ function __exportSetter(name, newValue) {
52
+ this[name] = __returnValue.bind(null, newValue);
53
+ }
54
+ var __export = (target, all) => {
55
+ for (var name in all)
56
+ __defProp(target, name, {
57
+ get: all[name],
58
+ enumerable: true,
59
+ configurable: true,
60
+ set: __exportSetter.bind(all, name)
61
+ });
62
+ };
1
63
 
2
- //# debugId=DDDF1E5FDE06A0EC64756E2164756E21
64
+ // src/filters/index.ts
65
+ var exports_filters = {};
66
+ __export(exports_filters, {
67
+ on: () => on,
68
+ makeChainEventFilter: () => makeChainEventFilter,
69
+ isPrincipal: () => isPrincipal,
70
+ hasWildcard: () => hasWildcard,
71
+ fromSubgraphSource: () => fromSubgraphSource,
72
+ assetId: () => assetId,
73
+ assertPrincipalish: () => assertPrincipalish,
74
+ assertContractId: () => assertContractId,
75
+ assertAssetIdentifier: () => assertAssetIdentifier,
76
+ VM_NODE_TO_STORED_TYPE: () => VM_NODE_TO_STORED_TYPE,
77
+ VM_EVENT_TYPES: () => VM_EVENT_TYPES,
78
+ DECODED_EVENT_TYPES: () => DECODED_EVENT_TYPES,
79
+ CHAIN_EVENT_FILTER_TYPES: () => CHAIN_EVENT_FILTER_TYPES
80
+ });
81
+ module.exports = __toCommonJS(exports_filters);
82
+
83
+ // src/filters/event-types.ts
84
+ var DECODED_EVENT_TYPES = [
85
+ "stx_transfer",
86
+ "stx_mint",
87
+ "stx_burn",
88
+ "stx_lock",
89
+ "ft_transfer",
90
+ "ft_mint",
91
+ "ft_burn",
92
+ "nft_transfer",
93
+ "nft_mint",
94
+ "nft_burn",
95
+ "print"
96
+ ];
97
+ var VM_EVENT_TYPES = [
98
+ "nested_contract_call",
99
+ "var_set",
100
+ "map_set",
101
+ "map_insert",
102
+ "map_delete"
103
+ ];
104
+ var VM_NODE_TO_STORED_TYPE = {
105
+ contract_call_event: "nested_contract_call",
106
+ var_set_event: "var_set",
107
+ map_set_event: "map_set",
108
+ map_insert_event: "map_insert",
109
+ map_delete_event: "map_delete"
110
+ };
111
+ var CHAIN_EVENT_FILTER_TYPES = [
112
+ "stx_transfer",
113
+ "stx_mint",
114
+ "stx_burn",
115
+ "stx_lock",
116
+ "ft_transfer",
117
+ "ft_mint",
118
+ "ft_burn",
119
+ "nft_transfer",
120
+ "nft_mint",
121
+ "nft_burn",
122
+ "contract_call",
123
+ "contract_deploy",
124
+ "print_event",
125
+ "nested_contract_call",
126
+ "var_set",
127
+ "map_set",
128
+ "map_insert",
129
+ "map_delete",
130
+ "sbtc_deposit",
131
+ "sbtc_withdrawal_create",
132
+ "sbtc_withdrawal_accept",
133
+ "sbtc_withdrawal_reject",
134
+ "sbtc_withdrawal_swept_confirmed"
135
+ ];
136
+ // src/utils/c32.ts
137
+ var import_sha2 = require("@noble/hashes/sha2.js");
138
+
139
+ // src/utils/encoding.ts
140
+ var hexes = Array.from({ length: 256 }, (_, i) => i.toString(16).padStart(2, "0"));
141
+ function bytesToHex(bytes) {
142
+ let hex = "";
143
+ for (const b of bytes) {
144
+ hex += hexes[b];
145
+ }
146
+ return hex;
147
+ }
148
+ function hexToBytes(hex) {
149
+ let h = without0x(hex);
150
+ if (h.length % 2)
151
+ h = `0${h}`;
152
+ const array = new Uint8Array(h.length / 2);
153
+ for (let i = 0;i < array.length; i++) {
154
+ const j = i * 2;
155
+ const byte = Number.parseInt(h.slice(j, j + 2), 16);
156
+ if (Number.isNaN(byte) || byte < 0)
157
+ throw new Error("Invalid byte sequence");
158
+ array[i] = byte;
159
+ }
160
+ return array;
161
+ }
162
+ function with0x(value) {
163
+ return /^0x/i.test(value) ? value : `0x${value}`;
164
+ }
165
+ function without0x(value) {
166
+ return /^0x/i.test(value) ? value.slice(2) : value;
167
+ }
168
+ function utf8ToBytes(str) {
169
+ return new TextEncoder().encode(str);
170
+ }
171
+ function bytesToUtf8(bytes) {
172
+ return new TextDecoder().decode(bytes);
173
+ }
174
+ function asciiToBytes(str) {
175
+ const bytes = new Uint8Array(str.length);
176
+ for (let i = 0;i < str.length; i++) {
177
+ bytes[i] = str.charCodeAt(i) & 255;
178
+ }
179
+ return bytes;
180
+ }
181
+ function bytesToAscii(bytes) {
182
+ return String.fromCharCode(...bytes);
183
+ }
184
+ function concatBytes(...arrays) {
185
+ if (arrays.length === 1)
186
+ return arrays[0];
187
+ const length = arrays.reduce((a, arr) => a + arr.length, 0);
188
+ const result = new Uint8Array(length);
189
+ let pad = 0;
190
+ for (const arr of arrays) {
191
+ result.set(arr, pad);
192
+ pad += arr.length;
193
+ }
194
+ return result;
195
+ }
196
+ function intToBigInt(value) {
197
+ if (typeof value === "bigint")
198
+ return value;
199
+ if (typeof value === "string")
200
+ return BigInt(value);
201
+ if (typeof value === "number") {
202
+ if (!Number.isInteger(value))
203
+ throw new RangeError("Values of type 'number' must be an integer.");
204
+ if (value > Number.MAX_SAFE_INTEGER)
205
+ throw new RangeError(`Values of type 'number' must be <= ${Number.MAX_SAFE_INTEGER}. Use BigInt instead.`);
206
+ return BigInt(value);
207
+ }
208
+ if (value instanceof Uint8Array)
209
+ return BigInt(`0x${bytesToHex(value)}`);
210
+ throw new TypeError("Must be a number, bigint, string, or Uint8Array.");
211
+ }
212
+ function intToBytes(value, byteLength) {
213
+ return bigIntToBytes(intToBigInt(value), byteLength);
214
+ }
215
+ function bigIntToBytes(value, length = 16) {
216
+ const hex = value.toString(16).padStart(length * 2, "0");
217
+ return hexToBytes(hex);
218
+ }
219
+ function intToHex(integer, byteLength = 8) {
220
+ const value = typeof integer === "bigint" ? integer : intToBigInt(integer);
221
+ return value.toString(16).padStart(byteLength * 2, "0");
222
+ }
223
+ function toTwos(value, width) {
224
+ const limit = BigInt(1) << width - BigInt(1);
225
+ if (value < -limit || value > limit - BigInt(1)) {
226
+ throw new Error(`Unable to represent integer in width: ${width}`);
227
+ }
228
+ if (value >= BigInt(0))
229
+ return value;
230
+ return value + (BigInt(1) << width);
231
+ }
232
+ function fromTwos(value, width) {
233
+ if (value & BigInt(1) << width - BigInt(1)) {
234
+ return value - (BigInt(1) << width);
235
+ }
236
+ return value;
237
+ }
238
+ function bytesToTwosBigInt(bytes) {
239
+ if (bytes.length === 0)
240
+ return 0n;
241
+ const hex = bytesToHex(bytes);
242
+ if (hex.length === 0)
243
+ return 0n;
244
+ return fromTwos(BigInt(`0x${hex}`), BigInt(bytes.byteLength * 8));
245
+ }
246
+ function writeUInt32BE(value) {
247
+ const buf = new Uint8Array(4);
248
+ buf[0] = value >>> 24 & 255;
249
+ buf[1] = value >>> 16 & 255;
250
+ buf[2] = value >>> 8 & 255;
251
+ buf[3] = value & 255;
252
+ return buf;
253
+ }
254
+ function readUInt32BE(bytes, offset = 0) {
255
+ return (bytes[offset] << 24 | bytes[offset + 1] << 16 | bytes[offset + 2] << 8 | bytes[offset + 3]) >>> 0;
256
+ }
257
+ function writeUInt16BE(value) {
258
+ const buf = new Uint8Array(2);
259
+ buf[0] = value >>> 8 & 255;
260
+ buf[1] = value & 255;
261
+ return buf;
262
+ }
263
+ function readUInt16BE(bytes, offset = 0) {
264
+ return (bytes[offset] << 8 | bytes[offset + 1]) >>> 0;
265
+ }
266
+ function writeUInt8(value) {
267
+ return new Uint8Array([value & 255]);
268
+ }
269
+
270
+ // src/utils/c32.ts
271
+ var C32 = "0123456789ABCDEFGHJKMNPQRSTVWXYZ";
272
+ var HEX = "0123456789abcdef";
273
+ function c32normalize(input) {
274
+ return input.toUpperCase().replace(/O/g, "0").replace(/L|I/g, "1");
275
+ }
276
+ function c32encode(inputHex) {
277
+ let hex = inputHex;
278
+ if (hex.length % 2 !== 0)
279
+ hex = `0${hex}`;
280
+ hex = hex.toLowerCase();
281
+ const res = [];
282
+ let carry = 0;
283
+ for (let i = hex.length - 1;i >= 0; i--) {
284
+ if (carry < 4) {
285
+ const currentCode = HEX.indexOf(hex[i]) >> carry;
286
+ const nextCode = i !== 0 ? HEX.indexOf(hex[i - 1]) : 0;
287
+ const nextBits = 1 + carry;
288
+ const nextLowBits = nextCode % (1 << nextBits) << 5 - nextBits;
289
+ res.unshift(C32[currentCode + nextLowBits]);
290
+ carry = nextBits;
291
+ } else {
292
+ carry = 0;
293
+ }
294
+ }
295
+ let leadingZeros = 0;
296
+ while (leadingZeros < res.length && res[leadingZeros] === "0")
297
+ leadingZeros++;
298
+ const stripped = res.slice(leadingZeros);
299
+ const bytes = hexToBytes(hex);
300
+ let zeroBytesCount = 0;
301
+ while (zeroBytesCount < bytes.length && bytes[zeroBytesCount] === 0)
302
+ zeroBytesCount++;
303
+ const prefix = Array(zeroBytesCount).fill(C32[0]);
304
+ return [...prefix, ...stripped].join("");
305
+ }
306
+ function c32decode(c32input) {
307
+ const input = c32normalize(c32input);
308
+ if (!input.match(`^[${C32}]*$`))
309
+ throw new Error("Not a c32-encoded string");
310
+ const zeroPrefix = input.match(`^${C32[0]}*`);
311
+ const numLeadingZeroBytes = zeroPrefix ? zeroPrefix[0]?.length : 0;
312
+ const res = [];
313
+ let carry = 0;
314
+ let carryBits = 0;
315
+ for (let i = input.length - 1;i >= 0; i--) {
316
+ if (carryBits === 4) {
317
+ res.unshift(HEX[carry]);
318
+ carryBits = 0;
319
+ carry = 0;
320
+ }
321
+ const currentValue = (C32.indexOf(input[i]) << carryBits) + carry;
322
+ res.unshift(HEX[currentValue % 16]);
323
+ carryBits += 1;
324
+ carry = currentValue >> 4;
325
+ if (carry > 1 << carryBits)
326
+ throw new Error("Panic error in c32 decoding");
327
+ }
328
+ res.unshift(HEX[carry]);
329
+ if (res.length % 2 === 1)
330
+ res.unshift("0");
331
+ let hexLeadingZeros = 0;
332
+ while (hexLeadingZeros < res.length && res[hexLeadingZeros] === "0")
333
+ hexLeadingZeros++;
334
+ let hexStr = res.slice(hexLeadingZeros - hexLeadingZeros % 2).join("");
335
+ for (let i = 0;i < numLeadingZeroBytes; i++)
336
+ hexStr = `00${hexStr}`;
337
+ return hexStr;
338
+ }
339
+ function c32checksum(dataHex) {
340
+ return bytesToHex(import_sha2.sha256(import_sha2.sha256(hexToBytes(dataHex))).slice(0, 4));
341
+ }
342
+ function c32checkEncode(version, data) {
343
+ if (version < 0 || version >= 32)
344
+ throw new Error("Invalid version (must be between 0 and 31)");
345
+ if (!data.match(/^[0-9a-fA-F]*$/))
346
+ throw new Error("Invalid data (not a hex string)");
347
+ let d = data.toLowerCase();
348
+ if (d.length % 2 !== 0)
349
+ d = `0${d}`;
350
+ let versionHex = version.toString(16);
351
+ if (versionHex.length === 1)
352
+ versionHex = `0${versionHex}`;
353
+ const checksumHex = c32checksum(`${versionHex}${d}`);
354
+ return `${C32[version]}${c32encode(`${d}${checksumHex}`)}`;
355
+ }
356
+ function c32checkDecode(c32data) {
357
+ const normalized = c32normalize(c32data);
358
+ const dataHex = c32decode(normalized.slice(1));
359
+ const version = C32.indexOf(normalized[0]);
360
+ const checksum = dataHex.slice(-8);
361
+ let versionHex = version.toString(16);
362
+ if (versionHex.length === 1)
363
+ versionHex = `0${versionHex}`;
364
+ if (c32checksum(`${versionHex}${dataHex.substring(0, dataHex.length - 8)}`) !== checksum) {
365
+ throw new Error("Invalid c32check string: checksum mismatch");
366
+ }
367
+ return [version, dataHex.substring(0, dataHex.length - 8)];
368
+ }
369
+ function c32address(version, hash160hex) {
370
+ if (!hash160hex.match(/^[0-9a-fA-F]{40}$/)) {
371
+ throw new Error("Invalid argument: not a hash160 hex string");
372
+ }
373
+ return `S${c32checkEncode(version, hash160hex)}`;
374
+ }
375
+ function c32addressDecode(c32addr) {
376
+ if (c32addr.length <= 5)
377
+ throw new Error("Invalid c32 address: invalid length");
378
+ if (c32addr[0] !== "S")
379
+ throw new Error('Invalid c32 address: must start with "S"');
380
+ return c32checkDecode(c32addr.slice(1));
381
+ }
382
+
383
+ // src/utils/constants.ts
384
+ var MAX_U128 = (1n << 128n) - 1n;
385
+ var MAX_I128 = (1n << 127n) - 1n;
386
+ var MIN_I128 = -(1n << 127n);
387
+ var AddressVersion = {
388
+ MainnetSingleSig: 22,
389
+ MainnetMultiSig: 20,
390
+ TestnetSingleSig: 26,
391
+ TestnetMultiSig: 21
392
+ };
393
+ var ZERO_ADDRESS = "SP000000000000000000002Q6VF78";
394
+ var TESTNET_ZERO_ADDRESS = "ST000000000000000000002AMW42H";
395
+ var MICROSTX_PER_STX = 1000000n;
396
+
397
+ // src/utils/hash.ts
398
+ var import_legacy = require("@noble/hashes/legacy.js");
399
+ var import_sha22 = require("@noble/hashes/sha2.js");
400
+ var import_sha23 = require("@noble/hashes/sha2.js");
401
+ function hash160(input) {
402
+ return import_legacy.ripemd160(import_sha22.sha256(input));
403
+ }
404
+ function txidFromBytes(data) {
405
+ return bytesToHex(import_sha23.sha512_256(data));
406
+ }
407
+ function hashP2PKH(input) {
408
+ return bytesToHex(hash160(input));
409
+ }
410
+
411
+ // src/utils/address.ts
412
+ function publicKeyToAddress(publicKey, network = "mainnet") {
413
+ const bytes = typeof publicKey === "string" ? hexToBytes(without0x(publicKey)) : publicKey;
414
+ const version = network === "mainnet" ? AddressVersion.MainnetSingleSig : AddressVersion.TestnetSingleSig;
415
+ return c32address(version, bytesToHex(hash160(bytes)));
416
+ }
417
+ var CONTRACT_NAME_REGEX = /^[a-zA-Z][a-zA-Z0-9_-]{0,127}$/;
418
+ function validateStacksAddress(address) {
419
+ try {
420
+ c32addressDecode(address);
421
+ return true;
422
+ } catch {
423
+ return false;
424
+ }
425
+ }
426
+ var isValidAddress = validateStacksAddress;
427
+ function parsePrincipal(value) {
428
+ const parts = value.split(".");
429
+ if (parts.length > 2)
430
+ return null;
431
+ const [address, contractName] = parts;
432
+ if (!validateStacksAddress(address))
433
+ return null;
434
+ if (contractName === undefined)
435
+ return { address };
436
+ if (!CONTRACT_NAME_REGEX.test(contractName))
437
+ return null;
438
+ return { address, contractName };
439
+ }
440
+ function parseContractId(contractId) {
441
+ const parsed = parsePrincipal(contractId);
442
+ if (!parsed?.contractName)
443
+ throw new Error(`Invalid contract identifier: ${contractId}`);
444
+ return [parsed.address, parsed.contractName];
445
+ }
446
+ function isClarityName(name) {
447
+ const regex = /^[a-zA-Z]([a-zA-Z0-9]|[-_!?+<>=/*])*$|^[-+=/*]$|^[<>]=?$/;
448
+ return regex.test(name) && name.length < 128;
449
+ }
450
+ function isAddressEqual(a, b) {
451
+ const [versionA, hashA] = c32addressDecode(a);
452
+ const [versionB, hashB] = c32addressDecode(b);
453
+ return versionA === versionB && hashA.toLowerCase() === hashB.toLowerCase();
454
+ }
455
+ function addressToVersion(address) {
456
+ return c32addressDecode(address)[0];
457
+ }
458
+ function getContractAddress(deployer, contractName) {
459
+ if (!validateStacksAddress(deployer)) {
460
+ throw new Error(`Invalid deployer address: ${deployer}`);
461
+ }
462
+ if (!isClarityName(contractName)) {
463
+ throw new Error(`Invalid contract name: ${contractName}`);
464
+ }
465
+ return `${deployer}.${contractName}`;
466
+ }
467
+
468
+ // src/filters/validate.ts
469
+ function assetId(value) {
470
+ assertAssetIdentifier("assetIdentifier", value);
471
+ return value;
472
+ }
473
+ function isPrincipal(value) {
474
+ return parsePrincipal(value) !== null;
475
+ }
476
+ function hasWildcard(value) {
477
+ return value.includes("*");
478
+ }
479
+ function assertPrincipalish(field, value) {
480
+ if (hasWildcard(value))
481
+ return;
482
+ if (!isPrincipal(value)) {
483
+ throw new Error(`${field} "${value}" is not a valid Stacks principal (SP…/ST…, optionally .contract-name).`);
484
+ }
485
+ }
486
+ function assertAssetIdentifier(field, value) {
487
+ if (hasWildcard(value))
488
+ return;
489
+ const [contractId, assetName, ...rest] = value.split("::");
490
+ if (!contractId || !assetName || rest.length > 0 || !contractId.includes(".") || !isPrincipal(contractId)) {
491
+ throw new Error(`${field} "${value}" is not a valid asset identifier (SP….contract-name::asset-name). Passing a bare contract id here matches zero rows — use contractId for that.`);
492
+ }
493
+ }
494
+ function assertContractId(field, value) {
495
+ if (hasWildcard(value))
496
+ return;
497
+ if (value.includes("::")) {
498
+ throw new Error(`${field} "${value}" is an asset identifier, not a contract id — use assetIdentifier for that.`);
499
+ }
500
+ if (!value.includes(".") || !isPrincipal(value)) {
501
+ throw new Error(`${field} "${value}" is not a valid contract id (SP….contract-name).`);
502
+ }
503
+ }
504
+
505
+ // src/filters/factories.ts
506
+ var PRINCIPAL_FIELDS = new Set([
507
+ "sender",
508
+ "recipient",
509
+ "caller",
510
+ "deployer",
511
+ "lockedAddress"
512
+ ]);
513
+ var AMOUNT_FIELDS = new Set(["minAmount", "maxAmount"]);
514
+ var DECORATIVE_FIELDS = new Set(["abi", "prints"]);
515
+ function specEntries(spec) {
516
+ return Object.entries(spec).filter(([key, value]) => key !== "type" && value !== undefined);
517
+ }
518
+ function validateSpec(spec) {
519
+ for (const [key, value] of specEntries(spec)) {
520
+ if (PRINCIPAL_FIELDS.has(key)) {
521
+ assertPrincipalish(key, value);
522
+ } else if (key === "assetIdentifier") {
523
+ assertAssetIdentifier(key, value);
524
+ } else if (key === "contractId") {
525
+ for (const id of Array.isArray(value) ? value : [value]) {
526
+ assertContractId(key, id);
527
+ }
528
+ }
529
+ }
530
+ }
531
+ function unsupported(surface, field, hint) {
532
+ throw new Error(`${field} cannot be expressed on ${surface} — ${hint}. Drop the field from the filter or use the surface that supports it.`);
533
+ }
534
+ function assertNoWildcards(surface, spec) {
535
+ for (const [key, value] of specEntries(spec)) {
536
+ const candidates = Array.isArray(value) ? value : [value];
537
+ for (const candidate of candidates) {
538
+ if (typeof candidate === "string" && hasWildcard(candidate)) {
539
+ unsupported(surface, `${key} wildcard "${candidate}"`, "wildcard patterns are Webhooks/Subgraphs-only");
540
+ }
541
+ }
542
+ }
543
+ }
544
+ function assertNotTraitAndContract(surface, spec) {
545
+ const trait = "trait" in spec ? spec.trait : undefined;
546
+ const contract = "contractId" in spec ? spec.contractId : undefined;
547
+ if (trait !== undefined && contract !== undefined) {
548
+ unsupported(surface, "trait with contractId", "the Index treats them as mutually exclusive — drop one, or use a subgraph source, which ANDs the pair");
549
+ }
550
+ }
551
+ function toChainTrigger(spec) {
552
+ const out = {};
553
+ for (const [key, value] of specEntries(spec)) {
554
+ if (DECORATIVE_FIELDS.has(key))
555
+ continue;
556
+ if (key === "factory") {
557
+ unsupported("Webhooks", "factory", "dynamic factory discovery is a Subgraphs-only concept — a trigger targets addresses known when it is created");
558
+ }
559
+ if (Array.isArray(value)) {
560
+ unsupported("Webhooks", `${key} set`, "a chain trigger targets ONE contract — create one subscription per contract, or use Index/Subgraphs which accept the set");
561
+ }
562
+ out[key] = typeof value === "bigint" ? value.toString() : value;
563
+ }
564
+ return { type: spec.type, ...out };
565
+ }
566
+ function toIndexParams(spec, extra = {}) {
567
+ assertNoWildcards("Index events", spec);
568
+ assertNotTraitAndContract("Index events", spec);
569
+ const out = {
570
+ eventType: spec.type === "print_event" ? "print" : spec.type
571
+ };
572
+ for (const [key, value] of specEntries(spec)) {
573
+ if (DECORATIVE_FIELDS.has(key))
574
+ continue;
575
+ if (key === "factory") {
576
+ unsupported("Index events", "factory", "dynamic factory discovery is a Subgraphs-only concept");
577
+ }
578
+ if (AMOUNT_FIELDS.has(key)) {
579
+ unsupported("Index events", key, "amount predicates are Webhooks/Subgraphs-only; filter client-side on the decoded rows");
580
+ }
581
+ if (key === "topic") {
582
+ unsupported("Index events", "topic", "per-topic reads are Subgraphs/Webhooks-only (or read the contract's print feed and switch on topic)");
583
+ }
584
+ if (key === "lockedAddress") {
585
+ out.sender = value;
586
+ continue;
587
+ }
588
+ if (key === "caller" && spec.type !== "nested_contract_call") {
589
+ unsupported("Index events", "caller", "outer contract-call fields live on index.contractCalls");
590
+ }
591
+ out[key] = value;
592
+ }
593
+ return { ...out, ...extra };
594
+ }
595
+ var VM_MEMBERS = new Set([
596
+ "nested_contract_call",
597
+ "var_set",
598
+ "map_set",
599
+ "map_insert",
600
+ "map_delete"
601
+ ]);
602
+ var VM_INDEX_ONLY_FIELDS = new Set([
603
+ "functionName",
604
+ "caller",
605
+ "sender",
606
+ "map",
607
+ "varName"
608
+ ]);
609
+ function toStreamsParams(spec, extra = {}) {
610
+ assertNoWildcards("Streams", spec);
611
+ const out = {
612
+ types: [spec.type === "print_event" ? "print" : spec.type]
613
+ };
614
+ const isVm = VM_MEMBERS.has(spec.type);
615
+ if (isVm)
616
+ out.clock = "vm";
617
+ for (const [key, value] of specEntries(spec)) {
618
+ if (DECORATIVE_FIELDS.has(key))
619
+ continue;
620
+ if (isVm && VM_INDEX_ONLY_FIELDS.has(key)) {
621
+ unsupported("Streams", key, "vm payload predicates are Index/Subgraphs/Subscriptions-only; Streams clock=vm narrows by types and contractId");
622
+ }
623
+ if (key === "factory") {
624
+ unsupported("Streams", "factory", "dynamic factory discovery is a Subgraphs-only concept");
625
+ }
626
+ if (AMOUNT_FIELDS.has(key)) {
627
+ unsupported("Streams", key, "amount predicates are Webhooks/Subgraphs-only");
628
+ }
629
+ if (key === "trait") {
630
+ unsupported("Streams", "trait", "Streams has no trait resolution — Index and Subgraphs do");
631
+ }
632
+ if (key === "topic") {
633
+ unsupported("Streams", "topic", "per-topic filtering is Subgraphs/Webhooks-only");
634
+ }
635
+ if (key === "lockedAddress") {
636
+ unsupported("Streams", "lockedAddress", "stx_lock address filtering is Webhooks/Subgraphs-only");
637
+ }
638
+ out[key] = value;
639
+ }
640
+ return { ...out, ...extra };
641
+ }
642
+ function toContractCallsParams(spec, extra = {}) {
643
+ assertNoWildcards("Index contract-calls", spec);
644
+ assertNotTraitAndContract("Index contract-calls", spec);
645
+ const out = {};
646
+ for (const [key, value] of specEntries(spec)) {
647
+ if (DECORATIVE_FIELDS.has(key))
648
+ continue;
649
+ if (key === "factory") {
650
+ unsupported("Index contract-calls", "factory", "dynamic factory discovery is a Subgraphs-only concept");
651
+ }
652
+ if (key === "caller") {
653
+ out.sender = value;
654
+ continue;
655
+ }
656
+ out[key] = value;
657
+ }
658
+ return { ...out, ...extra };
659
+ }
660
+ function toSubgraphSource(spec) {
661
+ return Object.fromEntries([
662
+ ["type", spec.type],
663
+ ...specEntries(spec)
664
+ ]);
665
+ }
666
+ var DECODED_MEMBERS = new Set([
667
+ "stx_transfer",
668
+ "stx_mint",
669
+ "stx_burn",
670
+ "stx_lock",
671
+ "ft_transfer",
672
+ "ft_mint",
673
+ "ft_burn",
674
+ "nft_transfer",
675
+ "nft_mint",
676
+ "nft_burn",
677
+ "print_event"
678
+ ]);
679
+ function makeChainEventFilter(type, fields) {
680
+ const spec = { type, ...fields };
681
+ validateSpec(spec);
682
+ const filter = { ...spec };
683
+ filter.toChainTrigger = () => toChainTrigger(spec);
684
+ if (DECODED_MEMBERS.has(type) || VM_MEMBERS.has(type)) {
685
+ filter.toIndexParams = (extra) => toIndexParams(spec, extra);
686
+ filter.toStreamsParams = (extra) => toStreamsParams(spec, extra);
687
+ }
688
+ if (type === "contract_call") {
689
+ filter.toContractCallsParams = (extra) => toContractCallsParams(spec, extra);
690
+ }
691
+ if (!type.startsWith("sbtc_")) {
692
+ filter.toSubgraphSource = () => toSubgraphSource(spec);
693
+ }
694
+ return filter;
695
+ }
696
+ function fromSubgraphSource(source) {
697
+ const { type, ...fields } = source;
698
+ return makeChainEventFilter(type, fields);
699
+ }
700
+ var on = {
701
+ stxTransfer: (fields = {}) => makeChainEventFilter("stx_transfer", fields),
702
+ stxMint: (fields = {}) => makeChainEventFilter("stx_mint", fields),
703
+ stxBurn: (fields = {}) => makeChainEventFilter("stx_burn", fields),
704
+ stxLock: (fields = {}) => makeChainEventFilter("stx_lock", fields),
705
+ ftTransfer: (fields = {}) => makeChainEventFilter("ft_transfer", fields),
706
+ ftMint: (fields = {}) => makeChainEventFilter("ft_mint", fields),
707
+ ftBurn: (fields = {}) => makeChainEventFilter("ft_burn", fields),
708
+ nftTransfer: (fields = {}) => makeChainEventFilter("nft_transfer", fields),
709
+ nftMint: (fields = {}) => makeChainEventFilter("nft_mint", fields),
710
+ nftBurn: (fields = {}) => makeChainEventFilter("nft_burn", fields),
711
+ contractCall: (fields = {}) => makeChainEventFilter("contract_call", fields),
712
+ contractDeploy: (fields = {}) => makeChainEventFilter("contract_deploy", fields),
713
+ print: (fields = {}) => makeChainEventFilter("print_event", fields),
714
+ nestedCall: (fields = {}) => makeChainEventFilter("nested_contract_call", fields),
715
+ varSet: (fields = {}) => makeChainEventFilter("var_set", fields),
716
+ mapSet: (fields = {}) => makeChainEventFilter("map_set", fields),
717
+ mapInsert: (fields = {}) => makeChainEventFilter("map_insert", fields),
718
+ mapDelete: (fields = {}) => makeChainEventFilter("map_delete", fields),
719
+ sbtcDeposit: (fields = {}) => makeChainEventFilter("sbtc_deposit", fields),
720
+ sbtcWithdrawalCreate: (fields = {}) => makeChainEventFilter("sbtc_withdrawal_create", fields),
721
+ sbtcWithdrawalAccept: (fields = {}) => makeChainEventFilter("sbtc_withdrawal_accept", fields),
722
+ sbtcWithdrawalReject: (fields = {}) => makeChainEventFilter("sbtc_withdrawal_reject", fields),
723
+ sbtcWithdrawalSweptConfirmed: (fields = {}) => makeChainEventFilter("sbtc_withdrawal_swept_confirmed", fields)
724
+ };
725
+
726
+ //# debugId=595EBA32B5604B7664756E2164756E21
3
727
  //# sourceMappingURL=index.cjs.map