@shroud-fi/transport 0.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 (79) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +55 -0
  3. package/dist/cjs/abis.d.ts +446 -0
  4. package/dist/cjs/abis.d.ts.map +1 -0
  5. package/dist/cjs/abis.js +287 -0
  6. package/dist/cjs/abis.js.map +1 -0
  7. package/dist/cjs/addresses.d.ts +38 -0
  8. package/dist/cjs/addresses.d.ts.map +1 -0
  9. package/dist/cjs/addresses.js +43 -0
  10. package/dist/cjs/addresses.js.map +1 -0
  11. package/dist/cjs/chains.d.ts +2 -0
  12. package/dist/cjs/chains.d.ts.map +1 -0
  13. package/dist/cjs/chains.js +7 -0
  14. package/dist/cjs/chains.js.map +1 -0
  15. package/dist/cjs/create.d.ts +3 -0
  16. package/dist/cjs/create.d.ts.map +1 -0
  17. package/dist/cjs/create.js +18 -0
  18. package/dist/cjs/create.js.map +1 -0
  19. package/dist/cjs/deployments-helpers.d.ts +54 -0
  20. package/dist/cjs/deployments-helpers.d.ts.map +1 -0
  21. package/dist/cjs/deployments-helpers.js +99 -0
  22. package/dist/cjs/deployments-helpers.js.map +1 -0
  23. package/dist/cjs/deployments.d.ts +35 -0
  24. package/dist/cjs/deployments.d.ts.map +1 -0
  25. package/dist/cjs/deployments.js +78 -0
  26. package/dist/cjs/deployments.js.map +1 -0
  27. package/dist/cjs/errors.d.ts +9 -0
  28. package/dist/cjs/errors.d.ts.map +1 -0
  29. package/dist/cjs/errors.js +18 -0
  30. package/dist/cjs/errors.js.map +1 -0
  31. package/dist/cjs/index.d.ts +10 -0
  32. package/dist/cjs/index.d.ts.map +1 -0
  33. package/dist/cjs/index.js +45 -0
  34. package/dist/cjs/index.js.map +1 -0
  35. package/dist/cjs/package.json +1 -0
  36. package/dist/cjs/types.d.ts +17 -0
  37. package/dist/cjs/types.d.ts.map +1 -0
  38. package/dist/cjs/types.js +3 -0
  39. package/dist/cjs/types.js.map +1 -0
  40. package/dist/esm/abis.d.ts +446 -0
  41. package/dist/esm/abis.d.ts.map +1 -0
  42. package/dist/esm/abis.js +284 -0
  43. package/dist/esm/abis.js.map +1 -0
  44. package/dist/esm/addresses.d.ts +38 -0
  45. package/dist/esm/addresses.d.ts.map +1 -0
  46. package/dist/esm/addresses.js +40 -0
  47. package/dist/esm/addresses.js.map +1 -0
  48. package/dist/esm/chains.d.ts +2 -0
  49. package/dist/esm/chains.d.ts.map +1 -0
  50. package/dist/esm/chains.js +2 -0
  51. package/dist/esm/chains.js.map +1 -0
  52. package/dist/esm/create.d.ts +3 -0
  53. package/dist/esm/create.d.ts.map +1 -0
  54. package/dist/esm/create.js +15 -0
  55. package/dist/esm/create.js.map +1 -0
  56. package/dist/esm/deployments-helpers.d.ts +54 -0
  57. package/dist/esm/deployments-helpers.d.ts.map +1 -0
  58. package/dist/esm/deployments-helpers.js +85 -0
  59. package/dist/esm/deployments-helpers.js.map +1 -0
  60. package/dist/esm/deployments.d.ts +35 -0
  61. package/dist/esm/deployments.d.ts.map +1 -0
  62. package/dist/esm/deployments.js +75 -0
  63. package/dist/esm/deployments.js.map +1 -0
  64. package/dist/esm/errors.d.ts +9 -0
  65. package/dist/esm/errors.d.ts.map +1 -0
  66. package/dist/esm/errors.js +13 -0
  67. package/dist/esm/errors.js.map +1 -0
  68. package/dist/esm/index.d.ts +10 -0
  69. package/dist/esm/index.d.ts.map +1 -0
  70. package/dist/esm/index.js +8 -0
  71. package/dist/esm/index.js.map +1 -0
  72. package/dist/esm/types.d.ts +17 -0
  73. package/dist/esm/types.d.ts.map +1 -0
  74. package/dist/esm/types.js +2 -0
  75. package/dist/esm/types.js.map +1 -0
  76. package/dist/tsconfig.cjs.tsbuildinfo +1 -0
  77. package/dist/tsconfig.esm.tsbuildinfo +1 -0
  78. package/dist/tsconfig.tsbuildinfo +1 -0
  79. package/package.json +55 -0
@@ -0,0 +1,287 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ERC6538RegistryAbi = exports.ShroudFiRelayerAbi = exports.ERC20Abi = exports.USDCAuthorizationAbi = exports.ShroudFiStealthAbi = exports.ERC5564AnnouncerAbi = void 0;
4
+ exports.ERC5564AnnouncerAbi = [
5
+ {
6
+ type: 'function',
7
+ name: 'announce',
8
+ inputs: [
9
+ { name: 'schemeId', type: 'uint256' },
10
+ { name: 'stealthAddress', type: 'address' },
11
+ { name: 'ephemeralPubKey', type: 'bytes' },
12
+ { name: 'metadata', type: 'bytes' },
13
+ ],
14
+ outputs: [],
15
+ stateMutability: 'nonpayable',
16
+ },
17
+ {
18
+ type: 'event',
19
+ name: 'Announcement',
20
+ inputs: [
21
+ { name: 'schemeId', type: 'uint256', indexed: true },
22
+ { name: 'stealthAddress', type: 'address', indexed: true },
23
+ { name: 'caller', type: 'address', indexed: true },
24
+ { name: 'ephemeralPubKey', type: 'bytes', indexed: false },
25
+ { name: 'metadata', type: 'bytes', indexed: false },
26
+ ],
27
+ },
28
+ ];
29
+ exports.ShroudFiStealthAbi = [
30
+ {
31
+ type: 'function',
32
+ name: 'sendETH',
33
+ inputs: [
34
+ { name: 'stealthAddress', type: 'address' },
35
+ { name: 'ephemeralPubKey', type: 'bytes' },
36
+ { name: 'viewTag', type: 'bytes1' },
37
+ ],
38
+ outputs: [],
39
+ stateMutability: 'payable',
40
+ },
41
+ {
42
+ type: 'function',
43
+ name: 'sendERC20',
44
+ inputs: [
45
+ { name: 'stealthAddress', type: 'address' },
46
+ { name: 'token', type: 'address' },
47
+ { name: 'amount', type: 'uint256' },
48
+ { name: 'ephemeralPubKey', type: 'bytes' },
49
+ { name: 'viewTag', type: 'bytes1' },
50
+ ],
51
+ outputs: [],
52
+ stateMutability: 'nonpayable',
53
+ },
54
+ {
55
+ type: 'function',
56
+ name: 'ANNOUNCER',
57
+ inputs: [],
58
+ outputs: [{ name: '', type: 'address' }],
59
+ stateMutability: 'view',
60
+ },
61
+ {
62
+ type: 'function',
63
+ name: 'SCHEME_ID',
64
+ inputs: [],
65
+ outputs: [{ name: '', type: 'uint256' }],
66
+ stateMutability: 'view',
67
+ },
68
+ {
69
+ type: 'function',
70
+ name: 'ETH_TOKEN_ADDRESS',
71
+ inputs: [],
72
+ outputs: [{ name: '', type: 'address' }],
73
+ stateMutability: 'view',
74
+ },
75
+ {
76
+ type: 'event',
77
+ name: 'StealthPayment',
78
+ inputs: [
79
+ { name: 'stealthAddress', type: 'address', indexed: true },
80
+ { name: 'token', type: 'address', indexed: true },
81
+ { name: 'amount', type: 'uint256', indexed: false },
82
+ ],
83
+ },
84
+ { type: 'error', name: 'ZeroAddress', inputs: [] },
85
+ { type: 'error', name: 'ZeroAmount', inputs: [] },
86
+ { type: 'error', name: 'InsufficientETH', inputs: [] },
87
+ { type: 'error', name: 'ETHTransferFailed', inputs: [] },
88
+ ];
89
+ /**
90
+ * Minimal ABI for USDC's EIP-3009 `transferWithAuthorization`. Pulled out as
91
+ * a separate constant because not every ERC-20 supports it — only Circle's
92
+ * USDC contract and a handful of other authorization-capable tokens. Use
93
+ * `USDC_BY_CHAIN[chainId]` to address the right deployment.
94
+ *
95
+ * The `authorizationState` view is included so callers can confirm a nonce
96
+ * has not already been consumed before submitting.
97
+ */
98
+ exports.USDCAuthorizationAbi = [
99
+ {
100
+ type: 'function',
101
+ name: 'transferWithAuthorization',
102
+ inputs: [
103
+ { name: 'from', type: 'address' },
104
+ { name: 'to', type: 'address' },
105
+ { name: 'value', type: 'uint256' },
106
+ { name: 'validAfter', type: 'uint256' },
107
+ { name: 'validBefore', type: 'uint256' },
108
+ { name: 'nonce', type: 'bytes32' },
109
+ { name: 'v', type: 'uint8' },
110
+ { name: 'r', type: 'bytes32' },
111
+ { name: 's', type: 'bytes32' },
112
+ ],
113
+ outputs: [],
114
+ stateMutability: 'nonpayable',
115
+ },
116
+ {
117
+ type: 'function',
118
+ name: 'authorizationState',
119
+ inputs: [
120
+ { name: 'authorizer', type: 'address' },
121
+ { name: 'nonce', type: 'bytes32' },
122
+ ],
123
+ outputs: [{ name: '', type: 'bool' }],
124
+ stateMutability: 'view',
125
+ },
126
+ {
127
+ type: 'event',
128
+ name: 'AuthorizationUsed',
129
+ inputs: [
130
+ { name: 'authorizer', type: 'address', indexed: true },
131
+ { name: 'nonce', type: 'bytes32', indexed: true },
132
+ ],
133
+ },
134
+ ];
135
+ exports.ERC20Abi = [
136
+ {
137
+ type: 'function',
138
+ name: 'balanceOf',
139
+ inputs: [{ name: 'account', type: 'address' }],
140
+ outputs: [{ name: '', type: 'uint256' }],
141
+ stateMutability: 'view',
142
+ },
143
+ {
144
+ type: 'function',
145
+ name: 'transfer',
146
+ inputs: [
147
+ { name: 'to', type: 'address' },
148
+ { name: 'amount', type: 'uint256' },
149
+ ],
150
+ outputs: [{ name: '', type: 'bool' }],
151
+ stateMutability: 'nonpayable',
152
+ },
153
+ {
154
+ type: 'function',
155
+ name: 'approve',
156
+ inputs: [
157
+ { name: 'spender', type: 'address' },
158
+ { name: 'amount', type: 'uint256' },
159
+ ],
160
+ outputs: [{ name: '', type: 'bool' }],
161
+ stateMutability: 'nonpayable',
162
+ },
163
+ {
164
+ type: 'function',
165
+ name: 'allowance',
166
+ inputs: [
167
+ { name: 'owner', type: 'address' },
168
+ { name: 'spender', type: 'address' },
169
+ ],
170
+ outputs: [{ name: '', type: 'uint256' }],
171
+ stateMutability: 'view',
172
+ },
173
+ ];
174
+ exports.ShroudFiRelayerAbi = [
175
+ {
176
+ type: 'function',
177
+ name: 'sweepERC20WithPermit',
178
+ inputs: [
179
+ { name: 'token', type: 'address' },
180
+ { name: 'destination', type: 'address' },
181
+ { name: 'deadline', type: 'uint256' },
182
+ { name: 'v', type: 'uint8' },
183
+ { name: 'r', type: 'bytes32' },
184
+ { name: 's', type: 'bytes32' },
185
+ ],
186
+ outputs: [],
187
+ stateMutability: 'nonpayable',
188
+ },
189
+ {
190
+ type: 'function',
191
+ name: 'previewFee',
192
+ inputs: [{ name: 'grossAmount', type: 'uint256' }],
193
+ outputs: [
194
+ { name: 'fee', type: 'uint256' },
195
+ { name: 'net', type: 'uint256' },
196
+ ],
197
+ stateMutability: 'view',
198
+ },
199
+ {
200
+ type: 'function',
201
+ name: 'FEE_BPS',
202
+ inputs: [],
203
+ outputs: [{ name: '', type: 'uint16' }],
204
+ stateMutability: 'view',
205
+ },
206
+ {
207
+ type: 'function',
208
+ name: 'BPS_DENOMINATOR',
209
+ inputs: [],
210
+ outputs: [{ name: '', type: 'uint16' }],
211
+ stateMutability: 'view',
212
+ },
213
+ {
214
+ type: 'function',
215
+ name: 'TREASURY',
216
+ inputs: [],
217
+ outputs: [{ name: '', type: 'address' }],
218
+ stateMutability: 'view',
219
+ },
220
+ {
221
+ type: 'function',
222
+ name: 'treasury',
223
+ inputs: [],
224
+ outputs: [{ name: '', type: 'address' }],
225
+ stateMutability: 'view',
226
+ },
227
+ {
228
+ type: 'function',
229
+ name: 'trustedForwarder',
230
+ inputs: [],
231
+ outputs: [{ name: '', type: 'address' }],
232
+ stateMutability: 'view',
233
+ },
234
+ {
235
+ type: 'function',
236
+ name: 'isTrustedForwarder',
237
+ inputs: [{ name: 'forwarder', type: 'address' }],
238
+ outputs: [{ name: '', type: 'bool' }],
239
+ stateMutability: 'view',
240
+ },
241
+ {
242
+ type: 'event',
243
+ name: 'SweepRelayed',
244
+ inputs: [
245
+ { name: 'stealthAddress', type: 'address', indexed: true },
246
+ { name: 'token', type: 'address', indexed: true },
247
+ { name: 'destination', type: 'address', indexed: false },
248
+ { name: 'grossAmount', type: 'uint256', indexed: false },
249
+ { name: 'feeAmount', type: 'uint256', indexed: false },
250
+ ],
251
+ },
252
+ { type: 'error', name: 'InvalidToken', inputs: [] },
253
+ { type: 'error', name: 'InvalidDestination', inputs: [] },
254
+ { type: 'error', name: 'ZeroBalance', inputs: [] },
255
+ { type: 'error', name: 'PermitFailedAndNoAllowance', inputs: [] },
256
+ { type: 'error', name: 'TransferFailed', inputs: [] },
257
+ ];
258
+ exports.ERC6538RegistryAbi = [
259
+ {
260
+ type: 'function',
261
+ name: 'registerKeys',
262
+ inputs: [
263
+ { name: 'schemeId', type: 'uint256' },
264
+ { name: 'stealthMetaAddress', type: 'bytes' },
265
+ ],
266
+ outputs: [],
267
+ stateMutability: 'nonpayable',
268
+ },
269
+ {
270
+ type: 'function',
271
+ name: 'stealthMetaAddressOf',
272
+ inputs: [
273
+ { name: 'registrant', type: 'address' },
274
+ { name: 'schemeId', type: 'uint256' },
275
+ ],
276
+ outputs: [{ name: '', type: 'bytes' }],
277
+ stateMutability: 'view',
278
+ },
279
+ {
280
+ type: 'function',
281
+ name: 'incrementNonce',
282
+ inputs: [{ name: 'schemeId', type: 'uint256' }],
283
+ outputs: [],
284
+ stateMutability: 'nonpayable',
285
+ },
286
+ ];
287
+ //# sourceMappingURL=abis.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"abis.js","sourceRoot":"","sources":["../../src/abis.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ import type { Address } from 'viem';
2
+ /** Canonical ERC-5564 stealth announcement contract — same address every EVM chain (CREATE2). */
3
+ export declare const ERC5564_ANNOUNCER: "0x55649E01B5Df198D18D95b5cc5051630cfD45564";
4
+ /** Canonical ERC-6538 stealth meta-address registry — same address every EVM chain (CREATE2). */
5
+ export declare const ERC6538_REGISTRY: "0x6538E6bf4B0eBd30A8Ea093027Ac2422ce5d6538";
6
+ /**
7
+ * Canonical USDC (Circle-issued) contract addresses, keyed by chain id.
8
+ *
9
+ * Per-chain because USDC is NOT CREATE2-deterministic across chains — Circle
10
+ * deploys a native contract per network with a different address each time.
11
+ *
12
+ * Coverage (P6 v1):
13
+ * - 8453 Base mainnet — Circle-native USDC
14
+ * - 84532 Base Sepolia — Circle-native testnet USDC
15
+ *
16
+ * Both addresses verified against Circle's official deployment registry on
17
+ * 2026-06-03. Adding new chains: confirm via https://developers.circle.com/
18
+ * stablecoin/docs/usdc-on-other-chains before extending this map.
19
+ *
20
+ * Both contracts implement EIP-3009 `transferWithAuthorization` (the signing
21
+ * primitive x402's `exact` scheme depends on) AND EIP-2612 `permit` (the
22
+ * signing primitive `ShroudFiRelayer` uses). Either path drives sweeps for
23
+ * USDC stealth payments — see `@shroud-fi/payments` for the dispatch logic.
24
+ */
25
+ export declare const USDC_BY_CHAIN: Readonly<Record<number, Address>>;
26
+ /**
27
+ * EIP-712 domain metadata for USDC per chain. Required for client agents
28
+ * signing `TransferWithAuthorization` against the correct domain separator.
29
+ *
30
+ * USDC on Base mainnet + Sepolia both use the same domain shape (Circle's
31
+ * standard issuance contract). Other chains MAY differ — re-verify before
32
+ * extending.
33
+ */
34
+ export declare const USDC_EIP712_DOMAIN_BY_CHAIN: Readonly<Record<number, {
35
+ readonly name: string;
36
+ readonly version: string;
37
+ }>>;
38
+ //# sourceMappingURL=addresses.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"addresses.d.ts","sourceRoot":"","sources":["../../src/addresses.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAEpC,iGAAiG;AACjG,eAAO,MAAM,iBAAiB,EAAG,4CAAqD,CAAC;AAEvF,iGAAiG;AACjG,eAAO,MAAM,gBAAgB,EAAG,4CAAqD,CAAC;AAEtF;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,aAAa,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAGjD,CAAC;AAEZ;;;;;;;GAOG;AACH,eAAO,MAAM,2BAA2B,EAAE,QAAQ,CAChD,MAAM,CAAC,MAAM,EAAE;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAI1D,CAAC"}
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.USDC_EIP712_DOMAIN_BY_CHAIN = exports.USDC_BY_CHAIN = exports.ERC6538_REGISTRY = exports.ERC5564_ANNOUNCER = void 0;
4
+ /** Canonical ERC-5564 stealth announcement contract — same address every EVM chain (CREATE2). */
5
+ exports.ERC5564_ANNOUNCER = '0x55649E01B5Df198D18D95b5cc5051630cfD45564';
6
+ /** Canonical ERC-6538 stealth meta-address registry — same address every EVM chain (CREATE2). */
7
+ exports.ERC6538_REGISTRY = '0x6538E6bf4B0eBd30A8Ea093027Ac2422ce5d6538';
8
+ /**
9
+ * Canonical USDC (Circle-issued) contract addresses, keyed by chain id.
10
+ *
11
+ * Per-chain because USDC is NOT CREATE2-deterministic across chains — Circle
12
+ * deploys a native contract per network with a different address each time.
13
+ *
14
+ * Coverage (P6 v1):
15
+ * - 8453 Base mainnet — Circle-native USDC
16
+ * - 84532 Base Sepolia — Circle-native testnet USDC
17
+ *
18
+ * Both addresses verified against Circle's official deployment registry on
19
+ * 2026-06-03. Adding new chains: confirm via https://developers.circle.com/
20
+ * stablecoin/docs/usdc-on-other-chains before extending this map.
21
+ *
22
+ * Both contracts implement EIP-3009 `transferWithAuthorization` (the signing
23
+ * primitive x402's `exact` scheme depends on) AND EIP-2612 `permit` (the
24
+ * signing primitive `ShroudFiRelayer` uses). Either path drives sweeps for
25
+ * USDC stealth payments — see `@shroud-fi/payments` for the dispatch logic.
26
+ */
27
+ exports.USDC_BY_CHAIN = Object.freeze({
28
+ 8453: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913',
29
+ 84532: '0x036CbD53842c5426634e7929541eC2318f3dCF7e',
30
+ });
31
+ /**
32
+ * EIP-712 domain metadata for USDC per chain. Required for client agents
33
+ * signing `TransferWithAuthorization` against the correct domain separator.
34
+ *
35
+ * USDC on Base mainnet + Sepolia both use the same domain shape (Circle's
36
+ * standard issuance contract). Other chains MAY differ — re-verify before
37
+ * extending.
38
+ */
39
+ exports.USDC_EIP712_DOMAIN_BY_CHAIN = Object.freeze({
40
+ 8453: Object.freeze({ name: 'USD Coin', version: '2' }),
41
+ 84532: Object.freeze({ name: 'USDC', version: '2' }),
42
+ });
43
+ //# sourceMappingURL=addresses.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"addresses.js","sourceRoot":"","sources":["../../src/addresses.ts"],"names":[],"mappings":";;;AAEA,iGAAiG;AACpF,QAAA,iBAAiB,GAAG,4CAAqD,CAAC;AAEvF,iGAAiG;AACpF,QAAA,gBAAgB,GAAG,4CAAqD,CAAC;AAEtF;;;;;;;;;;;;;;;;;;GAkBG;AACU,QAAA,aAAa,GAAsC,MAAM,CAAC,MAAM,CAAC;IAC5E,IAAI,EAAE,4CAA4C;IAClD,KAAK,EAAE,4CAA4C;CAC3C,CAAC,CAAC;AAEZ;;;;;;;GAOG;AACU,QAAA,2BAA2B,GAEpC,MAAM,CAAC,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;IACvD,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;CAC5C,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { base, baseSepolia } from 'viem/chains';
2
+ //# sourceMappingURL=chains.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chains.d.ts","sourceRoot":"","sources":["../../src/chains.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.baseSepolia = exports.base = void 0;
4
+ var chains_1 = require("viem/chains");
5
+ Object.defineProperty(exports, "base", { enumerable: true, get: function () { return chains_1.base; } });
6
+ Object.defineProperty(exports, "baseSepolia", { enumerable: true, get: function () { return chains_1.baseSepolia; } });
7
+ //# sourceMappingURL=chains.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chains.js","sourceRoot":"","sources":["../../src/chains.ts"],"names":[],"mappings":";;;AAAA,sCAAgD;AAAvC,8FAAA,IAAI,OAAA;AAAE,qGAAA,WAAW,OAAA"}
@@ -0,0 +1,3 @@
1
+ import type { ShroudFiTransport, ShroudFiTransportConfig } from './types.js';
2
+ export declare function createTransport(config: ShroudFiTransportConfig): ShroudFiTransport;
3
+ //# sourceMappingURL=create.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../src/create.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAE7E,wBAAgB,eAAe,CAAC,MAAM,EAAE,uBAAuB,GAAG,iBAAiB,CAalF"}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createTransport = createTransport;
4
+ const viem_1 = require("viem");
5
+ const chains_1 = require("viem/chains");
6
+ const accounts_1 = require("viem/accounts");
7
+ function createTransport(config) {
8
+ const chain = config.chain === 'base' ? chains_1.base : chains_1.baseSepolia;
9
+ const transport = config.rpcUrl ? (0, viem_1.http)(config.rpcUrl) : (0, viem_1.http)();
10
+ const publicClient = (0, viem_1.createPublicClient)({ chain, transport });
11
+ let walletClient;
12
+ if (config.privateKey) {
13
+ const account = (0, accounts_1.privateKeyToAccount)(config.privateKey);
14
+ walletClient = (0, viem_1.createWalletClient)({ account, chain, transport });
15
+ }
16
+ return { publicClient, walletClient, chain };
17
+ }
18
+ //# sourceMappingURL=create.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create.js","sourceRoot":"","sources":["../../src/create.ts"],"names":[],"mappings":";;AAKA,0CAaC;AAlBD,+BAAgF;AAChF,wCAAgD;AAChD,4CAAoD;AAGpD,SAAgB,eAAe,CAAC,MAA+B;IAC7D,MAAM,KAAK,GAAU,MAAM,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,aAAI,CAAC,CAAC,CAAC,oBAAW,CAAC;IAClE,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAA,WAAI,EAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAA,WAAI,GAAE,CAAC;IAE/D,MAAM,YAAY,GAAG,IAAA,yBAAkB,EAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;IAE9D,IAAI,YAA+C,CAAC;IACpD,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;QACtB,MAAM,OAAO,GAAG,IAAA,8BAAmB,EAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACvD,YAAY,GAAG,IAAA,yBAAkB,EAAC,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;IACnE,CAAC;IAED,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,KAAK,EAAuB,CAAC;AACpE,CAAC"}
@@ -0,0 +1,54 @@
1
+ import type { Address } from 'viem';
2
+ import type { DeploymentManifest } from './deployments.js';
3
+ export declare function getShroudFiStealth(chainId: number): Address;
4
+ export declare function getShroudFiRegistrar(chainId: number): Address;
5
+ /**
6
+ * MockERC20 lookup. Returns undefined for chains that don't carry one
7
+ * (e.g. mainnet — mocks are testnet-only).
8
+ */
9
+ export declare function getMockERC20(chainId: number): Address | undefined;
10
+ /**
11
+ * ShroudFiRelayer lookup. Returns undefined for chains where the relayer
12
+ * contract has not yet been deployed (e.g. before Wave 3 populates the manifest).
13
+ */
14
+ export declare function getRelayer(chainId: number): Address | undefined;
15
+ /**
16
+ * ShroudFiEthRelayer (P5.1) lookup. Returns undefined for chains where the
17
+ * EIP-7702 ETH gasless sweep contract has not yet been deployed.
18
+ */
19
+ export declare function getEthRelayer(chainId: number): Address | undefined;
20
+ /**
21
+ * MockERC20Permit lookup — the permit-capable ERC-20 mock used by the demo
22
+ * for both direct sweep AND gasless sweep paths. The original MockERC20
23
+ * (non-permit) remains in the manifest as a backward-compatibility entry
24
+ * but new code paths should prefer this one.
25
+ *
26
+ * Returns undefined for chains that don't carry a deployment (mainnet etc.).
27
+ */
28
+ export declare function getMockERC20Permit(chainId: number): Address | undefined;
29
+ /**
30
+ * Canonical USDC (Circle-issued) address lookup. Returns undefined for any
31
+ * chain not in the supported allowlist — callers should treat undefined as
32
+ * "USDC not available on this chain" and surface a clear error, NOT fall back
33
+ * to a zero address or a non-Circle token.
34
+ */
35
+ export declare function getUSDC(chainId: number): Address | undefined;
36
+ /**
37
+ * EIP-712 domain metadata (`name`, `version`) for USDC on a given chain.
38
+ * Required to sign `TransferWithAuthorization` for x402's `exact` scheme and
39
+ * for `ShroudFiRelayer` ERC-20 permit-based gasless sweeps.
40
+ *
41
+ * Returns undefined when USDC is not supported on the chain.
42
+ */
43
+ export declare function getUSDCDomain(chainId: number): {
44
+ readonly name: string;
45
+ readonly version: string;
46
+ } | undefined;
47
+ /**
48
+ * Boolean check — is USDC available (and supported by this SDK) on this chain?
49
+ */
50
+ export declare function hasUSDC(chainId: number): boolean;
51
+ export declare function getDeployment(chainId: number): DeploymentManifest;
52
+ export declare function hasDeployment(chainId: number): boolean;
53
+ export declare function listDeployedChains(): readonly number[];
54
+ //# sourceMappingURL=deployments-helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deployments-helpers.d.ts","sourceRoot":"","sources":["../../src/deployments-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAUpC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAI3D,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAI3D;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAI7D;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAEjE;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAE/D;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAElE;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAEvE;AAED;;;;;GAKG;AACH,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAE5D;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,MAAM,GACd;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAEjE;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAEhD;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,kBAAkB,CAIjE;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAEtD;AAED,wBAAgB,kBAAkB,IAAI,SAAS,MAAM,EAAE,CAEtD"}
@@ -0,0 +1,99 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getShroudFiStealth = getShroudFiStealth;
4
+ exports.getShroudFiRegistrar = getShroudFiRegistrar;
5
+ exports.getMockERC20 = getMockERC20;
6
+ exports.getRelayer = getRelayer;
7
+ exports.getEthRelayer = getEthRelayer;
8
+ exports.getMockERC20Permit = getMockERC20Permit;
9
+ exports.getUSDC = getUSDC;
10
+ exports.getUSDCDomain = getUSDCDomain;
11
+ exports.hasUSDC = hasUSDC;
12
+ exports.getDeployment = getDeployment;
13
+ exports.hasDeployment = hasDeployment;
14
+ exports.listDeployedChains = listDeployedChains;
15
+ const deployments_js_1 = require("./deployments.js");
16
+ const addresses_js_1 = require("./addresses.js");
17
+ const errors_js_1 = require("./errors.js");
18
+ function getShroudFiStealth(chainId) {
19
+ const a = deployments_js_1.SHROUDFI_STEALTH_BY_CHAIN[chainId];
20
+ if (!a)
21
+ throw new errors_js_1.UnknownChainError(chainId);
22
+ return a;
23
+ }
24
+ function getShroudFiRegistrar(chainId) {
25
+ const a = deployments_js_1.SHROUDFI_REGISTRAR_BY_CHAIN[chainId];
26
+ if (!a)
27
+ throw new errors_js_1.UnknownChainError(chainId);
28
+ return a;
29
+ }
30
+ /**
31
+ * MockERC20 lookup. Returns undefined for chains that don't carry one
32
+ * (e.g. mainnet — mocks are testnet-only).
33
+ */
34
+ function getMockERC20(chainId) {
35
+ return deployments_js_1.MOCK_ERC20_BY_CHAIN[chainId];
36
+ }
37
+ /**
38
+ * ShroudFiRelayer lookup. Returns undefined for chains where the relayer
39
+ * contract has not yet been deployed (e.g. before Wave 3 populates the manifest).
40
+ */
41
+ function getRelayer(chainId) {
42
+ return deployments_js_1.SHROUDFI_RELAYER_BY_CHAIN[chainId];
43
+ }
44
+ /**
45
+ * ShroudFiEthRelayer (P5.1) lookup. Returns undefined for chains where the
46
+ * EIP-7702 ETH gasless sweep contract has not yet been deployed.
47
+ */
48
+ function getEthRelayer(chainId) {
49
+ return deployments_js_1.SHROUDFI_ETH_RELAYER_BY_CHAIN[chainId];
50
+ }
51
+ /**
52
+ * MockERC20Permit lookup — the permit-capable ERC-20 mock used by the demo
53
+ * for both direct sweep AND gasless sweep paths. The original MockERC20
54
+ * (non-permit) remains in the manifest as a backward-compatibility entry
55
+ * but new code paths should prefer this one.
56
+ *
57
+ * Returns undefined for chains that don't carry a deployment (mainnet etc.).
58
+ */
59
+ function getMockERC20Permit(chainId) {
60
+ return deployments_js_1.MOCK_ERC20_PERMIT_BY_CHAIN[chainId];
61
+ }
62
+ /**
63
+ * Canonical USDC (Circle-issued) address lookup. Returns undefined for any
64
+ * chain not in the supported allowlist — callers should treat undefined as
65
+ * "USDC not available on this chain" and surface a clear error, NOT fall back
66
+ * to a zero address or a non-Circle token.
67
+ */
68
+ function getUSDC(chainId) {
69
+ return addresses_js_1.USDC_BY_CHAIN[chainId];
70
+ }
71
+ /**
72
+ * EIP-712 domain metadata (`name`, `version`) for USDC on a given chain.
73
+ * Required to sign `TransferWithAuthorization` for x402's `exact` scheme and
74
+ * for `ShroudFiRelayer` ERC-20 permit-based gasless sweeps.
75
+ *
76
+ * Returns undefined when USDC is not supported on the chain.
77
+ */
78
+ function getUSDCDomain(chainId) {
79
+ return addresses_js_1.USDC_EIP712_DOMAIN_BY_CHAIN[chainId];
80
+ }
81
+ /**
82
+ * Boolean check — is USDC available (and supported by this SDK) on this chain?
83
+ */
84
+ function hasUSDC(chainId) {
85
+ return chainId in addresses_js_1.USDC_BY_CHAIN;
86
+ }
87
+ function getDeployment(chainId) {
88
+ const m = deployments_js_1.DEPLOYMENTS[chainId];
89
+ if (!m)
90
+ throw new errors_js_1.UnknownChainError(chainId);
91
+ return m;
92
+ }
93
+ function hasDeployment(chainId) {
94
+ return Boolean(deployments_js_1.DEPLOYMENTS[chainId]);
95
+ }
96
+ function listDeployedChains() {
97
+ return Object.keys(deployments_js_1.DEPLOYMENTS).map(Number);
98
+ }
99
+ //# sourceMappingURL=deployments-helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deployments-helpers.js","sourceRoot":"","sources":["../../src/deployments-helpers.ts"],"names":[],"mappings":";;AAcA,gDAIC;AAED,oDAIC;AAMD,oCAEC;AAMD,gCAEC;AAMD,sCAEC;AAUD,gDAEC;AAQD,0BAEC;AASD,sCAIC;AAKD,0BAEC;AAED,sCAIC;AAED,sCAEC;AAED,gDAEC;AAvGD,qDAQ0B;AAE1B,iDAA4E;AAC5E,2CAAgD;AAEhD,SAAgB,kBAAkB,CAAC,OAAe;IAChD,MAAM,CAAC,GAAG,0CAAyB,CAAC,OAAO,CAAC,CAAC;IAC7C,IAAI,CAAC,CAAC;QAAE,MAAM,IAAI,6BAAiB,CAAC,OAAO,CAAC,CAAC;IAC7C,OAAO,CAAC,CAAC;AACX,CAAC;AAED,SAAgB,oBAAoB,CAAC,OAAe;IAClD,MAAM,CAAC,GAAG,4CAA2B,CAAC,OAAO,CAAC,CAAC;IAC/C,IAAI,CAAC,CAAC;QAAE,MAAM,IAAI,6BAAiB,CAAC,OAAO,CAAC,CAAC;IAC7C,OAAO,CAAC,CAAC;AACX,CAAC;AAED;;;GAGG;AACH,SAAgB,YAAY,CAAC,OAAe;IAC1C,OAAO,oCAAmB,CAAC,OAAO,CAAC,CAAC;AACtC,CAAC;AAED;;;GAGG;AACH,SAAgB,UAAU,CAAC,OAAe;IACxC,OAAO,0CAAyB,CAAC,OAAO,CAAC,CAAC;AAC5C,CAAC;AAED;;;GAGG;AACH,SAAgB,aAAa,CAAC,OAAe;IAC3C,OAAO,8CAA6B,CAAC,OAAO,CAAC,CAAC;AAChD,CAAC;AAED;;;;;;;GAOG;AACH,SAAgB,kBAAkB,CAAC,OAAe;IAChD,OAAO,2CAA0B,CAAC,OAAO,CAAC,CAAC;AAC7C,CAAC;AAED;;;;;GAKG;AACH,SAAgB,OAAO,CAAC,OAAe;IACrC,OAAO,4BAAa,CAAC,OAAO,CAAC,CAAC;AAChC,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,aAAa,CAC3B,OAAe;IAEf,OAAO,0CAA2B,CAAC,OAAO,CAAC,CAAC;AAC9C,CAAC;AAED;;GAEG;AACH,SAAgB,OAAO,CAAC,OAAe;IACrC,OAAO,OAAO,IAAI,4BAAa,CAAC;AAClC,CAAC;AAED,SAAgB,aAAa,CAAC,OAAe;IAC3C,MAAM,CAAC,GAAG,4BAAW,CAAC,OAAO,CAAC,CAAC;IAC/B,IAAI,CAAC,CAAC;QAAE,MAAM,IAAI,6BAAiB,CAAC,OAAO,CAAC,CAAC;IAC7C,OAAO,CAAC,CAAC;AACX,CAAC;AAED,SAAgB,aAAa,CAAC,OAAe;IAC3C,OAAO,OAAO,CAAC,4BAAW,CAAC,OAAO,CAAC,CAAC,CAAC;AACvC,CAAC;AAED,SAAgB,kBAAkB;IAChC,OAAO,MAAM,CAAC,IAAI,CAAC,4BAAW,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAC9C,CAAC"}
@@ -0,0 +1,35 @@
1
+ import type { Address, Hex } from 'viem';
2
+ export interface DeploymentManifest {
3
+ readonly chainId: number;
4
+ readonly chainName: string;
5
+ readonly deployedAt: string;
6
+ readonly deployer: Address;
7
+ readonly shroudfiStealth: Address;
8
+ readonly shroudfiRegistrar: Address;
9
+ readonly stealthSalt: Hex;
10
+ readonly registrarSalt: Hex;
11
+ readonly announcer: Address;
12
+ readonly registry: Address;
13
+ readonly block: number;
14
+ readonly blockscoutUrl?: string;
15
+ readonly mockERC20?: Address;
16
+ readonly mockERC20Block?: number;
17
+ readonly shroudfiRelayer?: Address;
18
+ readonly relayerTreasury?: Address;
19
+ readonly relayerForwarder?: Address;
20
+ readonly relayerBlock?: number;
21
+ readonly mockERC20Permit?: Address;
22
+ readonly mockERC20PermitBlock?: number;
23
+ readonly shroudfiEthRelayer?: Address;
24
+ readonly shroudfiEthRelayerBlock?: number;
25
+ readonly ethRelayerOperator?: Address;
26
+ readonly isExample?: boolean;
27
+ }
28
+ export declare const DEPLOYMENTS: Readonly<Record<number, DeploymentManifest>>;
29
+ export declare const SHROUDFI_STEALTH_BY_CHAIN: Readonly<Record<number, Address>>;
30
+ export declare const SHROUDFI_REGISTRAR_BY_CHAIN: Readonly<Record<number, Address>>;
31
+ export declare const MOCK_ERC20_BY_CHAIN: Readonly<Record<number, Address>>;
32
+ export declare const SHROUDFI_RELAYER_BY_CHAIN: Readonly<Record<number, Address>>;
33
+ export declare const MOCK_ERC20_PERMIT_BY_CHAIN: Readonly<Record<number, Address>>;
34
+ export declare const SHROUDFI_ETH_RELAYER_BY_CHAIN: Readonly<Record<number, Address>>;
35
+ //# sourceMappingURL=deployments.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deployments.d.ts","sourceRoot":"","sources":["../../src/deployments.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,MAAM,CAAC;AAEzC,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAC;IACpC,QAAQ,CAAC,WAAW,EAAE,GAAG,CAAC;IAC1B,QAAQ,CAAC,aAAa,EAAE,GAAG,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAC;IACnC,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAC;IACnC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IACpC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAC;IACnC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IACvC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IACtC,QAAQ,CAAC,uBAAuB,CAAC,EAAE,MAAM,CAAC;IAC1C,QAAQ,CAAC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IACtC,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,eAAO,MAAM,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CA+C1D,CAAC;AAEZ,eAAO,MAAM,yBAAyB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAG7D,CAAC;AAEZ,eAAO,MAAM,2BAA2B,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAG/D,CAAC;AAEZ,eAAO,MAAM,mBAAmB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAEvD,CAAC;AAEZ,eAAO,MAAM,yBAAyB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAG7D,CAAC;AAEZ,eAAO,MAAM,0BAA0B,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAE9D,CAAC;AAEZ,eAAO,MAAM,6BAA6B,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAGjE,CAAC"}