@spicenet-io/spiceflow-core 0.10.0-private-rpc.0 → 0.10.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/api.d.ts +9 -0
- package/dist/api.d.ts.map +1 -1
- package/dist/conditionalIntents.d.ts +13 -1
- package/dist/conditionalIntents.d.ts.map +1 -1
- package/dist/index.cjs +203 -98
- package/dist/index.js +202 -98
- package/package.json +2 -2
package/dist/api.d.ts
CHANGED
|
@@ -93,6 +93,7 @@ export interface EstimateActionFeesResponse {
|
|
|
93
93
|
};
|
|
94
94
|
}
|
|
95
95
|
export interface RegisterConditionalIntentRequest {
|
|
96
|
+
executionWaits?: import("./conditionalIntents.js").ConditionalExecutionWait[];
|
|
96
97
|
authorization: ConditionalIntentAuthorization;
|
|
97
98
|
authorizationSignature: Hex;
|
|
98
99
|
triggerSpecification: Hex;
|
|
@@ -103,11 +104,19 @@ export interface RegisterConditionalIntentRequest {
|
|
|
103
104
|
};
|
|
104
105
|
}
|
|
105
106
|
export interface RegisterConditionalIntentResponse {
|
|
107
|
+
orderId?: string;
|
|
108
|
+
revisionId?: string;
|
|
109
|
+
revision?: number;
|
|
106
110
|
conditionalIntentId: Hash;
|
|
107
111
|
state: "armed" | "eligible" | "executing" | "reconciling" | "completed" | "cancelled" | "expired" | "failed" | "needs_attention";
|
|
108
112
|
readToken?: string;
|
|
109
113
|
}
|
|
110
114
|
export interface ConditionalIntentStatus {
|
|
115
|
+
/** Stable order identity across signed revisions. Legacy servers omit these fields. */
|
|
116
|
+
orderId?: string;
|
|
117
|
+
revisionId?: string;
|
|
118
|
+
revision?: number;
|
|
119
|
+
replacedBy?: Hash;
|
|
111
120
|
executionStatus?: string;
|
|
112
121
|
executionStopped?: boolean;
|
|
113
122
|
conditionalIntentId: Hash;
|
package/dist/api.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,17 @@
|
|
|
1
1
|
import type { Address, Hash, Hex } from "viem";
|
|
2
2
|
import type { Call, TokenTransferConfig } from "./types.js";
|
|
3
|
+
/** Until-cancelled wire sentinel: 9999-12-31T23:59:59Z; safe in JS, SQL and signed EVM expiry. */
|
|
4
|
+
export declare const CONDITIONAL_INTENT_UNTIL_CANCELLED = 253402300799n;
|
|
3
5
|
export declare const CONDITIONAL_INTENT_VERSION: 1;
|
|
4
6
|
export type ConditionalTriggerSemantics = "state" | "event";
|
|
7
|
+
/** A signed, read-only prerequisite for an unsubmitted execution batch. */
|
|
8
|
+
export interface ConditionalExecutionWait {
|
|
9
|
+
batchIndex: number;
|
|
10
|
+
to: Address;
|
|
11
|
+
data: Hex;
|
|
12
|
+
/** Exact ABI uint256 return word required before submission. */
|
|
13
|
+
expected: bigint;
|
|
14
|
+
}
|
|
5
15
|
export interface ConditionalExecutionBatch {
|
|
6
16
|
chainId: bigint | number;
|
|
7
17
|
calls: Call[];
|
|
@@ -16,6 +26,8 @@ export interface ConditionalDelegationAuthorization {
|
|
|
16
26
|
yParity?: number;
|
|
17
27
|
}
|
|
18
28
|
export interface ConditionalIntentAuthorization {
|
|
29
|
+
/** Atomically supersedes this unclaimed intent; bound into the signature. */
|
|
30
|
+
replacesIntentId?: Hash;
|
|
19
31
|
owner: Address;
|
|
20
32
|
clientId: string;
|
|
21
33
|
serviceId: string;
|
|
@@ -57,7 +69,7 @@ export interface ConditionalReadAuthorization {
|
|
|
57
69
|
nonce: bigint;
|
|
58
70
|
}
|
|
59
71
|
/** Commits to ordered calls and service-consumed funding metadata, never signatures or display text. */
|
|
60
|
-
export declare function hashConditionalExecutionPlan(batches: ConditionalExecutionBatch[], delegationAuthorizations?: ConditionalDelegationAuthorization[]): Hash;
|
|
72
|
+
export declare function hashConditionalExecutionPlan(batches: ConditionalExecutionBatch[], delegationAuthorizations?: ConditionalDelegationAuthorization[], waits?: ConditionalExecutionWait[]): Hash;
|
|
61
73
|
/** Hash to pass to the wallet's existing EIP-191 signMessage({ message: { raw } }) path. */
|
|
62
74
|
export declare function hashConditionalIntentAuthorization(value: ConditionalIntentAuthorization): Hash;
|
|
63
75
|
export declare function getConditionalIntentId(authorizationHash: Hash): Hash;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conditionalIntents.d.ts","sourceRoot":"","sources":["../src/conditionalIntents.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,MAAM,CAAC;AAE/C,OAAO,KAAK,EAAE,IAAI,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAE5D,eAAO,MAAM,0BAA0B,EAAG,CAAU,CAAC;AACrD,MAAM,MAAM,2BAA2B,GAAG,OAAO,GAAG,OAAO,CAAC;AAE5D,MAAM,WAAW,yBAAyB;IACxC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,cAAc,EAAE,mBAAmB,EAAE,CAAC;CACvC;AAED,MAAM,WAAW,kCAAkC;IACjD,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC,EAAE,GAAG,CAAC;IACP,CAAC,EAAE,GAAG,CAAC;IACP,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,8BAA8B;IAC7C,KAAK,EAAE,OAAO,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,eAAe,EAAE,IAAI,CAAC;IACtB,iBAAiB,EAAE,IAAI,CAAC;IACxB,wBAAwB,EAAE,IAAI,CAAC;IAC/B,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,2BAA2B,CAAC;IACvC,mBAAmB,EAAE,MAAM,CAAC;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,CAAC,CAAC;CAClB;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,IAAI,CAAC;IACf,eAAe,EAAE,IAAI,CAAC;IACtB,wBAAwB,EAAE,IAAI,CAAC;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,IAAI,CAAC;IAChB,YAAY,CAAC,EAAE,IAAI,CAAC;CACrB;AAED,MAAM,WAAW,uBAAuB;IACtC,KAAK,EAAE,OAAO,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,IAAI,CAAC;IACf,iBAAiB,EAAE,MAAM,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,4BAA4B;IAC3C,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,gFAAgF;IAChF,QAAQ,EAAE,IAAI,GAAG,IAAI,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;CACf;
|
|
1
|
+
{"version":3,"file":"conditionalIntents.d.ts","sourceRoot":"","sources":["../src/conditionalIntents.ts"],"names":[],"mappings":"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"}
|
package/dist/index.cjs
CHANGED
|
@@ -20,6 +20,7 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
20
20
|
var index_exports = {};
|
|
21
21
|
__export(index_exports, {
|
|
22
22
|
CHAINS: () => CHAINS,
|
|
23
|
+
CONDITIONAL_INTENT_UNTIL_CANCELLED: () => CONDITIONAL_INTENT_UNTIL_CANCELLED,
|
|
23
24
|
CONDITIONAL_INTENT_VERSION: () => CONDITIONAL_INTENT_VERSION,
|
|
24
25
|
ChainBatchHashAbi: () => ChainBatchHashAbi,
|
|
25
26
|
DELEGATE_ABI: () => DELEGATE_ABI,
|
|
@@ -149,6 +150,7 @@ async function getRecentBlock(publicClient) {
|
|
|
149
150
|
|
|
150
151
|
// src/conditionalIntents.ts
|
|
151
152
|
var import_viem2 = require("viem");
|
|
153
|
+
var CONDITIONAL_INTENT_UNTIL_CANCELLED = 253402300799n;
|
|
152
154
|
var CONDITIONAL_INTENT_VERSION = 1;
|
|
153
155
|
var callTuple = [
|
|
154
156
|
{ name: "to", type: "address" },
|
|
@@ -169,44 +171,97 @@ var batchTuple = [
|
|
|
169
171
|
];
|
|
170
172
|
var zeroAddress = "0x0000000000000000000000000000000000000000";
|
|
171
173
|
function encodePlanTransfer(transfer) {
|
|
172
|
-
if (transfer.from === "solver")
|
|
173
|
-
|
|
174
|
-
|
|
174
|
+
if (transfer.from === "solver")
|
|
175
|
+
return [
|
|
176
|
+
1,
|
|
177
|
+
zeroAddress,
|
|
178
|
+
transfer.to,
|
|
179
|
+
transfer.token,
|
|
180
|
+
transfer.amount
|
|
181
|
+
];
|
|
182
|
+
if (transfer.from === "escrow")
|
|
183
|
+
return [
|
|
184
|
+
2,
|
|
185
|
+
zeroAddress,
|
|
186
|
+
transfer.to,
|
|
187
|
+
transfer.token,
|
|
188
|
+
transfer.amount
|
|
189
|
+
];
|
|
190
|
+
return [
|
|
191
|
+
0,
|
|
192
|
+
transfer.from,
|
|
193
|
+
transfer.to,
|
|
194
|
+
transfer.token,
|
|
195
|
+
transfer.amount
|
|
196
|
+
];
|
|
175
197
|
}
|
|
176
|
-
function hashConditionalExecutionPlan(batches, delegationAuthorizations = []) {
|
|
198
|
+
function hashConditionalExecutionPlan(batches, delegationAuthorizations = [], waits = []) {
|
|
177
199
|
const normalized = batches.map((batch) => [
|
|
178
200
|
BigInt(batch.chainId),
|
|
179
201
|
batch.calls,
|
|
180
202
|
batch.tokenTransfers.map(encodePlanTransfer)
|
|
181
203
|
]);
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
{
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
BigInt(
|
|
203
|
-
|
|
204
|
-
auth
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
204
|
+
const baseHash = (0, import_viem2.keccak256)(
|
|
205
|
+
(0, import_viem2.encodeAbiParameters)(
|
|
206
|
+
[
|
|
207
|
+
{ type: "bytes32" },
|
|
208
|
+
{ type: "uint256" },
|
|
209
|
+
{ type: "tuple[]", components: batchTuple },
|
|
210
|
+
{
|
|
211
|
+
type: "tuple[]",
|
|
212
|
+
components: [
|
|
213
|
+
{ name: "address", type: "address" },
|
|
214
|
+
{ name: "chainId", type: "uint256" },
|
|
215
|
+
{ name: "nonce", type: "uint256" },
|
|
216
|
+
{ name: "r", type: "bytes32" },
|
|
217
|
+
{ name: "s", type: "bytes32" },
|
|
218
|
+
{ name: "yParity", type: "uint8" }
|
|
219
|
+
]
|
|
220
|
+
}
|
|
221
|
+
],
|
|
222
|
+
[
|
|
223
|
+
(0, import_viem2.keccak256)((0, import_viem2.stringToHex)("spice.conditional.execution-plan")),
|
|
224
|
+
BigInt(CONDITIONAL_INTENT_VERSION),
|
|
225
|
+
normalized,
|
|
226
|
+
delegationAuthorizations.map((auth) => [
|
|
227
|
+
auth.address,
|
|
228
|
+
BigInt(auth.chainId),
|
|
229
|
+
BigInt(auth.nonce),
|
|
230
|
+
auth.r,
|
|
231
|
+
auth.s,
|
|
232
|
+
auth.yParity ?? 0
|
|
233
|
+
])
|
|
234
|
+
]
|
|
235
|
+
)
|
|
236
|
+
);
|
|
237
|
+
if (!waits.length) return baseHash;
|
|
238
|
+
return (0, import_viem2.keccak256)(
|
|
239
|
+
(0, import_viem2.encodeAbiParameters)(
|
|
240
|
+
[
|
|
241
|
+
{ type: "bytes32" },
|
|
242
|
+
{ type: "bytes32" },
|
|
243
|
+
{
|
|
244
|
+
type: "tuple[]",
|
|
245
|
+
components: [
|
|
246
|
+
{ name: "batchIndex", type: "uint256" },
|
|
247
|
+
{ name: "to", type: "address" },
|
|
248
|
+
{ name: "data", type: "bytes" },
|
|
249
|
+
{ name: "expected", type: "uint256" }
|
|
250
|
+
]
|
|
251
|
+
}
|
|
252
|
+
],
|
|
253
|
+
[
|
|
254
|
+
(0, import_viem2.keccak256)((0, import_viem2.stringToHex)("spice.conditional.execution-waits.v1")),
|
|
255
|
+
baseHash,
|
|
256
|
+
waits.map((w) => ({
|
|
257
|
+
batchIndex: BigInt(w.batchIndex),
|
|
258
|
+
to: w.to,
|
|
259
|
+
data: w.data,
|
|
260
|
+
expected: w.expected
|
|
261
|
+
}))
|
|
262
|
+
]
|
|
263
|
+
)
|
|
264
|
+
);
|
|
210
265
|
}
|
|
211
266
|
var authorizationTypes = [
|
|
212
267
|
{ name: "domain", type: "bytes32" },
|
|
@@ -232,76 +287,125 @@ function semanticsValue(value) {
|
|
|
232
287
|
return value === "state" ? 0 : 1;
|
|
233
288
|
}
|
|
234
289
|
function hashConditionalIntentAuthorization(value) {
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
290
|
+
const original = (0, import_viem2.keccak256)(
|
|
291
|
+
(0, import_viem2.encodeAbiParameters)(authorizationTypes, [
|
|
292
|
+
hashText("spice.conditional.authorization"),
|
|
293
|
+
BigInt(CONDITIONAL_INTENT_VERSION),
|
|
294
|
+
value.owner,
|
|
295
|
+
hashText(value.clientId),
|
|
296
|
+
hashText(value.serviceId),
|
|
297
|
+
value.authorizationNonce,
|
|
298
|
+
value.executionDigest,
|
|
299
|
+
value.executionPlanHash,
|
|
300
|
+
value.triggerSpecificationHash,
|
|
301
|
+
value.evaluator,
|
|
302
|
+
semanticsValue(value.semantics),
|
|
303
|
+
value.maxSignalAgeSeconds,
|
|
304
|
+
value.validAfter,
|
|
305
|
+
value.expiresAt,
|
|
306
|
+
BigInt(value.maxExecutions)
|
|
307
|
+
])
|
|
308
|
+
);
|
|
309
|
+
return value.replacesIntentId ? (0, import_viem2.keccak256)(
|
|
310
|
+
(0, import_viem2.encodeAbiParameters)(
|
|
311
|
+
[{ type: "bytes32" }, { type: "bytes32" }, { type: "bytes32" }],
|
|
312
|
+
[
|
|
313
|
+
hashText("spice.conditional.amendment.v1"),
|
|
314
|
+
value.replacesIntentId,
|
|
315
|
+
original
|
|
316
|
+
]
|
|
317
|
+
)
|
|
318
|
+
) : original;
|
|
252
319
|
}
|
|
253
320
|
function getConditionalIntentId(authorizationHash) {
|
|
254
|
-
return (0, import_viem2.keccak256)(
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
321
|
+
return (0, import_viem2.keccak256)(
|
|
322
|
+
(0, import_viem2.encodeAbiParameters)(
|
|
323
|
+
[{ type: "bytes32" }, { type: "bytes32" }],
|
|
324
|
+
[hashText("spice.conditional.intent-id"), authorizationHash]
|
|
325
|
+
)
|
|
326
|
+
);
|
|
258
327
|
}
|
|
259
328
|
function hashConditionalSignal(value, serviceId) {
|
|
260
|
-
return (0, import_viem2.keccak256)(
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
329
|
+
return (0, import_viem2.keccak256)(
|
|
330
|
+
(0, import_viem2.encodeAbiParameters)(
|
|
331
|
+
[
|
|
332
|
+
{ name: "domain", type: "bytes32" },
|
|
333
|
+
{ name: "version", type: "uint256" },
|
|
334
|
+
{ name: "serviceIdHash", type: "bytes32" },
|
|
335
|
+
{ name: "intentId", type: "bytes32" },
|
|
336
|
+
{ name: "executionDigest", type: "bytes32" },
|
|
337
|
+
{ name: "triggerSpecificationHash", type: "bytes32" },
|
|
338
|
+
{ name: "signalIdHash", type: "bytes32" },
|
|
339
|
+
{ name: "observedAt", type: "uint256" },
|
|
340
|
+
{ name: "validUntil", type: "uint256" },
|
|
341
|
+
{ name: "satisfied", type: "bool" },
|
|
342
|
+
{ name: "evidenceHash", type: "bytes32" }
|
|
343
|
+
],
|
|
344
|
+
[
|
|
345
|
+
hashText("spice.conditional.signal"),
|
|
346
|
+
BigInt(CONDITIONAL_INTENT_VERSION),
|
|
347
|
+
hashText(serviceId),
|
|
348
|
+
value.intentId,
|
|
349
|
+
value.executionDigest,
|
|
350
|
+
value.triggerSpecificationHash,
|
|
351
|
+
hashText(value.signalId),
|
|
352
|
+
value.observedAt,
|
|
353
|
+
value.validUntil,
|
|
354
|
+
value.satisfied,
|
|
355
|
+
value.evidenceHash ?? "0x" + "00".repeat(32)
|
|
356
|
+
]
|
|
357
|
+
)
|
|
358
|
+
);
|
|
276
359
|
}
|
|
277
360
|
function hashConditionalCancellation(value) {
|
|
278
|
-
return (0, import_viem2.keccak256)(
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
361
|
+
return (0, import_viem2.keccak256)(
|
|
362
|
+
(0, import_viem2.encodeAbiParameters)(
|
|
363
|
+
[
|
|
364
|
+
{ name: "domain", type: "bytes32" },
|
|
365
|
+
{ name: "version", type: "uint256" },
|
|
366
|
+
{ name: "owner", type: "address" },
|
|
367
|
+
{ name: "serviceIdHash", type: "bytes32" },
|
|
368
|
+
{ name: "intentId", type: "bytes32" },
|
|
369
|
+
{ name: "cancellationNonce", type: "uint256" },
|
|
370
|
+
{ name: "expiresAt", type: "uint256" }
|
|
371
|
+
],
|
|
372
|
+
[
|
|
373
|
+
hashText("spice.conditional.cancel"),
|
|
374
|
+
BigInt(CONDITIONAL_INTENT_VERSION),
|
|
375
|
+
value.owner,
|
|
376
|
+
hashText(value.serviceId),
|
|
377
|
+
value.intentId,
|
|
378
|
+
value.cancellationNonce,
|
|
379
|
+
value.expiresAt
|
|
380
|
+
]
|
|
381
|
+
)
|
|
382
|
+
);
|
|
290
383
|
}
|
|
291
384
|
function hashConditionalReadAuthorization(value) {
|
|
292
|
-
return (0, import_viem2.keccak256)(
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
385
|
+
return (0, import_viem2.keccak256)(
|
|
386
|
+
(0, import_viem2.encodeAbiParameters)(
|
|
387
|
+
[
|
|
388
|
+
{ name: "domain", type: "bytes32" },
|
|
389
|
+
{ name: "version", type: "uint256" },
|
|
390
|
+
{ name: "owner", type: "address" },
|
|
391
|
+
{ name: "reader", type: "address" },
|
|
392
|
+
{ name: "serviceIdHash", type: "bytes32" },
|
|
393
|
+
{ name: "intentId", type: "bytes32" },
|
|
394
|
+
{ name: "expiresAt", type: "uint256" },
|
|
395
|
+
{ name: "nonce", type: "uint256" }
|
|
396
|
+
],
|
|
397
|
+
[
|
|
398
|
+
hashText("spice.conditional.read"),
|
|
399
|
+
BigInt(CONDITIONAL_INTENT_VERSION),
|
|
400
|
+
value.owner,
|
|
401
|
+
value.reader,
|
|
402
|
+
hashText(value.serviceId),
|
|
403
|
+
value.intentId ?? "0x" + "00".repeat(32),
|
|
404
|
+
value.expiresAt,
|
|
405
|
+
value.nonce
|
|
406
|
+
]
|
|
407
|
+
)
|
|
408
|
+
);
|
|
305
409
|
}
|
|
306
410
|
function conditionalHashMessage(hash) {
|
|
307
411
|
return hash;
|
|
@@ -422,7 +526,7 @@ var CHAINS = {
|
|
|
422
526
|
delegateContract: "0x5884Bff4876C979271E65D2feA8D0CF3bF6E6CcC",
|
|
423
527
|
escrowContract: "0x93ee466f920e1b4961f85749001f03aAd868eF0E",
|
|
424
528
|
blockExplorer: "https://etherscan.io",
|
|
425
|
-
rpcUrl: "https://
|
|
529
|
+
rpcUrl: "https://eth-mainnet.g.alchemy.com/v2/alch_4ehgbBF6bx-U6loLSFRIy",
|
|
426
530
|
logo: logo_eth
|
|
427
531
|
},
|
|
428
532
|
8453: {
|
|
@@ -434,7 +538,7 @@ var CHAINS = {
|
|
|
434
538
|
delegateContract: "0x5884Bff4876C979271E65D2feA8D0CF3bF6E6CcC",
|
|
435
539
|
escrowContract: "0xd3F8f177BB3d7dfD883d7c232f3093EdD61C3De9",
|
|
436
540
|
blockExplorer: "https://basescan.org",
|
|
437
|
-
rpcUrl: "https://
|
|
541
|
+
rpcUrl: "https://base-mainnet.g.alchemy.com/v2/alch_4ehgbBF6bx-U6loLSFRIy",
|
|
438
542
|
logo: logo_base
|
|
439
543
|
},
|
|
440
544
|
42161: {
|
|
@@ -446,7 +550,7 @@ var CHAINS = {
|
|
|
446
550
|
delegateContract: "0x262E1A689555dA5209113A056d0d164EF8355395",
|
|
447
551
|
escrowContract: "0x47d6DB10d99b1E0A074B1467407C7A53B68e1147",
|
|
448
552
|
blockExplorer: "https://arbiscan.io",
|
|
449
|
-
rpcUrl: "https://
|
|
553
|
+
rpcUrl: "https://arb-mainnet.g.alchemy.com/v2/alch_4ehgbBF6bx-U6loLSFRIy",
|
|
450
554
|
logo: logo_arb
|
|
451
555
|
},
|
|
452
556
|
4114: {
|
|
@@ -458,7 +562,7 @@ var CHAINS = {
|
|
|
458
562
|
delegateContract: "0x5884Bff4876C979271E65D2feA8D0CF3bF6E6CcC",
|
|
459
563
|
escrowContract: "0x3677113f10d82acFEeDd22dF5c7cFD58736111ee",
|
|
460
564
|
blockExplorer: "https://explorer.mainnet.citrea.xyz",
|
|
461
|
-
rpcUrl: "https://
|
|
565
|
+
rpcUrl: "https://citrea-mainnet.g.alchemy.com/v2/alch_4ehgbBF6bx-U6loLSFRIy",
|
|
462
566
|
logo: logo_citrea,
|
|
463
567
|
wrappedNativeTokenAddress: "0x3100000000000000000000000000000000000006"
|
|
464
568
|
},
|
|
@@ -3225,6 +3329,7 @@ var SPICE_COMBINED_FEE_RECIPIENT = SPICE_GAS_FEE_RECIPIENT;
|
|
|
3225
3329
|
// Annotate the CommonJS export names for ESM import in node:
|
|
3226
3330
|
0 && (module.exports = {
|
|
3227
3331
|
CHAINS,
|
|
3332
|
+
CONDITIONAL_INTENT_UNTIL_CANCELLED,
|
|
3228
3333
|
CONDITIONAL_INTENT_VERSION,
|
|
3229
3334
|
ChainBatchHashAbi,
|
|
3230
3335
|
DELEGATE_ABI,
|
package/dist/index.js
CHANGED
|
@@ -53,6 +53,7 @@ async function getRecentBlock(publicClient) {
|
|
|
53
53
|
|
|
54
54
|
// src/conditionalIntents.ts
|
|
55
55
|
import { encodeAbiParameters as encodeAbiParameters2, keccak256 as keccak2562, stringToHex } from "viem";
|
|
56
|
+
var CONDITIONAL_INTENT_UNTIL_CANCELLED = 253402300799n;
|
|
56
57
|
var CONDITIONAL_INTENT_VERSION = 1;
|
|
57
58
|
var callTuple = [
|
|
58
59
|
{ name: "to", type: "address" },
|
|
@@ -73,44 +74,97 @@ var batchTuple = [
|
|
|
73
74
|
];
|
|
74
75
|
var zeroAddress = "0x0000000000000000000000000000000000000000";
|
|
75
76
|
function encodePlanTransfer(transfer) {
|
|
76
|
-
if (transfer.from === "solver")
|
|
77
|
-
|
|
78
|
-
|
|
77
|
+
if (transfer.from === "solver")
|
|
78
|
+
return [
|
|
79
|
+
1,
|
|
80
|
+
zeroAddress,
|
|
81
|
+
transfer.to,
|
|
82
|
+
transfer.token,
|
|
83
|
+
transfer.amount
|
|
84
|
+
];
|
|
85
|
+
if (transfer.from === "escrow")
|
|
86
|
+
return [
|
|
87
|
+
2,
|
|
88
|
+
zeroAddress,
|
|
89
|
+
transfer.to,
|
|
90
|
+
transfer.token,
|
|
91
|
+
transfer.amount
|
|
92
|
+
];
|
|
93
|
+
return [
|
|
94
|
+
0,
|
|
95
|
+
transfer.from,
|
|
96
|
+
transfer.to,
|
|
97
|
+
transfer.token,
|
|
98
|
+
transfer.amount
|
|
99
|
+
];
|
|
79
100
|
}
|
|
80
|
-
function hashConditionalExecutionPlan(batches, delegationAuthorizations = []) {
|
|
101
|
+
function hashConditionalExecutionPlan(batches, delegationAuthorizations = [], waits = []) {
|
|
81
102
|
const normalized = batches.map((batch) => [
|
|
82
103
|
BigInt(batch.chainId),
|
|
83
104
|
batch.calls,
|
|
84
105
|
batch.tokenTransfers.map(encodePlanTransfer)
|
|
85
106
|
]);
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
{
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
BigInt(
|
|
107
|
-
|
|
108
|
-
auth
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
107
|
+
const baseHash = keccak2562(
|
|
108
|
+
encodeAbiParameters2(
|
|
109
|
+
[
|
|
110
|
+
{ type: "bytes32" },
|
|
111
|
+
{ type: "uint256" },
|
|
112
|
+
{ type: "tuple[]", components: batchTuple },
|
|
113
|
+
{
|
|
114
|
+
type: "tuple[]",
|
|
115
|
+
components: [
|
|
116
|
+
{ name: "address", type: "address" },
|
|
117
|
+
{ name: "chainId", type: "uint256" },
|
|
118
|
+
{ name: "nonce", type: "uint256" },
|
|
119
|
+
{ name: "r", type: "bytes32" },
|
|
120
|
+
{ name: "s", type: "bytes32" },
|
|
121
|
+
{ name: "yParity", type: "uint8" }
|
|
122
|
+
]
|
|
123
|
+
}
|
|
124
|
+
],
|
|
125
|
+
[
|
|
126
|
+
keccak2562(stringToHex("spice.conditional.execution-plan")),
|
|
127
|
+
BigInt(CONDITIONAL_INTENT_VERSION),
|
|
128
|
+
normalized,
|
|
129
|
+
delegationAuthorizations.map((auth) => [
|
|
130
|
+
auth.address,
|
|
131
|
+
BigInt(auth.chainId),
|
|
132
|
+
BigInt(auth.nonce),
|
|
133
|
+
auth.r,
|
|
134
|
+
auth.s,
|
|
135
|
+
auth.yParity ?? 0
|
|
136
|
+
])
|
|
137
|
+
]
|
|
138
|
+
)
|
|
139
|
+
);
|
|
140
|
+
if (!waits.length) return baseHash;
|
|
141
|
+
return keccak2562(
|
|
142
|
+
encodeAbiParameters2(
|
|
143
|
+
[
|
|
144
|
+
{ type: "bytes32" },
|
|
145
|
+
{ type: "bytes32" },
|
|
146
|
+
{
|
|
147
|
+
type: "tuple[]",
|
|
148
|
+
components: [
|
|
149
|
+
{ name: "batchIndex", type: "uint256" },
|
|
150
|
+
{ name: "to", type: "address" },
|
|
151
|
+
{ name: "data", type: "bytes" },
|
|
152
|
+
{ name: "expected", type: "uint256" }
|
|
153
|
+
]
|
|
154
|
+
}
|
|
155
|
+
],
|
|
156
|
+
[
|
|
157
|
+
keccak2562(stringToHex("spice.conditional.execution-waits.v1")),
|
|
158
|
+
baseHash,
|
|
159
|
+
waits.map((w) => ({
|
|
160
|
+
batchIndex: BigInt(w.batchIndex),
|
|
161
|
+
to: w.to,
|
|
162
|
+
data: w.data,
|
|
163
|
+
expected: w.expected
|
|
164
|
+
}))
|
|
165
|
+
]
|
|
166
|
+
)
|
|
167
|
+
);
|
|
114
168
|
}
|
|
115
169
|
var authorizationTypes = [
|
|
116
170
|
{ name: "domain", type: "bytes32" },
|
|
@@ -136,76 +190,125 @@ function semanticsValue(value) {
|
|
|
136
190
|
return value === "state" ? 0 : 1;
|
|
137
191
|
}
|
|
138
192
|
function hashConditionalIntentAuthorization(value) {
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
193
|
+
const original = keccak2562(
|
|
194
|
+
encodeAbiParameters2(authorizationTypes, [
|
|
195
|
+
hashText("spice.conditional.authorization"),
|
|
196
|
+
BigInt(CONDITIONAL_INTENT_VERSION),
|
|
197
|
+
value.owner,
|
|
198
|
+
hashText(value.clientId),
|
|
199
|
+
hashText(value.serviceId),
|
|
200
|
+
value.authorizationNonce,
|
|
201
|
+
value.executionDigest,
|
|
202
|
+
value.executionPlanHash,
|
|
203
|
+
value.triggerSpecificationHash,
|
|
204
|
+
value.evaluator,
|
|
205
|
+
semanticsValue(value.semantics),
|
|
206
|
+
value.maxSignalAgeSeconds,
|
|
207
|
+
value.validAfter,
|
|
208
|
+
value.expiresAt,
|
|
209
|
+
BigInt(value.maxExecutions)
|
|
210
|
+
])
|
|
211
|
+
);
|
|
212
|
+
return value.replacesIntentId ? keccak2562(
|
|
213
|
+
encodeAbiParameters2(
|
|
214
|
+
[{ type: "bytes32" }, { type: "bytes32" }, { type: "bytes32" }],
|
|
215
|
+
[
|
|
216
|
+
hashText("spice.conditional.amendment.v1"),
|
|
217
|
+
value.replacesIntentId,
|
|
218
|
+
original
|
|
219
|
+
]
|
|
220
|
+
)
|
|
221
|
+
) : original;
|
|
156
222
|
}
|
|
157
223
|
function getConditionalIntentId(authorizationHash) {
|
|
158
|
-
return keccak2562(
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
224
|
+
return keccak2562(
|
|
225
|
+
encodeAbiParameters2(
|
|
226
|
+
[{ type: "bytes32" }, { type: "bytes32" }],
|
|
227
|
+
[hashText("spice.conditional.intent-id"), authorizationHash]
|
|
228
|
+
)
|
|
229
|
+
);
|
|
162
230
|
}
|
|
163
231
|
function hashConditionalSignal(value, serviceId) {
|
|
164
|
-
return keccak2562(
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
232
|
+
return keccak2562(
|
|
233
|
+
encodeAbiParameters2(
|
|
234
|
+
[
|
|
235
|
+
{ name: "domain", type: "bytes32" },
|
|
236
|
+
{ name: "version", type: "uint256" },
|
|
237
|
+
{ name: "serviceIdHash", type: "bytes32" },
|
|
238
|
+
{ name: "intentId", type: "bytes32" },
|
|
239
|
+
{ name: "executionDigest", type: "bytes32" },
|
|
240
|
+
{ name: "triggerSpecificationHash", type: "bytes32" },
|
|
241
|
+
{ name: "signalIdHash", type: "bytes32" },
|
|
242
|
+
{ name: "observedAt", type: "uint256" },
|
|
243
|
+
{ name: "validUntil", type: "uint256" },
|
|
244
|
+
{ name: "satisfied", type: "bool" },
|
|
245
|
+
{ name: "evidenceHash", type: "bytes32" }
|
|
246
|
+
],
|
|
247
|
+
[
|
|
248
|
+
hashText("spice.conditional.signal"),
|
|
249
|
+
BigInt(CONDITIONAL_INTENT_VERSION),
|
|
250
|
+
hashText(serviceId),
|
|
251
|
+
value.intentId,
|
|
252
|
+
value.executionDigest,
|
|
253
|
+
value.triggerSpecificationHash,
|
|
254
|
+
hashText(value.signalId),
|
|
255
|
+
value.observedAt,
|
|
256
|
+
value.validUntil,
|
|
257
|
+
value.satisfied,
|
|
258
|
+
value.evidenceHash ?? "0x" + "00".repeat(32)
|
|
259
|
+
]
|
|
260
|
+
)
|
|
261
|
+
);
|
|
180
262
|
}
|
|
181
263
|
function hashConditionalCancellation(value) {
|
|
182
|
-
return keccak2562(
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
264
|
+
return keccak2562(
|
|
265
|
+
encodeAbiParameters2(
|
|
266
|
+
[
|
|
267
|
+
{ name: "domain", type: "bytes32" },
|
|
268
|
+
{ name: "version", type: "uint256" },
|
|
269
|
+
{ name: "owner", type: "address" },
|
|
270
|
+
{ name: "serviceIdHash", type: "bytes32" },
|
|
271
|
+
{ name: "intentId", type: "bytes32" },
|
|
272
|
+
{ name: "cancellationNonce", type: "uint256" },
|
|
273
|
+
{ name: "expiresAt", type: "uint256" }
|
|
274
|
+
],
|
|
275
|
+
[
|
|
276
|
+
hashText("spice.conditional.cancel"),
|
|
277
|
+
BigInt(CONDITIONAL_INTENT_VERSION),
|
|
278
|
+
value.owner,
|
|
279
|
+
hashText(value.serviceId),
|
|
280
|
+
value.intentId,
|
|
281
|
+
value.cancellationNonce,
|
|
282
|
+
value.expiresAt
|
|
283
|
+
]
|
|
284
|
+
)
|
|
285
|
+
);
|
|
194
286
|
}
|
|
195
287
|
function hashConditionalReadAuthorization(value) {
|
|
196
|
-
return keccak2562(
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
288
|
+
return keccak2562(
|
|
289
|
+
encodeAbiParameters2(
|
|
290
|
+
[
|
|
291
|
+
{ name: "domain", type: "bytes32" },
|
|
292
|
+
{ name: "version", type: "uint256" },
|
|
293
|
+
{ name: "owner", type: "address" },
|
|
294
|
+
{ name: "reader", type: "address" },
|
|
295
|
+
{ name: "serviceIdHash", type: "bytes32" },
|
|
296
|
+
{ name: "intentId", type: "bytes32" },
|
|
297
|
+
{ name: "expiresAt", type: "uint256" },
|
|
298
|
+
{ name: "nonce", type: "uint256" }
|
|
299
|
+
],
|
|
300
|
+
[
|
|
301
|
+
hashText("spice.conditional.read"),
|
|
302
|
+
BigInt(CONDITIONAL_INTENT_VERSION),
|
|
303
|
+
value.owner,
|
|
304
|
+
value.reader,
|
|
305
|
+
hashText(value.serviceId),
|
|
306
|
+
value.intentId ?? "0x" + "00".repeat(32),
|
|
307
|
+
value.expiresAt,
|
|
308
|
+
value.nonce
|
|
309
|
+
]
|
|
310
|
+
)
|
|
311
|
+
);
|
|
209
312
|
}
|
|
210
313
|
function conditionalHashMessage(hash) {
|
|
211
314
|
return hash;
|
|
@@ -334,7 +437,7 @@ var CHAINS = {
|
|
|
334
437
|
delegateContract: "0x5884Bff4876C979271E65D2feA8D0CF3bF6E6CcC",
|
|
335
438
|
escrowContract: "0x93ee466f920e1b4961f85749001f03aAd868eF0E",
|
|
336
439
|
blockExplorer: "https://etherscan.io",
|
|
337
|
-
rpcUrl: "https://
|
|
440
|
+
rpcUrl: "https://eth-mainnet.g.alchemy.com/v2/alch_4ehgbBF6bx-U6loLSFRIy",
|
|
338
441
|
logo: logo_eth
|
|
339
442
|
},
|
|
340
443
|
8453: {
|
|
@@ -346,7 +449,7 @@ var CHAINS = {
|
|
|
346
449
|
delegateContract: "0x5884Bff4876C979271E65D2feA8D0CF3bF6E6CcC",
|
|
347
450
|
escrowContract: "0xd3F8f177BB3d7dfD883d7c232f3093EdD61C3De9",
|
|
348
451
|
blockExplorer: "https://basescan.org",
|
|
349
|
-
rpcUrl: "https://
|
|
452
|
+
rpcUrl: "https://base-mainnet.g.alchemy.com/v2/alch_4ehgbBF6bx-U6loLSFRIy",
|
|
350
453
|
logo: logo_base
|
|
351
454
|
},
|
|
352
455
|
42161: {
|
|
@@ -358,7 +461,7 @@ var CHAINS = {
|
|
|
358
461
|
delegateContract: "0x262E1A689555dA5209113A056d0d164EF8355395",
|
|
359
462
|
escrowContract: "0x47d6DB10d99b1E0A074B1467407C7A53B68e1147",
|
|
360
463
|
blockExplorer: "https://arbiscan.io",
|
|
361
|
-
rpcUrl: "https://
|
|
464
|
+
rpcUrl: "https://arb-mainnet.g.alchemy.com/v2/alch_4ehgbBF6bx-U6loLSFRIy",
|
|
362
465
|
logo: logo_arb
|
|
363
466
|
},
|
|
364
467
|
4114: {
|
|
@@ -370,7 +473,7 @@ var CHAINS = {
|
|
|
370
473
|
delegateContract: "0x5884Bff4876C979271E65D2feA8D0CF3bF6E6CcC",
|
|
371
474
|
escrowContract: "0x3677113f10d82acFEeDd22dF5c7cFD58736111ee",
|
|
372
475
|
blockExplorer: "https://explorer.mainnet.citrea.xyz",
|
|
373
|
-
rpcUrl: "https://
|
|
476
|
+
rpcUrl: "https://citrea-mainnet.g.alchemy.com/v2/alch_4ehgbBF6bx-U6loLSFRIy",
|
|
374
477
|
logo: logo_citrea,
|
|
375
478
|
wrappedNativeTokenAddress: "0x3100000000000000000000000000000000000006"
|
|
376
479
|
},
|
|
@@ -3136,6 +3239,7 @@ var SPICE_PLATFORM_FEE_RECIPIENT = "0xa4bB4c1D188B94c0cF691Dad213dE24169fA0A50";
|
|
|
3136
3239
|
var SPICE_COMBINED_FEE_RECIPIENT = SPICE_GAS_FEE_RECIPIENT;
|
|
3137
3240
|
export {
|
|
3138
3241
|
CHAINS,
|
|
3242
|
+
CONDITIONAL_INTENT_UNTIL_CANCELLED,
|
|
3139
3243
|
CONDITIONAL_INTENT_VERSION,
|
|
3140
3244
|
ChainBatchHashAbi,
|
|
3141
3245
|
DELEGATE_ABI,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@spicenet-io/spiceflow-core",
|
|
3
|
-
"version": "0.10.0
|
|
3
|
+
"version": "0.10.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "dist/index.cjs",
|
|
6
6
|
"module": "dist/index.js",
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
"docs:clean": "rimraf docs",
|
|
20
20
|
"docs:serve": "bunx http-server docs -p 3000 --silent",
|
|
21
21
|
"prepare": "husky || true",
|
|
22
|
-
"prepack": "bun run build
|
|
22
|
+
"prepack": "bun run build"
|
|
23
23
|
},
|
|
24
24
|
"exports": {
|
|
25
25
|
".": {
|