@haven_ai/sdk 0.8.0-alpha.0 → 0.9.0-alpha.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/base64-BZDPJ8M1.d.ts +1344 -0
- package/dist/base64-Cyxhsvqd.d.cts +1344 -0
- package/dist/{chunk-UXULZ3ZY.js → chunk-424S4QMG.js} +10 -5
- package/dist/chunk-424S4QMG.js.map +1 -0
- package/dist/{chunk-HX34HOW4.cjs → chunk-4Z6ATE44.cjs} +2 -2
- package/dist/chunk-4Z6ATE44.cjs.map +1 -0
- package/dist/chunk-7UTWSJC5.cjs +106 -0
- package/dist/chunk-7UTWSJC5.cjs.map +1 -0
- package/dist/{chunk-H4APV67M.js → chunk-J7N4LUZZ.js} +2 -2
- package/dist/chunk-J7N4LUZZ.js.map +1 -0
- package/dist/chunk-VRKWNJ7H.js +103 -0
- package/dist/chunk-VRKWNJ7H.js.map +1 -0
- package/dist/{chunk-WJFDXCYP.cjs → chunk-ZDKNPNI3.cjs} +41 -35
- package/dist/chunk-ZDKNPNI3.cjs.map +1 -0
- package/dist/edge.cjs +97 -89
- package/dist/edge.d.cts +4 -2
- package/dist/edge.d.ts +4 -2
- package/dist/edge.js +4 -4
- package/dist/index.cjs +1033 -490
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +103 -147
- package/dist/index.d.ts +103 -147
- package/dist/index.js +705 -189
- package/dist/index.js.map +1 -1
- package/dist/receipt-D4Roey3D.d.cts +130 -0
- package/dist/receipt-WkXHZGbu.d.ts +130 -0
- package/dist/test-support.cjs +71 -18
- package/dist/test-support.cjs.map +1 -1
- package/dist/test-support.d.cts +21 -1
- package/dist/test-support.d.ts +21 -1
- package/dist/test-support.js +53 -3
- package/dist/test-support.js.map +1 -1
- package/dist/{base64-znjJJQqu.d.cts → types-CrszUJ7Z.d.cts} +208 -1306
- package/dist/{base64-znjJJQqu.d.ts → types-CrszUJ7Z.d.ts} +208 -1306
- package/package.json +1 -1
- package/dist/chunk-H4APV67M.js.map +0 -1
- package/dist/chunk-HX34HOW4.cjs.map +0 -1
- package/dist/chunk-UXULZ3ZY.js.map +0 -1
- package/dist/chunk-WJFDXCYP.cjs.map +0 -1
package/dist/edge.cjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
var
|
|
3
|
+
var chunkZDKNPNI3_cjs = require('./chunk-ZDKNPNI3.cjs');
|
|
4
|
+
var chunk4Z6ATE44_cjs = require('./chunk-4Z6ATE44.cjs');
|
|
5
5
|
|
|
6
6
|
// src/sub-budget-guards.ts
|
|
7
7
|
var ERC20_PERIOD_TRANSFER_ENFORCER = "0x474e3Ae7E169e940607cC624Da8A15Eb120139aB";
|
|
@@ -31,10 +31,10 @@ function findCaveat(caveats, enforcer) {
|
|
|
31
31
|
return caveats.find((c) => same(c.enforcer, enforcer));
|
|
32
32
|
}
|
|
33
33
|
function hashSubBudgetDelegation(delegation) {
|
|
34
|
-
return
|
|
34
|
+
return chunkZDKNPNI3_cjs.hashDelegation(delegation);
|
|
35
35
|
}
|
|
36
36
|
function refuseSubBudgetChild(what, detail) {
|
|
37
|
-
throw new
|
|
37
|
+
throw new chunkZDKNPNI3_cjs.HavenTypedDataRefusedError(
|
|
38
38
|
`Refusing to sign the sub-budget child: ${what}. ${detail} This signature opens a slice of the delegating agent budget for another agent, so it is verified locally against the expectation Haven declared, rather than trusted.`
|
|
39
39
|
);
|
|
40
40
|
}
|
|
@@ -43,10 +43,10 @@ function assertOwnSubBudgetChild(typedData, expected, delegateAddress, now = Dat
|
|
|
43
43
|
if (td?.primaryType !== "Delegation") {
|
|
44
44
|
refuseSubBudgetChild("it is not a Delegation payload", `primaryType was '${String(td?.primaryType)}'.`);
|
|
45
45
|
}
|
|
46
|
-
if (!same(td.domain?.verifyingContract,
|
|
46
|
+
if (!same(td.domain?.verifyingContract, chunk4Z6ATE44_cjs.DELEGATION_MANAGER)) {
|
|
47
47
|
refuseSubBudgetChild(
|
|
48
48
|
"the EIP-712 domain names an unknown DelegationManager",
|
|
49
|
-
`Expected ${
|
|
49
|
+
`Expected ${chunk4Z6ATE44_cjs.DELEGATION_MANAGER}, got ${td.domain?.verifyingContract}.`
|
|
50
50
|
);
|
|
51
51
|
}
|
|
52
52
|
if (td.domain?.name !== DELEGATION_DOMAIN_NAME || td.domain?.version !== DELEGATION_DOMAIN_VERSION) {
|
|
@@ -62,10 +62,10 @@ function assertOwnSubBudgetChild(typedData, expected, delegateAddress, now = Dat
|
|
|
62
62
|
);
|
|
63
63
|
}
|
|
64
64
|
const domainChain = Number(td.domain?.chainId);
|
|
65
|
-
if (!Number.isFinite(domainChain) || !
|
|
65
|
+
if (!Number.isFinite(domainChain) || !chunkZDKNPNI3_cjs.DIRECT_PAYMENT_CHAIN_IDS.has(domainChain)) {
|
|
66
66
|
refuseSubBudgetChild(
|
|
67
67
|
"it is scoped to a chain the delegation rail has no pinned contracts for",
|
|
68
|
-
`Chains with pinned contracts: ${[...
|
|
68
|
+
`Chains with pinned contracts: ${[...chunkZDKNPNI3_cjs.DIRECT_PAYMENT_CHAIN_IDS].join(", ")}; the child says ${String(td.domain?.chainId)}.`
|
|
69
69
|
);
|
|
70
70
|
}
|
|
71
71
|
if (domainChain !== expected.chainId) {
|
|
@@ -74,7 +74,7 @@ function assertOwnSubBudgetChild(typedData, expected, delegateAddress, now = Dat
|
|
|
74
74
|
`Expected chain ${expected.chainId}; the child says ${td.domain?.chainId}.`
|
|
75
75
|
);
|
|
76
76
|
}
|
|
77
|
-
const ownAccount =
|
|
77
|
+
const ownAccount = chunk4Z6ATE44_cjs.deriveDelegateAccountAddress(delegateAddress);
|
|
78
78
|
const delegator = td.message?.delegator;
|
|
79
79
|
if (typeof delegator !== "string" || !same(delegator, ownAccount)) {
|
|
80
80
|
refuseSubBudgetChild(
|
|
@@ -99,7 +99,7 @@ function assertOwnSubBudgetChild(typedData, expected, delegateAddress, now = Dat
|
|
|
99
99
|
if (typeof authority !== "string" || !/^0x[0-9a-fA-F]{64}$/.test(authority)) {
|
|
100
100
|
refuseSubBudgetChild("its authority is not a 32-byte delegation hash", `Got ${String(authority)}.`);
|
|
101
101
|
}
|
|
102
|
-
if (authority.toLowerCase() ===
|
|
102
|
+
if (authority.toLowerCase() === chunk4Z6ATE44_cjs.ROOT_AUTHORITY) {
|
|
103
103
|
refuseSubBudgetChild(
|
|
104
104
|
"it is a ROOT delegation, not a re-delegation of the delegating agent budget",
|
|
105
105
|
"A sub-budget always chains under the delegating agent budget delegation."
|
|
@@ -112,7 +112,7 @@ function assertOwnSubBudgetChild(typedData, expected, delegateAddress, now = Dat
|
|
|
112
112
|
);
|
|
113
113
|
}
|
|
114
114
|
const caveats = td.message?.caveats ?? [];
|
|
115
|
-
if (findCaveat(caveats,
|
|
115
|
+
if (findCaveat(caveats, chunk4Z6ATE44_cjs.CAVEAT_ENFORCERS.erc20TransferAmount)) {
|
|
116
116
|
refuseSubBudgetChild(
|
|
117
117
|
"it carries a hard-cap transfer-amount caveat (the task-budget shape)",
|
|
118
118
|
"A sub-budget is period-scoped: its amount caveat must be an ERC20PeriodTransferEnforcer caveat slicing the parent period meter, never a lifetime cap."
|
|
@@ -150,7 +150,7 @@ function assertOwnSubBudgetChild(typedData, expected, delegateAddress, now = Dat
|
|
|
150
150
|
`Expected ${expected.startDate}; the child says ${startDate}.`
|
|
151
151
|
);
|
|
152
152
|
}
|
|
153
|
-
const timestamp = findCaveat(caveats,
|
|
153
|
+
const timestamp = findCaveat(caveats, chunk4Z6ATE44_cjs.CAVEAT_ENFORCERS.timestamp);
|
|
154
154
|
if (!timestamp) {
|
|
155
155
|
refuseSubBudgetChild("it never expires", "A sub-budget child without a timestamp caveat is open-ended.");
|
|
156
156
|
}
|
|
@@ -165,7 +165,7 @@ function assertOwnSubBudgetChild(typedData, expected, delegateAddress, now = Dat
|
|
|
165
165
|
`Expected ${expected.expiresAt}; the child says ${beforeThreshold}.`
|
|
166
166
|
);
|
|
167
167
|
}
|
|
168
|
-
const calldata = findCaveat(caveats,
|
|
168
|
+
const calldata = findCaveat(caveats, chunk4Z6ATE44_cjs.CAVEAT_ENFORCERS.allowedCalldata);
|
|
169
169
|
if (expected.recipientAddress) {
|
|
170
170
|
if (!calldata) {
|
|
171
171
|
refuseSubBudgetChild(
|
|
@@ -199,308 +199,316 @@ function assertOwnSubBudgetChild(typedData, expected, delegateAddress, now = Dat
|
|
|
199
199
|
}
|
|
200
200
|
}
|
|
201
201
|
function assertOwnSubBudgetCloseUserOp(typedData, expected, delegateAddress) {
|
|
202
|
-
|
|
202
|
+
chunkZDKNPNI3_cjs.assertOwnTaskBudgetCloseUserOp(typedData, expected, delegateAddress);
|
|
203
203
|
}
|
|
204
204
|
|
|
205
205
|
Object.defineProperty(exports, "CAVEAT_TYPEHASH", {
|
|
206
206
|
enumerable: true,
|
|
207
|
-
get: function () { return
|
|
207
|
+
get: function () { return chunkZDKNPNI3_cjs.CAVEAT_TYPEHASH; }
|
|
208
208
|
});
|
|
209
209
|
Object.defineProperty(exports, "DELEGATION_TYPEHASH", {
|
|
210
210
|
enumerable: true,
|
|
211
|
-
get: function () { return
|
|
211
|
+
get: function () { return chunkZDKNPNI3_cjs.DELEGATION_TYPEHASH; }
|
|
212
212
|
});
|
|
213
213
|
Object.defineProperty(exports, "DIRECT_PAYMENT_CHAIN_IDS", {
|
|
214
214
|
enumerable: true,
|
|
215
|
-
get: function () { return
|
|
215
|
+
get: function () { return chunkZDKNPNI3_cjs.DIRECT_PAYMENT_CHAIN_IDS; }
|
|
216
216
|
});
|
|
217
217
|
Object.defineProperty(exports, "EXECUTE_ABI", {
|
|
218
218
|
enumerable: true,
|
|
219
|
-
get: function () { return
|
|
219
|
+
get: function () { return chunkZDKNPNI3_cjs.EXECUTE_ABI; }
|
|
220
220
|
});
|
|
221
221
|
Object.defineProperty(exports, "HAVEN_CLIENT_HEADER", {
|
|
222
222
|
enumerable: true,
|
|
223
|
-
get: function () { return
|
|
223
|
+
get: function () { return chunkZDKNPNI3_cjs.HAVEN_CLIENT_HEADER; }
|
|
224
224
|
});
|
|
225
225
|
Object.defineProperty(exports, "HAVEN_MINIMUM_NODE_VERSION", {
|
|
226
226
|
enumerable: true,
|
|
227
|
-
get: function () { return
|
|
227
|
+
get: function () { return chunkZDKNPNI3_cjs.HAVEN_MINIMUM_NODE_VERSION; }
|
|
228
228
|
});
|
|
229
229
|
Object.defineProperty(exports, "HavenTypedDataRefusedError", {
|
|
230
230
|
enumerable: true,
|
|
231
|
-
get: function () { return
|
|
231
|
+
get: function () { return chunkZDKNPNI3_cjs.HavenTypedDataRefusedError; }
|
|
232
232
|
});
|
|
233
233
|
Object.defineProperty(exports, "MAX_TASK_BUDGET_TTL_SECONDS", {
|
|
234
234
|
enumerable: true,
|
|
235
|
-
get: function () { return
|
|
235
|
+
get: function () { return chunkZDKNPNI3_cjs.MAX_TASK_BUDGET_TTL_SECONDS; }
|
|
236
236
|
});
|
|
237
237
|
Object.defineProperty(exports, "TAX_DECLARATION_DOMAIN", {
|
|
238
238
|
enumerable: true,
|
|
239
|
-
get: function () { return
|
|
239
|
+
get: function () { return chunkZDKNPNI3_cjs.TAX_DECLARATION_DOMAIN; }
|
|
240
240
|
});
|
|
241
241
|
Object.defineProperty(exports, "TAX_DECLARATION_PRIMARY_TYPE", {
|
|
242
242
|
enumerable: true,
|
|
243
|
-
get: function () { return
|
|
243
|
+
get: function () { return chunkZDKNPNI3_cjs.TAX_DECLARATION_PRIMARY_TYPE; }
|
|
244
244
|
});
|
|
245
245
|
Object.defineProperty(exports, "TAX_DECLARATION_TYPES", {
|
|
246
246
|
enumerable: true,
|
|
247
|
-
get: function () { return
|
|
247
|
+
get: function () { return chunkZDKNPNI3_cjs.TAX_DECLARATION_TYPES; }
|
|
248
248
|
});
|
|
249
249
|
Object.defineProperty(exports, "TYPED_DATA_NOT_ALLOWED", {
|
|
250
250
|
enumerable: true,
|
|
251
|
-
get: function () { return
|
|
251
|
+
get: function () { return chunkZDKNPNI3_cjs.TYPED_DATA_NOT_ALLOWED; }
|
|
252
252
|
});
|
|
253
253
|
Object.defineProperty(exports, "TaxDeclarationRefusedError", {
|
|
254
254
|
enumerable: true,
|
|
255
|
-
get: function () { return
|
|
255
|
+
get: function () { return chunkZDKNPNI3_cjs.TaxDeclarationRefusedError; }
|
|
256
256
|
});
|
|
257
257
|
Object.defineProperty(exports, "X_TAX_DECLARATION_HEADER", {
|
|
258
258
|
enumerable: true,
|
|
259
|
-
get: function () { return
|
|
259
|
+
get: function () { return chunkZDKNPNI3_cjs.X_TAX_DECLARATION_HEADER; }
|
|
260
260
|
});
|
|
261
261
|
Object.defineProperty(exports, "addressFromKey", {
|
|
262
262
|
enumerable: true,
|
|
263
|
-
get: function () { return
|
|
263
|
+
get: function () { return chunkZDKNPNI3_cjs.addressFromKey; }
|
|
264
264
|
});
|
|
265
265
|
Object.defineProperty(exports, "assertBoundDirectPaymentUserOp", {
|
|
266
266
|
enumerable: true,
|
|
267
|
-
get: function () { return
|
|
267
|
+
get: function () { return chunkZDKNPNI3_cjs.assertBoundDirectPaymentUserOp; }
|
|
268
268
|
});
|
|
269
269
|
Object.defineProperty(exports, "assertFundingLegPaysDelegate", {
|
|
270
270
|
enumerable: true,
|
|
271
|
-
get: function () { return
|
|
271
|
+
get: function () { return chunkZDKNPNI3_cjs.assertFundingLegPaysDelegate; }
|
|
272
272
|
});
|
|
273
273
|
Object.defineProperty(exports, "assertOwnSettlementChild", {
|
|
274
274
|
enumerable: true,
|
|
275
|
-
get: function () { return
|
|
275
|
+
get: function () { return chunkZDKNPNI3_cjs.assertOwnSettlementChild; }
|
|
276
276
|
});
|
|
277
277
|
Object.defineProperty(exports, "assertOwnTaskBudgetCloseUserOp", {
|
|
278
278
|
enumerable: true,
|
|
279
|
-
get: function () { return
|
|
279
|
+
get: function () { return chunkZDKNPNI3_cjs.assertOwnTaskBudgetCloseUserOp; }
|
|
280
280
|
});
|
|
281
281
|
Object.defineProperty(exports, "assertOwnTaskChild", {
|
|
282
282
|
enumerable: true,
|
|
283
|
-
get: function () { return
|
|
283
|
+
get: function () { return chunkZDKNPNI3_cjs.assertOwnTaskChild; }
|
|
284
284
|
});
|
|
285
285
|
Object.defineProperty(exports, "buildSignedTaxDeclaration", {
|
|
286
286
|
enumerable: true,
|
|
287
|
-
get: function () { return
|
|
287
|
+
get: function () { return chunkZDKNPNI3_cjs.buildSignedTaxDeclaration; }
|
|
288
288
|
});
|
|
289
289
|
Object.defineProperty(exports, "buildSweepAuthorizationMessage", {
|
|
290
290
|
enumerable: true,
|
|
291
|
-
get: function () { return
|
|
291
|
+
get: function () { return chunkZDKNPNI3_cjs.buildSweepAuthorizationMessage; }
|
|
292
292
|
});
|
|
293
293
|
Object.defineProperty(exports, "buildSweepTypedData", {
|
|
294
294
|
enumerable: true,
|
|
295
|
-
get: function () { return
|
|
295
|
+
get: function () { return chunkZDKNPNI3_cjs.buildSweepTypedData; }
|
|
296
296
|
});
|
|
297
297
|
Object.defineProperty(exports, "buildX402ExpectedMessage", {
|
|
298
298
|
enumerable: true,
|
|
299
|
-
get: function () { return
|
|
299
|
+
get: function () { return chunkZDKNPNI3_cjs.buildX402ExpectedMessage; }
|
|
300
300
|
});
|
|
301
301
|
Object.defineProperty(exports, "createNextStepBuilder", {
|
|
302
302
|
enumerable: true,
|
|
303
|
-
get: function () { return
|
|
303
|
+
get: function () { return chunkZDKNPNI3_cjs.createNextStepBuilder; }
|
|
304
304
|
});
|
|
305
305
|
Object.defineProperty(exports, "decodeBase64Json", {
|
|
306
306
|
enumerable: true,
|
|
307
|
-
get: function () { return
|
|
307
|
+
get: function () { return chunkZDKNPNI3_cjs.decodeBase64Json; }
|
|
308
308
|
});
|
|
309
309
|
Object.defineProperty(exports, "encodeBase64Json", {
|
|
310
310
|
enumerable: true,
|
|
311
|
-
get: function () { return
|
|
311
|
+
get: function () { return chunkZDKNPNI3_cjs.encodeBase64Json; }
|
|
312
312
|
});
|
|
313
313
|
Object.defineProperty(exports, "encodeTaxDeclarationHeader", {
|
|
314
314
|
enumerable: true,
|
|
315
|
-
get: function () { return
|
|
315
|
+
get: function () { return chunkZDKNPNI3_cjs.encodeTaxDeclarationHeader; }
|
|
316
316
|
});
|
|
317
317
|
Object.defineProperty(exports, "hashDelegation", {
|
|
318
318
|
enumerable: true,
|
|
319
|
-
get: function () { return
|
|
319
|
+
get: function () { return chunkZDKNPNI3_cjs.hashDelegation; }
|
|
320
320
|
});
|
|
321
321
|
Object.defineProperty(exports, "havenClientIdentity", {
|
|
322
322
|
enumerable: true,
|
|
323
|
-
get: function () { return
|
|
323
|
+
get: function () { return chunkZDKNPNI3_cjs.havenClientIdentity; }
|
|
324
324
|
});
|
|
325
325
|
Object.defineProperty(exports, "isSupportedNodeVersion", {
|
|
326
326
|
enumerable: true,
|
|
327
|
-
get: function () { return
|
|
327
|
+
get: function () { return chunkZDKNPNI3_cjs.isSupportedNodeVersion; }
|
|
328
328
|
});
|
|
329
329
|
Object.defineProperty(exports, "isTaskChildTypedData", {
|
|
330
330
|
enumerable: true,
|
|
331
|
-
get: function () { return
|
|
331
|
+
get: function () { return chunkZDKNPNI3_cjs.isTaskChildTypedData; }
|
|
332
332
|
});
|
|
333
333
|
Object.defineProperty(exports, "principalAttributionHash", {
|
|
334
334
|
enumerable: true,
|
|
335
|
-
get: function () { return
|
|
335
|
+
get: function () { return chunkZDKNPNI3_cjs.principalAttributionHash; }
|
|
336
336
|
});
|
|
337
337
|
Object.defineProperty(exports, "readClientUpdate", {
|
|
338
338
|
enumerable: true,
|
|
339
|
-
get: function () { return
|
|
339
|
+
get: function () { return chunkZDKNPNI3_cjs.readClientUpdate; }
|
|
340
340
|
});
|
|
341
341
|
Object.defineProperty(exports, "selectStandardPaymentOption", {
|
|
342
342
|
enumerable: true,
|
|
343
|
-
get: function () { return
|
|
343
|
+
get: function () { return chunkZDKNPNI3_cjs.selectStandardPaymentOption; }
|
|
344
344
|
});
|
|
345
345
|
Object.defineProperty(exports, "signHash", {
|
|
346
346
|
enumerable: true,
|
|
347
|
-
get: function () { return
|
|
347
|
+
get: function () { return chunkZDKNPNI3_cjs.signHash; }
|
|
348
348
|
});
|
|
349
349
|
Object.defineProperty(exports, "taxPrincipalId", {
|
|
350
350
|
enumerable: true,
|
|
351
|
-
get: function () { return
|
|
351
|
+
get: function () { return chunkZDKNPNI3_cjs.taxPrincipalId; }
|
|
352
352
|
});
|
|
353
353
|
Object.defineProperty(exports, "toStandardPaymentRequirements", {
|
|
354
354
|
enumerable: true,
|
|
355
|
-
get: function () { return
|
|
355
|
+
get: function () { return chunkZDKNPNI3_cjs.toStandardPaymentRequirements; }
|
|
356
356
|
});
|
|
357
357
|
Object.defineProperty(exports, "unsupportedNodeVersionMessage", {
|
|
358
358
|
enumerable: true,
|
|
359
|
-
get: function () { return
|
|
359
|
+
get: function () { return chunkZDKNPNI3_cjs.unsupportedNodeVersionMessage; }
|
|
360
360
|
});
|
|
361
361
|
Object.defineProperty(exports, "verifySignature", {
|
|
362
362
|
enumerable: true,
|
|
363
|
-
get: function () { return
|
|
363
|
+
get: function () { return chunkZDKNPNI3_cjs.verifySignature; }
|
|
364
364
|
});
|
|
365
365
|
Object.defineProperty(exports, "verifyTaxDeclarationSignature", {
|
|
366
366
|
enumerable: true,
|
|
367
|
-
get: function () { return
|
|
367
|
+
get: function () { return chunkZDKNPNI3_cjs.verifyTaxDeclarationSignature; }
|
|
368
368
|
});
|
|
369
369
|
Object.defineProperty(exports, "x402AuthorizationAmount", {
|
|
370
370
|
enumerable: true,
|
|
371
|
-
get: function () { return
|
|
371
|
+
get: function () { return chunkZDKNPNI3_cjs.x402AuthorizationAmount; }
|
|
372
|
+
});
|
|
373
|
+
Object.defineProperty(exports, "x402PaymentHeaderNamesFor", {
|
|
374
|
+
enumerable: true,
|
|
375
|
+
get: function () { return chunkZDKNPNI3_cjs.x402PaymentHeaderNamesFor; }
|
|
376
|
+
});
|
|
377
|
+
Object.defineProperty(exports, "x402RetryHeadersFor", {
|
|
378
|
+
enumerable: true,
|
|
379
|
+
get: function () { return chunkZDKNPNI3_cjs.x402RetryHeadersFor; }
|
|
372
380
|
});
|
|
373
381
|
Object.defineProperty(exports, "x402V2PaymentEnvelope", {
|
|
374
382
|
enumerable: true,
|
|
375
|
-
get: function () { return
|
|
383
|
+
get: function () { return chunkZDKNPNI3_cjs.x402V2PaymentEnvelope; }
|
|
376
384
|
});
|
|
377
385
|
Object.defineProperty(exports, "AgentPaymentFailureCode", {
|
|
378
386
|
enumerable: true,
|
|
379
|
-
get: function () { return
|
|
387
|
+
get: function () { return chunk4Z6ATE44_cjs.AgentPaymentFailureCode; }
|
|
380
388
|
});
|
|
381
389
|
Object.defineProperty(exports, "AgentPaymentNextAction", {
|
|
382
390
|
enumerable: true,
|
|
383
|
-
get: function () { return
|
|
391
|
+
get: function () { return chunk4Z6ATE44_cjs.AgentPaymentNextAction; }
|
|
384
392
|
});
|
|
385
393
|
Object.defineProperty(exports, "CAVEAT_ENFORCERS", {
|
|
386
394
|
enumerable: true,
|
|
387
|
-
get: function () { return
|
|
395
|
+
get: function () { return chunk4Z6ATE44_cjs.CAVEAT_ENFORCERS; }
|
|
388
396
|
});
|
|
389
397
|
Object.defineProperty(exports, "DELEGATION_MANAGER", {
|
|
390
398
|
enumerable: true,
|
|
391
|
-
get: function () { return
|
|
399
|
+
get: function () { return chunk4Z6ATE44_cjs.DELEGATION_MANAGER; }
|
|
392
400
|
});
|
|
393
401
|
Object.defineProperty(exports, "DELEGATION_TUPLE_COMPONENTS", {
|
|
394
402
|
enumerable: true,
|
|
395
|
-
get: function () { return
|
|
403
|
+
get: function () { return chunk4Z6ATE44_cjs.DELEGATION_TUPLE_COMPONENTS; }
|
|
396
404
|
});
|
|
397
405
|
Object.defineProperty(exports, "DIRECT_SIGN_CONTEXT_VERSION", {
|
|
398
406
|
enumerable: true,
|
|
399
|
-
get: function () { return
|
|
407
|
+
get: function () { return chunk4Z6ATE44_cjs.DIRECT_SIGN_CONTEXT_VERSION; }
|
|
400
408
|
});
|
|
401
409
|
Object.defineProperty(exports, "ENTRY_POINT_V07", {
|
|
402
410
|
enumerable: true,
|
|
403
|
-
get: function () { return
|
|
411
|
+
get: function () { return chunk4Z6ATE44_cjs.ENTRY_POINT_V07; }
|
|
404
412
|
});
|
|
405
413
|
Object.defineProperty(exports, "HAVEN_CONNECTOR_CHANNEL", {
|
|
406
414
|
enumerable: true,
|
|
407
|
-
get: function () { return
|
|
415
|
+
get: function () { return chunk4Z6ATE44_cjs.HAVEN_CONNECTOR_CHANNEL; }
|
|
408
416
|
});
|
|
409
417
|
Object.defineProperty(exports, "HYBRID_DELEGATOR_IMPLEMENTATION", {
|
|
410
418
|
enumerable: true,
|
|
411
|
-
get: function () { return
|
|
419
|
+
get: function () { return chunk4Z6ATE44_cjs.HYBRID_DELEGATOR_IMPLEMENTATION; }
|
|
412
420
|
});
|
|
413
421
|
Object.defineProperty(exports, "HavenApiError", {
|
|
414
422
|
enumerable: true,
|
|
415
|
-
get: function () { return
|
|
423
|
+
get: function () { return chunk4Z6ATE44_cjs.HavenApiError; }
|
|
416
424
|
});
|
|
417
425
|
Object.defineProperty(exports, "HavenError", {
|
|
418
426
|
enumerable: true,
|
|
419
|
-
get: function () { return
|
|
427
|
+
get: function () { return chunk4Z6ATE44_cjs.HavenError; }
|
|
420
428
|
});
|
|
421
429
|
Object.defineProperty(exports, "HavenSigningError", {
|
|
422
430
|
enumerable: true,
|
|
423
|
-
get: function () { return
|
|
431
|
+
get: function () { return chunk4Z6ATE44_cjs.HavenSigningError; }
|
|
424
432
|
});
|
|
425
433
|
Object.defineProperty(exports, "HavenUnsupportedSignerVersionError", {
|
|
426
434
|
enumerable: true,
|
|
427
|
-
get: function () { return
|
|
435
|
+
get: function () { return chunk4Z6ATE44_cjs.HavenUnsupportedSignerVersionError; }
|
|
428
436
|
});
|
|
429
437
|
Object.defineProperty(exports, "HavenUserOpBindingError", {
|
|
430
438
|
enumerable: true,
|
|
431
|
-
get: function () { return
|
|
439
|
+
get: function () { return chunk4Z6ATE44_cjs.HavenUserOpBindingError; }
|
|
432
440
|
});
|
|
433
441
|
Object.defineProperty(exports, "MAX_SETTLEMENT_WINDOW_SECONDS", {
|
|
434
442
|
enumerable: true,
|
|
435
|
-
get: function () { return
|
|
443
|
+
get: function () { return chunk4Z6ATE44_cjs.MAX_SETTLEMENT_WINDOW_SECONDS; }
|
|
436
444
|
});
|
|
437
445
|
Object.defineProperty(exports, "REDEEM_DELEGATIONS_ABI", {
|
|
438
446
|
enumerable: true,
|
|
439
|
-
get: function () { return
|
|
447
|
+
get: function () { return chunk4Z6ATE44_cjs.REDEEM_DELEGATIONS_ABI; }
|
|
440
448
|
});
|
|
441
449
|
Object.defineProperty(exports, "ROOT_AUTHORITY", {
|
|
442
450
|
enumerable: true,
|
|
443
|
-
get: function () { return
|
|
451
|
+
get: function () { return chunk4Z6ATE44_cjs.ROOT_AUTHORITY; }
|
|
444
452
|
});
|
|
445
453
|
Object.defineProperty(exports, "SIGNER_UPDATE_FALLBACK", {
|
|
446
454
|
enumerable: true,
|
|
447
|
-
get: function () { return
|
|
455
|
+
get: function () { return chunk4Z6ATE44_cjs.SIGNER_UPDATE_FALLBACK; }
|
|
448
456
|
});
|
|
449
457
|
Object.defineProperty(exports, "SIMPLE_FACTORY_ADDRESS", {
|
|
450
458
|
enumerable: true,
|
|
451
|
-
get: function () { return
|
|
459
|
+
get: function () { return chunk4Z6ATE44_cjs.SIMPLE_FACTORY_ADDRESS; }
|
|
452
460
|
});
|
|
453
461
|
Object.defineProperty(exports, "SINGLE_DEFAULT_MODE", {
|
|
454
462
|
enumerable: true,
|
|
455
|
-
get: function () { return
|
|
463
|
+
get: function () { return chunk4Z6ATE44_cjs.SINGLE_DEFAULT_MODE; }
|
|
456
464
|
});
|
|
457
465
|
Object.defineProperty(exports, "SignerRefusalCode", {
|
|
458
466
|
enumerable: true,
|
|
459
|
-
get: function () { return
|
|
467
|
+
get: function () { return chunk4Z6ATE44_cjs.SignerRefusalCode; }
|
|
460
468
|
});
|
|
461
469
|
Object.defineProperty(exports, "TASK_SIGN_CONTEXT_VERSION", {
|
|
462
470
|
enumerable: true,
|
|
463
|
-
get: function () { return
|
|
471
|
+
get: function () { return chunk4Z6ATE44_cjs.TASK_SIGN_CONTEXT_VERSION; }
|
|
464
472
|
});
|
|
465
473
|
Object.defineProperty(exports, "assertRedeemsOwnBudgetDelegation", {
|
|
466
474
|
enumerable: true,
|
|
467
|
-
get: function () { return
|
|
475
|
+
get: function () { return chunk4Z6ATE44_cjs.assertRedeemsOwnBudgetDelegation; }
|
|
468
476
|
});
|
|
469
477
|
Object.defineProperty(exports, "assertUserOpTypedDataBinding", {
|
|
470
478
|
enumerable: true,
|
|
471
|
-
get: function () { return
|
|
479
|
+
get: function () { return chunk4Z6ATE44_cjs.assertUserOpTypedDataBinding; }
|
|
472
480
|
});
|
|
473
481
|
Object.defineProperty(exports, "chainIdForNetwork", {
|
|
474
482
|
enumerable: true,
|
|
475
|
-
get: function () { return
|
|
483
|
+
get: function () { return chunk4Z6ATE44_cjs.chainIdForNetwork; }
|
|
476
484
|
});
|
|
477
485
|
Object.defineProperty(exports, "connectorRerunCommand", {
|
|
478
486
|
enumerable: true,
|
|
479
|
-
get: function () { return
|
|
487
|
+
get: function () { return chunk4Z6ATE44_cjs.connectorRerunCommand; }
|
|
480
488
|
});
|
|
481
489
|
Object.defineProperty(exports, "connectorUpgradeCommand", {
|
|
482
490
|
enumerable: true,
|
|
483
|
-
get: function () { return
|
|
491
|
+
get: function () { return chunk4Z6ATE44_cjs.connectorUpgradeCommand; }
|
|
484
492
|
});
|
|
485
493
|
Object.defineProperty(exports, "deriveDelegateAccountAddress", {
|
|
486
494
|
enumerable: true,
|
|
487
|
-
get: function () { return
|
|
495
|
+
get: function () { return chunk4Z6ATE44_cjs.deriveDelegateAccountAddress; }
|
|
488
496
|
});
|
|
489
497
|
Object.defineProperty(exports, "isPackedUserOperationTypedData", {
|
|
490
498
|
enumerable: true,
|
|
491
|
-
get: function () { return
|
|
499
|
+
get: function () { return chunk4Z6ATE44_cjs.isPackedUserOperationTypedData; }
|
|
492
500
|
});
|
|
493
501
|
Object.defineProperty(exports, "isSettlementChildTypedData", {
|
|
494
502
|
enumerable: true,
|
|
495
|
-
get: function () { return
|
|
503
|
+
get: function () { return chunk4Z6ATE44_cjs.isSettlementChildTypedData; }
|
|
496
504
|
});
|
|
497
505
|
Object.defineProperty(exports, "packedUserOperationHash", {
|
|
498
506
|
enumerable: true,
|
|
499
|
-
get: function () { return
|
|
507
|
+
get: function () { return chunk4Z6ATE44_cjs.packedUserOperationHash; }
|
|
500
508
|
});
|
|
501
509
|
Object.defineProperty(exports, "verifySettlementChild", {
|
|
502
510
|
enumerable: true,
|
|
503
|
-
get: function () { return
|
|
511
|
+
get: function () { return chunk4Z6ATE44_cjs.verifySettlementChild; }
|
|
504
512
|
});
|
|
505
513
|
exports.ERC20_PERIOD_TRANSFER_ENFORCER = ERC20_PERIOD_TRANSFER_ENFORCER;
|
|
506
514
|
exports.assertOwnSubBudgetChild = assertOwnSubBudgetChild;
|
package/dist/edge.d.cts
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export {
|
|
1
|
+
import { am as HavenSigningError } from './types-CrszUJ7Z.cjs';
|
|
2
|
+
export { V as AgentPaymentFailureCode, Z as AgentPaymentNextAction, ai as HavenApiError, I as HavenError, ao as HavenUnsupportedSignerVersionError, aD as SIGNER_UPDATE_FALLBACK, aE as SignerRefusalCode, aJ as X402ExpectedAuth, aL as X402PaymentOption, X as X402PaymentRequired } from './types-CrszUJ7Z.cjs';
|
|
3
|
+
import { aU as DelegationForHashing } from './base64-Cyxhsvqd.cjs';
|
|
4
|
+
export { aV as CAVEAT_ENFORCERS, aW as CAVEAT_TYPEHASH, aX as DELEGATION_MANAGER, aY as DELEGATION_TYPEHASH, aZ as DIRECT_PAYMENT_CHAIN_IDS, c as DIRECT_SIGN_CONTEXT_VERSION, E as ENTRY_POINT_V07, a_ as EXECUTE_ABI, e as HAVEN_CLIENT_HEADER, f as HAVEN_CONNECTOR_CHANNEL, g as HAVEN_MINIMUM_NODE_VERSION, a$ as HYBRID_DELEGATOR_IMPLEMENTATION, H as HavenClientUpdate, j as HavenTypedDataRefusedError, k as HavenUserOpBindingError, b0 as MAX_SETTLEMENT_WINDOW_SECONDS, M as MAX_TASK_BUDGET_TTL_SECONDS, m as NextStep, o as NextStepHandoff, q as NextStepTarget, R as ROOT_AUTHORITY, b1 as SIMPLE_FACTORY_ADDRESS, z as SettlementChildExpectation, b2 as SettlementChildTypedData, a as SweepAuthorization, B as SweepExpectedAuth, T as TASK_SIGN_CONTEXT_VERSION, K as TYPED_DATA_NOT_ALLOWED, L as TaskBudgetCloseExpectation, O as TaskChildExpectation, Q as TaskChildTypedData, a3 as assertBoundDirectPaymentUserOp, b3 as assertFundingLegPaysDelegate, b4 as assertOwnSettlementChild, a4 as assertOwnTaskBudgetCloseUserOp, a5 as assertOwnTaskChild, a6 as assertUserOpTypedDataBinding, a7 as buildSweepAuthorizationMessage, a8 as buildSweepTypedData, a9 as buildX402ExpectedMessage, b5 as chainIdForNetwork, ab as connectorRerunCommand, ad as connectorUpgradeCommand, ae as createNextStepBuilder, af as decodeBase64Json, ai as deriveDelegateAccountAddress, aj as encodeBase64Json, am as hashDelegation, an as havenClientIdentity, aq as isPackedUserOperationTypedData, b6 as isSettlementChildTypedData, ar as isSupportedNodeVersion, at as isTaskChildTypedData, av as packedUserOperationHash, az as readClientUpdate, aG as selectStandardPaymentOption, aK as toStandardPaymentRequirements, aL as unsupportedNodeVersionMessage, aN as verifySettlementChild, aP as x402AuthorizationAmount, aR as x402PaymentHeaderNamesFor, aS as x402RetryHeadersFor, aT as x402V2PaymentEnvelope } from './base64-Cyxhsvqd.cjs';
|
|
3
5
|
import { Hex, Address } from 'viem';
|
|
4
6
|
import 'x402/types';
|
|
5
7
|
|
package/dist/edge.d.ts
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export {
|
|
1
|
+
import { am as HavenSigningError } from './types-CrszUJ7Z.js';
|
|
2
|
+
export { V as AgentPaymentFailureCode, Z as AgentPaymentNextAction, ai as HavenApiError, I as HavenError, ao as HavenUnsupportedSignerVersionError, aD as SIGNER_UPDATE_FALLBACK, aE as SignerRefusalCode, aJ as X402ExpectedAuth, aL as X402PaymentOption, X as X402PaymentRequired } from './types-CrszUJ7Z.js';
|
|
3
|
+
import { aU as DelegationForHashing } from './base64-BZDPJ8M1.js';
|
|
4
|
+
export { aV as CAVEAT_ENFORCERS, aW as CAVEAT_TYPEHASH, aX as DELEGATION_MANAGER, aY as DELEGATION_TYPEHASH, aZ as DIRECT_PAYMENT_CHAIN_IDS, c as DIRECT_SIGN_CONTEXT_VERSION, E as ENTRY_POINT_V07, a_ as EXECUTE_ABI, e as HAVEN_CLIENT_HEADER, f as HAVEN_CONNECTOR_CHANNEL, g as HAVEN_MINIMUM_NODE_VERSION, a$ as HYBRID_DELEGATOR_IMPLEMENTATION, H as HavenClientUpdate, j as HavenTypedDataRefusedError, k as HavenUserOpBindingError, b0 as MAX_SETTLEMENT_WINDOW_SECONDS, M as MAX_TASK_BUDGET_TTL_SECONDS, m as NextStep, o as NextStepHandoff, q as NextStepTarget, R as ROOT_AUTHORITY, b1 as SIMPLE_FACTORY_ADDRESS, z as SettlementChildExpectation, b2 as SettlementChildTypedData, a as SweepAuthorization, B as SweepExpectedAuth, T as TASK_SIGN_CONTEXT_VERSION, K as TYPED_DATA_NOT_ALLOWED, L as TaskBudgetCloseExpectation, O as TaskChildExpectation, Q as TaskChildTypedData, a3 as assertBoundDirectPaymentUserOp, b3 as assertFundingLegPaysDelegate, b4 as assertOwnSettlementChild, a4 as assertOwnTaskBudgetCloseUserOp, a5 as assertOwnTaskChild, a6 as assertUserOpTypedDataBinding, a7 as buildSweepAuthorizationMessage, a8 as buildSweepTypedData, a9 as buildX402ExpectedMessage, b5 as chainIdForNetwork, ab as connectorRerunCommand, ad as connectorUpgradeCommand, ae as createNextStepBuilder, af as decodeBase64Json, ai as deriveDelegateAccountAddress, aj as encodeBase64Json, am as hashDelegation, an as havenClientIdentity, aq as isPackedUserOperationTypedData, b6 as isSettlementChildTypedData, ar as isSupportedNodeVersion, at as isTaskChildTypedData, av as packedUserOperationHash, az as readClientUpdate, aG as selectStandardPaymentOption, aK as toStandardPaymentRequirements, aL as unsupportedNodeVersionMessage, aN as verifySettlementChild, aP as x402AuthorizationAmount, aR as x402PaymentHeaderNamesFor, aS as x402RetryHeadersFor, aT as x402V2PaymentEnvelope } from './base64-BZDPJ8M1.js';
|
|
3
5
|
import { Hex, Address } from 'viem';
|
|
4
6
|
import 'x402/types';
|
|
5
7
|
|
package/dist/edge.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { hashDelegation, DIRECT_PAYMENT_CHAIN_IDS, assertOwnTaskBudgetCloseUserOp, HavenTypedDataRefusedError } from './chunk-
|
|
2
|
-
export { CAVEAT_TYPEHASH, DELEGATION_TYPEHASH, DIRECT_PAYMENT_CHAIN_IDS, EXECUTE_ABI, HAVEN_CLIENT_HEADER, HAVEN_MINIMUM_NODE_VERSION, HavenTypedDataRefusedError, MAX_TASK_BUDGET_TTL_SECONDS, TAX_DECLARATION_DOMAIN, TAX_DECLARATION_PRIMARY_TYPE, TAX_DECLARATION_TYPES, TYPED_DATA_NOT_ALLOWED, TaxDeclarationRefusedError, X_TAX_DECLARATION_HEADER, addressFromKey, assertBoundDirectPaymentUserOp, assertFundingLegPaysDelegate, assertOwnSettlementChild, assertOwnTaskBudgetCloseUserOp, assertOwnTaskChild, buildSignedTaxDeclaration, buildSweepAuthorizationMessage, buildSweepTypedData, buildX402ExpectedMessage, createNextStepBuilder, decodeBase64Json, encodeBase64Json, encodeTaxDeclarationHeader, hashDelegation, havenClientIdentity, isSupportedNodeVersion, isTaskChildTypedData, principalAttributionHash, readClientUpdate, selectStandardPaymentOption, signHash, taxPrincipalId, toStandardPaymentRequirements, unsupportedNodeVersionMessage, verifySignature, verifyTaxDeclarationSignature, x402AuthorizationAmount, x402V2PaymentEnvelope } from './chunk-
|
|
3
|
-
import { DELEGATION_MANAGER, deriveDelegateAccountAddress, ROOT_AUTHORITY, CAVEAT_ENFORCERS } from './chunk-
|
|
4
|
-
export { AgentPaymentFailureCode, AgentPaymentNextAction, CAVEAT_ENFORCERS, DELEGATION_MANAGER, DELEGATION_TUPLE_COMPONENTS, DIRECT_SIGN_CONTEXT_VERSION, ENTRY_POINT_V07, HAVEN_CONNECTOR_CHANNEL, HYBRID_DELEGATOR_IMPLEMENTATION, HavenApiError, HavenError, HavenSigningError, HavenUnsupportedSignerVersionError, HavenUserOpBindingError, MAX_SETTLEMENT_WINDOW_SECONDS, REDEEM_DELEGATIONS_ABI, ROOT_AUTHORITY, SIGNER_UPDATE_FALLBACK, SIMPLE_FACTORY_ADDRESS, SINGLE_DEFAULT_MODE, SignerRefusalCode, TASK_SIGN_CONTEXT_VERSION, assertRedeemsOwnBudgetDelegation, assertUserOpTypedDataBinding, chainIdForNetwork, connectorRerunCommand, connectorUpgradeCommand, deriveDelegateAccountAddress, isPackedUserOperationTypedData, isSettlementChildTypedData, packedUserOperationHash, verifySettlementChild } from './chunk-
|
|
1
|
+
import { hashDelegation, DIRECT_PAYMENT_CHAIN_IDS, assertOwnTaskBudgetCloseUserOp, HavenTypedDataRefusedError } from './chunk-424S4QMG.js';
|
|
2
|
+
export { CAVEAT_TYPEHASH, DELEGATION_TYPEHASH, DIRECT_PAYMENT_CHAIN_IDS, EXECUTE_ABI, HAVEN_CLIENT_HEADER, HAVEN_MINIMUM_NODE_VERSION, HavenTypedDataRefusedError, MAX_TASK_BUDGET_TTL_SECONDS, TAX_DECLARATION_DOMAIN, TAX_DECLARATION_PRIMARY_TYPE, TAX_DECLARATION_TYPES, TYPED_DATA_NOT_ALLOWED, TaxDeclarationRefusedError, X_TAX_DECLARATION_HEADER, addressFromKey, assertBoundDirectPaymentUserOp, assertFundingLegPaysDelegate, assertOwnSettlementChild, assertOwnTaskBudgetCloseUserOp, assertOwnTaskChild, buildSignedTaxDeclaration, buildSweepAuthorizationMessage, buildSweepTypedData, buildX402ExpectedMessage, createNextStepBuilder, decodeBase64Json, encodeBase64Json, encodeTaxDeclarationHeader, hashDelegation, havenClientIdentity, isSupportedNodeVersion, isTaskChildTypedData, principalAttributionHash, readClientUpdate, selectStandardPaymentOption, signHash, taxPrincipalId, toStandardPaymentRequirements, unsupportedNodeVersionMessage, verifySignature, verifyTaxDeclarationSignature, x402AuthorizationAmount, x402PaymentHeaderNamesFor, x402RetryHeadersFor, x402V2PaymentEnvelope } from './chunk-424S4QMG.js';
|
|
3
|
+
import { DELEGATION_MANAGER, deriveDelegateAccountAddress, ROOT_AUTHORITY, CAVEAT_ENFORCERS } from './chunk-J7N4LUZZ.js';
|
|
4
|
+
export { AgentPaymentFailureCode, AgentPaymentNextAction, CAVEAT_ENFORCERS, DELEGATION_MANAGER, DELEGATION_TUPLE_COMPONENTS, DIRECT_SIGN_CONTEXT_VERSION, ENTRY_POINT_V07, HAVEN_CONNECTOR_CHANNEL, HYBRID_DELEGATOR_IMPLEMENTATION, HavenApiError, HavenError, HavenSigningError, HavenUnsupportedSignerVersionError, HavenUserOpBindingError, MAX_SETTLEMENT_WINDOW_SECONDS, REDEEM_DELEGATIONS_ABI, ROOT_AUTHORITY, SIGNER_UPDATE_FALLBACK, SIMPLE_FACTORY_ADDRESS, SINGLE_DEFAULT_MODE, SignerRefusalCode, TASK_SIGN_CONTEXT_VERSION, assertRedeemsOwnBudgetDelegation, assertUserOpTypedDataBinding, chainIdForNetwork, connectorRerunCommand, connectorUpgradeCommand, deriveDelegateAccountAddress, isPackedUserOperationTypedData, isSettlementChildTypedData, packedUserOperationHash, verifySettlementChild } from './chunk-J7N4LUZZ.js';
|
|
5
5
|
|
|
6
6
|
// src/sub-budget-guards.ts
|
|
7
7
|
var ERC20_PERIOD_TRANSFER_ENFORCER = "0x474e3Ae7E169e940607cC624Da8A15Eb120139aB";
|