@ftptech/canton-agent-wallet 0.1.19 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -10,5 +10,5 @@ export * from "./pay.js";
10
10
  export * from "./hash-binding.js";
11
11
  export * from "./canton-hash.js";
12
12
  export * from "./trusted-dso.js";
13
- export { assertPreparedTransferMatches, assertPreparedCreateTransferCommandMatches, assertPreparedConsentCreateMatches, assertHashBinding, assertOnboardingTopologyBindsKey, decodePrepared, extractTransfer, extractCreateTransferCommand, PreparedDecodeError, PreparedTransferMismatchError, PreparedHashUnavailableError, OnboardingTopologyMismatchError, type HashBindingOptions, type PreparedTransferExpectation, type PreparedCreateTransferCommandExpectation, type PreparedConsentCreateExpectation, type OnboardingTopologyExpectation, } from "./verify-prepared.js";
13
+ export { assertPreparedTransferMatches, assertPreparedConsentCreateMatches, assertHashBinding, assertOnboardingTopologyBindsKey, decodePrepared, extractTransfer, PreparedDecodeError, PreparedTransferMismatchError, PreparedHashUnavailableError, OnboardingTopologyMismatchError, type HashBindingOptions, type PreparedTransferExpectation, type PreparedConsentCreateExpectation, type OnboardingTopologyExpectation, } from "./verify-prepared.js";
14
14
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,SAAS,CAAC;AACxB,cAAc,qBAAqB,CAAC;AACpC,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,OAAO,EACL,6BAA6B,EAC7B,0CAA0C,EAC1C,kCAAkC,EAClC,iBAAiB,EACjB,gCAAgC,EAChC,cAAc,EACd,eAAe,EACf,4BAA4B,EAC5B,mBAAmB,EACnB,6BAA6B,EAC7B,4BAA4B,EAC5B,+BAA+B,EAC/B,KAAK,kBAAkB,EACvB,KAAK,2BAA2B,EAChC,KAAK,wCAAwC,EAC7C,KAAK,gCAAgC,EACrC,KAAK,6BAA6B,GACnC,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,SAAS,CAAC;AACxB,cAAc,qBAAqB,CAAC;AACpC,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,OAAO,EACL,6BAA6B,EAC7B,kCAAkC,EAClC,iBAAiB,EACjB,gCAAgC,EAChC,cAAc,EACd,eAAe,EACf,mBAAmB,EACnB,6BAA6B,EAC7B,4BAA4B,EAC5B,+BAA+B,EAC/B,KAAK,kBAAkB,EACvB,KAAK,2BAA2B,EAChC,KAAK,gCAAgC,EACrC,KAAK,6BAA6B,GACnC,MAAM,sBAAsB,CAAC"}
package/dist/index.js CHANGED
@@ -10,5 +10,5 @@ export * from "./pay.js";
10
10
  export * from "./hash-binding.js";
11
11
  export * from "./canton-hash.js";
12
12
  export * from "./trusted-dso.js";
13
- export { assertPreparedTransferMatches, assertPreparedCreateTransferCommandMatches, assertPreparedConsentCreateMatches, assertHashBinding, assertOnboardingTopologyBindsKey, decodePrepared, extractTransfer, extractCreateTransferCommand, PreparedDecodeError, PreparedTransferMismatchError, PreparedHashUnavailableError, OnboardingTopologyMismatchError, } from "./verify-prepared.js";
13
+ export { assertPreparedTransferMatches, assertPreparedConsentCreateMatches, assertHashBinding, assertOnboardingTopologyBindsKey, decodePrepared, extractTransfer, PreparedDecodeError, PreparedTransferMismatchError, PreparedHashUnavailableError, OnboardingTopologyMismatchError, } from "./verify-prepared.js";
14
14
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,SAAS,CAAC;AACxB,cAAc,qBAAqB,CAAC;AACpC,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,OAAO,EACL,6BAA6B,EAC7B,0CAA0C,EAC1C,kCAAkC,EAClC,iBAAiB,EACjB,gCAAgC,EAChC,cAAc,EACd,eAAe,EACf,4BAA4B,EAC5B,mBAAmB,EACnB,6BAA6B,EAC7B,4BAA4B,EAC5B,+BAA+B,GAMhC,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,mBAAmB,CAAC;AAClC,cAAc,SAAS,CAAC;AACxB,cAAc,qBAAqB,CAAC;AACpC,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,OAAO,EACL,6BAA6B,EAC7B,kCAAkC,EAClC,iBAAiB,EACjB,gCAAgC,EAChC,cAAc,EACd,eAAe,EACf,mBAAmB,EACnB,6BAA6B,EAC7B,4BAA4B,EAC5B,+BAA+B,GAKhC,MAAM,sBAAsB,CAAC"}
package/dist/pay.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"pay.d.ts","sourceRoot":"","sources":["../src/pay.ts"],"names":[],"mappings":"AAWA,OAAO,EAAgB,KAAK,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAGnE,OAAO,EAAa,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AACzD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE/D,MAAM,WAAW,OAAQ,SAAQ,gBAAgB;IAC/C,gEAAgE;IAChE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,kBAAkB,CAAC;IACjC;;;wCAGoC;IACpC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;;;;yEAKqE;IACrE,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;8CAG0C;IAC1C,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,wBAAsB,eAAe,CACnC,IAAI,EAAE,OAAO,GACZ,OAAO,CAAC,OAAO,UAAU,CAAC,KAAK,CAAC,CAMlC;AAED;;;;;;;GAOG;AACH,wBAAsB,wBAAwB,CAC5C,MAAM,EAAE,WAAW,EACnB,IAAI,EAAE,IAAI,CACR,OAAO,EACP,QAAQ,GAAG,aAAa,GAAG,mBAAmB,GAAG,iBAAiB,GAAG,eAAe,CACrF,EACD,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,OAAO,UAAU,CAAC,KAAK,CAAC,CA2ClC"}
1
+ {"version":3,"file":"pay.d.ts","sourceRoot":"","sources":["../src/pay.ts"],"names":[],"mappings":"AAWA,OAAO,EAAgB,KAAK,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAGnE,OAAO,EAAa,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AACzD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE/D,MAAM,WAAW,OAAQ,SAAQ,gBAAgB;IAC/C,gEAAgE;IAChE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,kBAAkB,CAAC;IACjC;;;wCAGoC;IACpC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;;;;yEAKqE;IACrE,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;8CAG0C;IAC1C,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,wBAAsB,eAAe,CACnC,IAAI,EAAE,OAAO,GACZ,OAAO,CAAC,OAAO,UAAU,CAAC,KAAK,CAAC,CAMlC;AAED;;;;;;;GAOG;AACH,wBAAsB,wBAAwB,CAC5C,MAAM,EAAE,WAAW,EACnB,IAAI,EAAE,IAAI,CACR,OAAO,EACP,QAAQ,GAAG,aAAa,GAAG,mBAAmB,GAAG,iBAAiB,GAAG,eAAe,CACrF,EACD,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,OAAO,UAAU,CAAC,KAAK,CAAC,CA0ClC"}
package/dist/pay.js CHANGED
@@ -44,15 +44,13 @@ export async function makePayingFetchForWallet(wallet, opts, lockHome) {
44
44
  // ephemeral wallet has no same-wallet concurrency and no home dir, so it always
45
45
  // skips the lock.
46
46
  //
47
- // METHOD-AWARE: the per-wallet mutex exists ONLY for the v1 nonce path
48
- // (external-party-amulet-rules)two v1 pays signed against the same
49
- // TransferCommandCounter can never both settle, so they MUST serialize. The
50
- // no-nonce allocation-direct / allocation-api / cip56 paths have no such
51
- // constraint; serializing them only throttles throughput, and concurrent
52
- // allocates are kept collision-free by disjoint holding reservation
53
- // (tx.ts::allocate). So peek the method the pay will actually use and lock ONLY
54
- // for v1; `undefined` ("can't tell" — non-402-shaped/unparseable challenge)
55
- // falls through to serialize so v1 never loses its protection by accident.
47
+ // METHOD-AWARE: the no-nonce allocation-direct path has no same-wallet
48
+ // serialization constraint concurrent allocates are kept collision-free by
49
+ // disjoint holding reservation (tx.ts::allocate), so serializing them only
50
+ // throttles throughput. We therefore peek the method the pay will actually use
51
+ // and SKIP the lock for a recognized (allocation-direct) method; `undefined`
52
+ // ("can't tell" a non-402-shaped/unparseable challenge) falls through to
53
+ // serialize as a fail-safe.
56
54
  return async function payingFetch(input, init) {
57
55
  const probe = await globalThis.fetch(input, init);
58
56
  if (probe.status !== 402)
@@ -60,7 +58,9 @@ export async function makePayingFetchForWallet(wallet, opts, lockHome) {
60
58
  if (lockHome === undefined)
61
59
  return paying(input, init);
62
60
  const method = peekChosenTransferMethod(probe, signer);
63
- const needsSerialization = method === undefined || method === "external-party-amulet-rules";
61
+ // Only serialize when we cannot determine the method (fail-safe). A
62
+ // recognized no-nonce method (allocation-direct) skips the lock.
63
+ const needsSerialization = method === undefined;
64
64
  if (!needsSerialization)
65
65
  return paying(input, init);
66
66
  return withPayLock(lockHome, () => paying(input, init));
package/dist/pay.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"pay.js","sourceRoot":"","sources":["../src/pay.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EACL,0BAA0B,EAC1B,wBAAwB,GACzB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,YAAY,EAAyB,MAAM,cAAc,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAoB,MAAM,YAAY,CAAC;AAiCzD,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,IAAa;IAEb,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,CAAC;IACxC,6EAA6E;IAC7E,6EAA6E;IAC7E,6CAA6C;IAC7C,OAAO,wBAAwB,CAAC,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;AAC7D,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,MAAmB,EACnB,IAGC,EACD,QAAiB;IAEjB,MAAM,MAAM,GAAG,eAAe,CAAC,MAAM,EAAE;QACrC,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9D,GAAG,CAAC,IAAI,CAAC,eAAe,KAAK,SAAS;YACpC,CAAC,CAAC,EAAE,eAAe,EAAE,IAAI,CAAC,eAAe,EAAE;YAC3C,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,IAAI,CAAC,aAAa,KAAK,SAAS;YAClC,CAAC,CAAC,EAAE,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE;YACvC,CAAC,CAAC,EAAE,CAAC;KACR,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,0BAA0B,CACvC,UAAU,CAAC,KAAK,EAChB,MAAM,EACN,IAAI,CAAC,iBAAiB,KAAK,SAAS;QAClC,CAAC,CAAC,EAAE,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,EAAE;QAC/C,CAAC,CAAC,EAAE,CACP,CAAC;IAEF,6EAA6E;IAC7E,wEAAwE;IACxE,gFAAgF;IAChF,kBAAkB;IAClB,EAAE;IACF,uEAAuE;IACvE,sEAAsE;IACtE,4EAA4E;IAC5E,yEAAyE;IACzE,yEAAyE;IACzE,oEAAoE;IACpE,gFAAgF;IAChF,4EAA4E;IAC5E,2EAA2E;IAC3E,OAAO,KAAK,UAAU,WAAW,CAAC,KAAK,EAAE,IAAI;QAC3C,MAAM,KAAK,GAAG,MAAM,UAAU,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAClD,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG;YAAE,OAAO,KAAK,CAAC;QACvC,IAAI,QAAQ,KAAK,SAAS;YAAE,OAAO,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QACvD,MAAM,MAAM,GAAG,wBAAwB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACvD,MAAM,kBAAkB,GACtB,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,6BAA6B,CAAC;QACnE,IAAI,CAAC,kBAAkB;YAAE,OAAO,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QACpD,OAAO,WAAW,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;IAC1D,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"pay.js","sourceRoot":"","sources":["../src/pay.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EACL,0BAA0B,EAC1B,wBAAwB,GACzB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,YAAY,EAAyB,MAAM,cAAc,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAoB,MAAM,YAAY,CAAC;AAiCzD,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,IAAa;IAEb,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,CAAC;IACxC,6EAA6E;IAC7E,6EAA6E;IAC7E,6CAA6C;IAC7C,OAAO,wBAAwB,CAAC,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;AAC7D,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,MAAmB,EACnB,IAGC,EACD,QAAiB;IAEjB,MAAM,MAAM,GAAG,eAAe,CAAC,MAAM,EAAE;QACrC,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9D,GAAG,CAAC,IAAI,CAAC,eAAe,KAAK,SAAS;YACpC,CAAC,CAAC,EAAE,eAAe,EAAE,IAAI,CAAC,eAAe,EAAE;YAC3C,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,IAAI,CAAC,aAAa,KAAK,SAAS;YAClC,CAAC,CAAC,EAAE,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE;YACvC,CAAC,CAAC,EAAE,CAAC;KACR,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,0BAA0B,CACvC,UAAU,CAAC,KAAK,EAChB,MAAM,EACN,IAAI,CAAC,iBAAiB,KAAK,SAAS;QAClC,CAAC,CAAC,EAAE,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,EAAE;QAC/C,CAAC,CAAC,EAAE,CACP,CAAC;IAEF,6EAA6E;IAC7E,wEAAwE;IACxE,gFAAgF;IAChF,kBAAkB;IAClB,EAAE;IACF,uEAAuE;IACvE,6EAA6E;IAC7E,2EAA2E;IAC3E,+EAA+E;IAC/E,6EAA6E;IAC7E,2EAA2E;IAC3E,4BAA4B;IAC5B,OAAO,KAAK,UAAU,WAAW,CAAC,KAAK,EAAE,IAAI;QAC3C,MAAM,KAAK,GAAG,MAAM,UAAU,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAClD,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG;YAAE,OAAO,KAAK,CAAC;QACvC,IAAI,QAAQ,KAAK,SAAS;YAAE,OAAO,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QACvD,MAAM,MAAM,GAAG,wBAAwB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACvD,oEAAoE;QACpE,iEAAiE;QACjE,MAAM,kBAAkB,GAAG,MAAM,KAAK,SAAS,CAAC;QAChD,IAAI,CAAC,kBAAkB;YAAE,OAAO,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QACpD,OAAO,WAAW,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;IAC1D,CAAC,CAAC;AACJ,CAAC"}
@@ -61,33 +61,6 @@ export interface PendingResult {
61
61
  sender?: string;
62
62
  }>;
63
63
  }
64
- /** v1 (external-party-amulet-rules): everything the agent needs to BUILD an
65
- * `ExternalPartyAmuletRules_CreateTransferCommand` exercise. The agent pins
66
- * sender/receiver/amount/delegate to its OWN intent in verify-before-sign —
67
- * these refs widen nothing it will sign. */
68
- export interface ResolveTransferCommandResult {
69
- externalPartyAmuletRules: {
70
- contractId: string;
71
- /** EPAR's OWN resolved templateId (matches createdEventBlob's package). */
72
- templateId: string;
73
- createdEventBlob: string;
74
- };
75
- /** Resolved templateId for the CreateTransferCommand EXERCISE target. */
76
- exerciseTemplateId: string;
77
- /** The facilitator/delegate party (relay-supplied; the agent ALSO pins this
78
- * to the 402's extra.facilitatorParty before signing). */
79
- delegate: string;
80
- /** Authoritative DSO party for the command's expectedDso field. */
81
- expectedDso: string;
82
- synchronizerId: string;
83
- /** The agent's next-expected nonce (Daml Int as a string). */
84
- nextNonce: string;
85
- }
86
- export interface TransferCommandCidResult {
87
- party: string;
88
- nonce: string;
89
- transferCommandCid: string;
90
- }
91
64
  /** allocation-api: everything the agent needs to BUILD an
92
65
  * `AllocationFactory_Allocate` exercise. None of these is a verify trust
93
66
  * anchor — the agent pins sender/receiver/amount/executor to its OWN intent in
@@ -120,14 +93,6 @@ export interface AllocationResultResult {
120
93
  allocationCid?: string | null;
121
94
  allocationInstructionCid?: string | null;
122
95
  }
123
- /** The created `X402Escrow` cid read off the `X402EscrowOffer_Accept` transaction
124
- * by the relay (x402-escrow "Design A"). `escrowCid` is null if the relay could
125
- * not resolve the created `X402Escrow` within its poll budget. */
126
- export interface EscrowResultResult {
127
- party: string;
128
- updateId: string;
129
- escrowCid?: string | null;
130
- }
131
96
  /** x402-direct "Design B": the result of resolving/minting the standing both-party
132
97
  * DirectSettlementConsent for a {sender, merchant} pair (facilitator-side
133
98
  * MerchantConsent_Accept). `minted` is false when an existing consent was reused. */
@@ -197,10 +162,6 @@ export declare class RelayClient {
197
162
  resolveWithdraw(b: {
198
163
  allocationCid: string;
199
164
  }): Promise<ResolveWithdrawResult>;
200
- /** v1: resolve the refs needed to build a CreateTransferCommand exercise. */
201
- resolveTransferCommand(b: {
202
- payerParty: string;
203
- }): Promise<ResolveTransferCommandResult>;
204
165
  /** allocation-api: resolve the AllocationFactory + its disclosed contracts +
205
166
  * choice-context (the agent has no Scan access). Mirrors
206
167
  * resolveTransferFactory. */
@@ -216,13 +177,6 @@ export declare class RelayClient {
216
177
  /** allocation-api: read the created Allocation / AllocationInstruction cid off
217
178
  * the AllocationFactory_Allocate transaction (the agent is relay-only). */
218
179
  allocationResult(party: string, updateId: string): Promise<AllocationResultResult>;
219
- /** x402-escrow "Design A": read the created `X402Escrow` cid off the
220
- * `X402EscrowOffer_Accept` transaction (the agent is relay-only). Mirrors
221
- * `allocationResult`: the relay reads the tx by updateId and matches the created
222
- * `X402Escrow` template. Requires a matching facilitator-side `escrow-result`
223
- * endpoint (a `getTransactionById` + templateId-endsWith match, exactly like
224
- * `allocation-result`). */
225
- escrowResult(party: string, updateId: string): Promise<EscrowResultResult>;
226
180
  /** x402-direct "Design B": resolve OR mint the standing both-party
227
181
  * DirectSettlementConsent for the {sender, merchant} pair (the facilitator
228
182
  * exercises MerchantConsent_Accept ALONE off the two standing consents). The
@@ -235,13 +189,5 @@ export declare class RelayClient {
235
189
  merchant: string;
236
190
  maxAmount?: string | null;
237
191
  }): Promise<MintDirectConsentResult>;
238
- /** v1: resolve the cid of the just-created TransferCommand via the relay.
239
- * Pass the create's `updateId` (from execute) so the relay reads the cid
240
- * straight off that transaction — O(1) and immune to the ACS list cap the
241
- * legacy (sender, nonce) poll hits once a payer accumulates many unspent
242
- * commands. The nonce stays as the relay's fallback matcher. Returns 404
243
- * if nothing is found within the relay's poll budget (surfaced here as a
244
- * thrown relay error). */
245
- transferCommandCid(party: string, nonce: string, updateId?: string): Promise<TransferCommandCidResult>;
246
192
  }
247
193
  //# sourceMappingURL=relay-client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"relay-client.d.ts","sourceRoot":"","sources":["../src/relay-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"relay-client.d.ts","sourceRoot":"","sources":["../src/relay-client.ts"],"names":[],"mappings":"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"}
@@ -74,10 +74,6 @@ export class RelayClient {
74
74
  resolveWithdraw(b) {
75
75
  return this.req("POST", "/v1/wallet/resolve/withdraw", b);
76
76
  }
77
- /** v1: resolve the refs needed to build a CreateTransferCommand exercise. */
78
- resolveTransferCommand(b) {
79
- return this.req("POST", "/v1/wallet/resolve/transfer-command", b);
80
- }
81
77
  /** allocation-api: resolve the AllocationFactory + its disclosed contracts +
82
78
  * choice-context (the agent has no Scan access). Mirrors
83
79
  * resolveTransferFactory. */
@@ -89,15 +85,6 @@ export class RelayClient {
89
85
  allocationResult(party, updateId) {
90
86
  return this.req("GET", `/v1/wallet/${encodeURIComponent(party)}/allocation-result?updateId=${encodeURIComponent(updateId)}`);
91
87
  }
92
- /** x402-escrow "Design A": read the created `X402Escrow` cid off the
93
- * `X402EscrowOffer_Accept` transaction (the agent is relay-only). Mirrors
94
- * `allocationResult`: the relay reads the tx by updateId and matches the created
95
- * `X402Escrow` template. Requires a matching facilitator-side `escrow-result`
96
- * endpoint (a `getTransactionById` + templateId-endsWith match, exactly like
97
- * `allocation-result`). */
98
- escrowResult(party, updateId) {
99
- return this.req("GET", `/v1/wallet/${encodeURIComponent(party)}/escrow-result?updateId=${encodeURIComponent(updateId)}`);
100
- }
101
88
  /** x402-direct "Design B": resolve OR mint the standing both-party
102
89
  * DirectSettlementConsent for the {sender, merchant} pair (the facilitator
103
90
  * exercises MerchantConsent_Accept ALONE off the two standing consents). The
@@ -108,17 +95,5 @@ export class RelayClient {
108
95
  mintDirectConsent(b) {
109
96
  return this.req("POST", "/v1/wallet/direct/mint", b);
110
97
  }
111
- /** v1: resolve the cid of the just-created TransferCommand via the relay.
112
- * Pass the create's `updateId` (from execute) so the relay reads the cid
113
- * straight off that transaction — O(1) and immune to the ACS list cap the
114
- * legacy (sender, nonce) poll hits once a payer accumulates many unspent
115
- * commands. The nonce stays as the relay's fallback matcher. Returns 404
116
- * if nothing is found within the relay's poll budget (surfaced here as a
117
- * thrown relay error). */
118
- transferCommandCid(party, nonce, updateId) {
119
- const q = `nonce=${encodeURIComponent(nonce)}` +
120
- (updateId ? `&updateId=${encodeURIComponent(updateId)}` : "");
121
- return this.req("GET", `/v1/wallet/${encodeURIComponent(party)}/transfer-command?${q}`);
122
- }
123
98
  }
124
99
  //# sourceMappingURL=relay-client.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"relay-client.js","sourceRoot":"","sources":["../src/relay-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"relay-client.js","sourceRoot":"","sources":["../src/relay-client.ts"],"names":[],"mappings":"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"}
@@ -1,26 +1,23 @@
1
1
  /**
2
2
  * makeRelaySigner — a CantonSigner backed by the facilitator relay + the agent's
3
- * self-custody key. It implements BOTH x402 transfer methods so the x402 client
4
- * (`ExactCantonScheme`) can pick the right arm from the 402's advertised method:
3
+ * self-custody key. It implements the allocation-direct x402 transfer method:
5
4
  *
6
- * - `signCip56Transfer` (cip56-transfer-factory): resolve the factory (+ its
7
- * disclosed contracts / choice context) via the relay, build
8
- * TransferFactory_Transfer, verify-before-sign, sign locally, execute.
9
- * - `signTransferCommand` (external-party-amulet-rules, v1 / mainnet-primary):
10
- * resolve the EPAR refs via the relay, build
11
- * ExternalPartyAmuletRules_CreateTransferCommand, verify-before-sign, sign
12
- * locally, execute, then read back the created TransferCommand cid.
5
+ * - `signAllocationDirect` (allocation-direct, CIP-56 DVP "2-tx DIRECT"):
6
+ * ensure the standing both-party DirectSettlementConsent, resolve the
7
+ * AllocationFactory (+ its disclosed contracts / choice context) via the
8
+ * relay, build AllocationFactory_Allocate, verify-before-sign, sign locally,
9
+ * execute.
13
10
  *
14
- * Method SELECTION is the x402 client's job: it calls `signTransferCommand` iff
15
- * the 402's `extra.transferMethod === "external-party-amulet-rules"` and
16
- * `signCip56Transfer` iff `=== "cip56-transfer-factory"` (see scheme.ts). In
17
- * BOTH cases the relay only prepares + forwards; it never holds the key, so it
18
- * can never move the agent's funds, and verify-before-sign + hash-binding keep
19
- * the self-custody guarantee on each path.
11
+ * The x402 client (`ExactCantonScheme`) calls `signAllocationDirect` when the
12
+ * 402's `extra.transferMethod === "allocation-direct"` (see scheme.ts). The relay
13
+ * only prepares + forwards; it never holds the key, so it can never move the
14
+ * agent's funds, and verify-before-sign + hash-binding keep the self-custody
15
+ * guarantee.
20
16
  */
21
17
  import type { CantonSigner } from "@ftptech/x402-canton-client";
22
18
  import type { AgentWallet } from "./store.js";
23
19
  import type { HashBindingOptions } from "./verify-prepared.js";
20
+ export declare function withStaleInputRetry<T>(run: () => Promise<T>, sleep?: (ms: number) => Promise<void>): Promise<T>;
24
21
  export declare function makeRelaySigner(wallet: AgentWallet, opts?: {
25
22
  apiKey?: string | undefined;
26
23
  hashBinding?: HashBindingOptions;
@@ -1 +1 @@
1
- {"version":3,"file":"relay-signer.d.ts","sourceRoot":"","sources":["../src/relay-signer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAKhE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE/D,wBAAgB,eAAe,CAC7B,MAAM,EAAE,WAAW,EACnB,IAAI,GAAE;IACJ,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,WAAW,CAAC,EAAE,kBAAkB,CAAC;IACjC;;;yEAGqE;IACrE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;;;;kCAO8B;IAC9B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;;6EAIyE;IACzE,aAAa,CAAC,EAAE,MAAM,CAAC;CACnB,GACL,YAAY,CAmMd"}
1
+ {"version":3,"file":"relay-signer.d.ts","sourceRoot":"","sources":["../src/relay-signer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAShE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAY/D,wBAAsB,mBAAmB,CAAC,CAAC,EACzC,GAAG,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACrB,KAAK,GAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CACI,GACtC,OAAO,CAAC,CAAC,CAAC,CAeZ;AAED,wBAAgB,eAAe,CAC7B,MAAM,EAAE,WAAW,EACnB,IAAI,GAAE;IACJ,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,WAAW,CAAC,EAAE,kBAAkB,CAAC;IACjC;;;yEAGqE;IACrE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;;;;kCAO8B;IAC9B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;;6EAIyE;IACzE,aAAa,CAAC,EAAE,MAAM,CAAC;CACnB,GACL,YAAY,CAiId"}
@@ -1,7 +1,31 @@
1
1
  import { RelayClient } from "./relay-client.js";
2
- import { transfer, createTransferCommand, allocate, createSenderConsent } from "./tx.js";
2
+ import { allocate, createSenderConsent, isStaleInputHoldingError, } from "./tx.js";
3
3
  import { resolveHashBinding } from "./hash-binding.js";
4
4
  import { resolveTrustedDsoParty } from "./trusted-dso.js";
5
+ /** Bounded backoff (ms) for retrying an allocate the relay rejected because its
6
+ * chosen input holding was STALE — the relay `/balance` ACS read lagged the
7
+ * validation state and handed back a holding the ledger had already archived
8
+ * (e.g. after a prior allocate whose execute timed out but still committed; a
9
+ * single-holding wallet then loops on the archived cid). Each retry re-runs the
10
+ * thunk, which re-reads balance + re-picks a holding. A healthy pay never
11
+ * retries; only `isStaleInputHoldingError` failures back off. Bounded — bubbles
12
+ * up after the last attempt. */
13
+ const STALE_INPUT_BACKOFF_MS = [1000, 2000, 4000, 8000, 12000];
14
+ export async function withStaleInputRetry(run, sleep = (ms) => new Promise((r) => setTimeout(r, ms))) {
15
+ for (let attempt = 0;; attempt++) {
16
+ try {
17
+ return await run();
18
+ }
19
+ catch (err) {
20
+ if (attempt < STALE_INPUT_BACKOFF_MS.length &&
21
+ isStaleInputHoldingError(err)) {
22
+ await sleep(STALE_INPUT_BACKOFF_MS[attempt]);
23
+ continue;
24
+ }
25
+ throw err;
26
+ }
27
+ }
28
+ }
5
29
  export function makeRelaySigner(wallet, opts = {}) {
6
30
  const relay = new RelayClient({ relayUrl: wallet.relayUrl, apiKey: opts.apiKey });
7
31
  // Default to the env-resolved binding: the REAL conformant V2 hash recompute
@@ -50,41 +74,6 @@ export function makeRelaySigner(wallet, opts = {}) {
50
74
  };
51
75
  return {
52
76
  party: wallet.party,
53
- async signCip56Transfer(input) {
54
- enforceSpendLimits(input.receiver, input.amount);
55
- const trustedDso = opts.trustedDso ?? resolveTrustedDsoParty(process.env, wallet.network);
56
- const updateId = await transfer(relay, wallet, {
57
- receiver: input.receiver,
58
- amount: input.amount,
59
- ...(input.transferMeta ? { meta: input.transferMeta } : {}),
60
- hashBinding,
61
- ...(trustedDso !== undefined ? { expectInstrumentAdmin: trustedDso } : {}),
62
- });
63
- return { payerParty: wallet.party, updateId, transferInstructionCid: null };
64
- },
65
- async signAllocation(input) {
66
- // Spend breaker FIRST (fail-closed, before any relay call), exactly like
67
- // the other arms.
68
- enforceSpendLimits(input.receiver, input.amount);
69
- const trustedDso = opts.trustedDso ?? resolveTrustedDsoParty(process.env, wallet.network);
70
- const r = await allocate(relay, wallet, {
71
- receiver: input.receiver,
72
- amount: input.amount,
73
- executor: input.executor,
74
- synchronizerId: input.synchronizerId,
75
- allocateBeforeSeconds: input.allocateBeforeSeconds,
76
- settleBeforeSeconds: input.settleBeforeSeconds,
77
- ...(input.transferMeta ? { transferMeta: input.transferMeta } : {}),
78
- hashBinding,
79
- ...(trustedDso !== undefined ? { expectInstrumentAdmin: trustedDso } : {}),
80
- });
81
- return {
82
- payerParty: r.payerParty,
83
- allocationCid: r.allocationCid,
84
- allocationInstructionCid: r.allocationInstructionCid,
85
- updateId: r.updateId,
86
- };
87
- },
88
77
  async signAllocationDirect(input) {
89
78
  // Spend breaker FIRST (fail-closed, before any relay call), exactly like
90
79
  // the other arms.
@@ -134,7 +123,7 @@ export function makeRelaySigner(wallet, opts = {}) {
134
123
  // The on-ledger lock is IDENTICAL to the allocation-api arm (same
135
124
  // AllocationFactory_Allocate, receiver = merchant, executor = facilitator);
136
125
  // verify-before-sign in `allocate` re-checks every money-critical field.
137
- const r = await allocate(relay, wallet, {
126
+ const r = await withStaleInputRetry(() => allocate(relay, wallet, {
138
127
  receiver: input.receiver,
139
128
  amount: input.amount,
140
129
  executor: input.executor,
@@ -144,7 +133,7 @@ export function makeRelaySigner(wallet, opts = {}) {
144
133
  ...(input.transferMeta ? { transferMeta: input.transferMeta } : {}),
145
134
  hashBinding,
146
135
  ...(trustedDso !== undefined ? { expectInstrumentAdmin: trustedDso } : {}),
147
- });
136
+ }));
148
137
  return {
149
138
  payerParty: r.payerParty,
150
139
  allocationCid: r.allocationCid,
@@ -153,34 +142,6 @@ export function makeRelaySigner(wallet, opts = {}) {
153
142
  directConsentCid,
154
143
  };
155
144
  },
156
- async signTransferCommand(input) {
157
- // Spend breaker FIRST — before even the balance pre-check, so a refused
158
- // amount/payee never touches the relay (no network, no info leak).
159
- enforceSpendLimits(input.receiver, input.amount);
160
- // Fast-fail an underfunded wallet: without this, an unfunded agent's pay
161
- // loops the client re-pay retries (each settle just rejects "no inputs")
162
- // for ~30s and then returns an opaque "rejected" — surface a clear
163
- // insufficient-funds error up front instead. The facilitator still
164
- // re-validates everything; this is a UX guard, not a security check.
165
- const bal = await relay.balance(wallet.party);
166
- if (Number(bal.cc) < Number(input.amount)) {
167
- throw new Error(`insufficient funds: wallet balance is ${bal.cc} CC but the payment ` +
168
- `requires ${input.amount} CC — fund the wallet (its party id) and run claim`);
169
- }
170
- // Prefer the PAYMENT network from the 402; fall back to the wallet's.
171
- const trustedDso = opts.trustedDso ??
172
- resolveTrustedDsoParty(process.env, input.network ?? wallet.network);
173
- return createTransferCommand(relay, wallet, {
174
- receiver: input.receiver,
175
- amount: input.amount,
176
- delegate: input.delegate,
177
- synchronizerId: input.synchronizerId,
178
- description: input.description,
179
- ...(input.expiresAtMs !== undefined ? { expiresAtMs: input.expiresAtMs } : {}),
180
- hashBinding,
181
- ...(trustedDso !== undefined ? { expectedDso: trustedDso } : {}),
182
- });
183
- },
184
145
  };
185
146
  }
186
147
  //# sourceMappingURL=relay-signer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"relay-signer.js","sourceRoot":"","sources":["../src/relay-signer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"relay-signer.js","sourceRoot":"","sources":["../src/relay-signer.ts"],"names":[],"mappings":"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"}
package/dist/tx.d.ts CHANGED
@@ -30,55 +30,6 @@ export declare function transfer(relay: RelayClient, wallet: AgentWallet, opts:
30
30
  */
31
31
  hashBinding?: HashBindingOptions;
32
32
  }): Promise<string>;
33
- /**
34
- * v1 (external-party-amulet-rules) — create a Splice `TransferCommand` the
35
- * facilitator will later settle (it pays the GS traffic fee). The agent signs
36
- * only an INTENT here: no gas, no preapproval. Mirrors the cip56 `transfer`
37
- * flow — resolve refs via relay → build the create exercise → VERIFY-before-sign
38
- * over the EXACT prepared bytes → sign locally → execute via relay → read back
39
- * the created cid (ACS-polled by the relay) — but produces the v1 payload the
40
- * x402 client puts in PaymentPayload: `{transferCommandCid, payerParty, nonce}`.
41
- *
42
- * SECURITY: every money-critical field the verifier pins (sender == own party,
43
- * receiver == merchant payTo, amount == required, delegate == facilitatorParty)
44
- * is CALLER INTENT passed in `opts`, NOT taken from the relay's resolve
45
- * response. The relay-resolved EPAR/exercise templateIds + expectedDso are used
46
- * only to BUILD the exercise; they widen nothing the agent will sign. The cid
47
- * returned by the relay moves no funds on its own — the facilitator independently
48
- * re-validates sender/receiver/amount/delegate/nonce at /verify + /settle.
49
- */
50
- export declare function createTransferCommand(relay: RelayClient, wallet: AgentWallet, opts: {
51
- /** Merchant party id (PaymentRequirements.payTo). CALLER INTENT. */
52
- receiver: string;
53
- /** Atomic amount string (PaymentRequirements.amount). CALLER INTENT. */
54
- amount: string;
55
- /** Facilitator/delegate party (extra.facilitatorParty). CALLER INTENT —
56
- * pinned by exact equality at the prepared command's delegate position. */
57
- delegate: string;
58
- /** Synchronizer id (extra.synchronizerId). CALLER INTENT — used to pin the
59
- * prepare's synchronizer to the merchant-advertised one, never the relay's. */
60
- synchronizerId: string;
61
- /** JSON-encoded {paymentId, resourceUrl, merchantContractCid?, x402Version}
62
- * the facilitator's /verify matches against TransferCommand.description. */
63
- description: string;
64
- /** Command expiry (epoch ms). Defaults to now + 60s. */
65
- expiresAtMs?: number;
66
- /** Optional, independently-trusted DSO party. When supplied it is pinned to
67
- * the command's expectedDso AND closes the unpinned-DSO neutralization fully
68
- * (the DSO can no longer be aliased to an attacker and smuggled in as a
69
- * consequence recipient). Omitted by default — the agent has no out-of-band
70
- * DSO; the position-aware backstop + money-role check still apply. NOTE:
71
- * pinning to the relay's own `r.expectedDso` would be circular and is
72
- * deliberately NOT done — only an out-of-band value is a real anchor. */
73
- expectedDso?: string;
74
- /** Hash-binding policy; defaults to fail-closed (see HashBindingOptions). */
75
- hashBinding?: HashBindingOptions;
76
- }): Promise<{
77
- transferCommandCid: string;
78
- payerParty: string;
79
- nonce: number;
80
- createUpdateId: string;
81
- }>;
82
33
  /** @internal Exported for unit tests (disjoint selection + release). Not part of
83
34
  * the public API. */
84
35
  export declare function reserveHolding(party: string, holdings: Array<{
@@ -88,6 +39,17 @@ export declare function reserveHolding(party: string, holdings: Array<{
88
39
  cids: string[];
89
40
  release: () => void;
90
41
  };
42
+ /**
43
+ * True when a relay prepare/execute failure is a STALE input-holding rejection:
44
+ * the participant reports the chosen input contract already archived
45
+ * (`UNKNOWN_CONTRACT_SYNCHRONIZERS` / "have been archived"). This is TRANSIENT —
46
+ * the relay's `/balance` ACS read lagged the validation state and handed back a
47
+ * holding the ledger already consumed (e.g. after a prior allocate whose execute
48
+ * timed out but still committed). The caller can re-read balance + retry rather
49
+ * than fail the pay. Walks the error + `cause` chain (the relay wraps the
50
+ * participant 400 as a 502 with the detail in the message/cause). @internal
51
+ */
52
+ export declare function isStaleInputHoldingError(err: unknown): boolean;
91
53
  /**
92
54
  * allocation-api (CIP-56 DVP) — exercise `AllocationFactory_Allocate` to LOCK
93
55
  * the agent's funds into an Allocation naming the facilitator as
@@ -256,84 +218,4 @@ export declare function reclaimAllocation(relay: RelayClient, wallet: AgentWalle
256
218
  * receiver == facilitator (already permitted) — behavior is then unchanged. */
257
219
  receiver?: string;
258
220
  }): Promise<string>;
259
- /**
260
- * x402-escrow "Design A" ACCEPT: the SENDER (the agent — an external party whose
261
- * key the agent-wallet holds) exercises `X402EscrowOffer_Accept` on an
262
- * `X402EscrowOffer` the facilitator created, to capture its one-time
263
- * authorization. ACCEPTING MOVES NO FUNDS — it only archives the offer and creates
264
- * the `X402Escrow` whose signatories are {facilitator, sender}; the facilitator
265
- * later settles the locked allocation ALONE off the joint authority captured here.
266
- * The choice's sole controller is the offer's `sender` = the agent, so the agent
267
- * signs only its own accept (its own key; no gas, no merchant signature).
268
- *
269
- * Mirrors the reclaim (`reclaimAllocation` / `Allocation_Withdraw`) flow: build
270
- * the exercise → VERIFY-before-sign over the EXACT prepared bytes → sign locally →
271
- * execute via the relay → read back the created `X402Escrow` cid from THIS
272
- * transaction's events (the agent is relay-only). The sender is an OBSERVER of the
273
- * offer (not a stakeholder that has it in its ACS), so the offer contract is
274
- * DISCLOSED via `opts.offerDisclosedContract` (the facilitator surfaces its
275
- * created_event_blob).
276
- *
277
- * SECURITY: like every path, this is NOT exempt from verify-before-sign. A
278
- * malicious relay could return a DIFFERENT, value-MOVING choice (an
279
- * Allocation_ExecuteTransfer / TransferFactory_Transfer / CreateTransferCommand /
280
- * Allocation_Withdraw drain), an accept of a DIFFERENT offer, an injected outbound
281
- * transfer leg as a consequence, a relay-SUBSTITUTED facilitator (who could later
282
- * settle the escrow to an attacker), or a foreign-party submission. We pass
283
- * `kind: "escrow-accept"`, which structurally proves the prepared transaction is a
284
- * single `X402EscrowOffer_Accept` on EXACTLY `opts.offerCid` (caller intent,
285
- * REQUIRED contract-id pin), submitted by the agent (act_as == wallet.party),
286
- * creating an escrow only among the caller-intended {sender, facilitator
287
- * (+merchant/instrumentAdmin)} parties — and binds the signed hash to those bytes
288
- * (fail-closed by default, exactly like the reclaim/accept paths). `opts.hashBinding`
289
- * lets a programmatic caller supply a participant-conformant recompute; the CLI
290
- * resolves it from the environment (default fail-closed).
291
- *
292
- * Returns `{ escrowCid, updateId }`. `escrowCid` is read back via the relay from
293
- * the accept transaction's events; it is `null` if the relay could not resolve it
294
- * within its poll budget (the cid moves no funds — the facilitator independently
295
- * re-validates the escrow + allocation terms at settle).
296
- */
297
- export declare function acceptEscrowOffer(relay: RelayClient, wallet: AgentWallet, opts: {
298
- /** The `X402EscrowOffer` cid to accept. CALLER INTENT — REQUIRED contract-id
299
- * pin (the verify arm refuses an accept of any other contract). */
300
- offerCid: string;
301
- /** The offer's resolved templateId for the exercise target. The choice is
302
- * exercised THROUGH `#x402-escrow:X402Escrow:X402EscrowOffer` by default; pass
303
- * a concrete (package-id-qualified) templateId to override. */
304
- offerTemplateId?: string;
305
- /** The facilitator party (offer signatory; settles alone). CALLER INTENT —
306
- * pinned + added to the allowed-escrow-party set. REQUIRED. */
307
- facilitator: string;
308
- /** Optional merchant party recorded on the created escrow (reference-only).
309
- * Supply when the honest escrow names a distinct merchant so the backstop
310
- * allows it; omit when merchant collapses onto facilitator/sender. */
311
- merchant?: string;
312
- /** Optional instrument admin (DSO) recorded on the created escrow. */
313
- instrumentAdmin?: string;
314
- /** Optional Decimal amount the sender intends the escrow to settle. CALLER
315
- * INTENT — when supplied, the verify arm pins the created `X402Escrow`'s
316
- * recorded `amount` (a Numeric the party-leaf backstop cannot see) to it by
317
- * canonical equality, closing the amount-swap gap where a malicious/buggy
318
- * facilitator authored the offer with an inflated amount. Never taken from the
319
- * relay. Omit only when the caller has no intended amount to assert. */
320
- amount?: string;
321
- /** The sender is an OBSERVER of the offer, so disclose the offer contract.
322
- * Shape mirrors the v1 EPAR / allocation disclosed-contract envelope. */
323
- offerDisclosedContract?: {
324
- templateId: string;
325
- contractId: string;
326
- createdEventBlob: string;
327
- synchronizerId: string;
328
- };
329
- /** Caller-intent synchronizer id to PREPARE on + pin the SIGNED
330
- * Metadata.synchronizer_id to. REQUIRED (the accept carries a caller-chosen
331
- * domain — the offer/escrow live on a specific synchronizer). */
332
- synchronizerId: string;
333
- /** Hash-binding policy; defaults to fail-closed (see HashBindingOptions). */
334
- hashBinding?: HashBindingOptions;
335
- }): Promise<{
336
- escrowCid: string | null;
337
- updateId: string;
338
- }>;
339
221
  //# sourceMappingURL=tx.d.ts.map