@agenticprimitives/payments 0.0.0-alpha.41 → 0.0.0-alpha.43
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/entitlement/index.d.ts.map +1 -1
- package/dist/entitlement/index.js +10 -4
- package/dist/entitlement/index.js.map +1 -1
- package/dist/entitlement/voucher.d.ts +14 -1
- package/dist/entitlement/voucher.d.ts.map +1 -1
- package/dist/entitlement/voucher.js +20 -1
- package/dist/entitlement/voucher.js.map +1 -1
- package/dist/index.d.ts +7 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/mandate-sign.d.ts +42 -3
- package/dist/mandate-sign.d.ts.map +1 -1
- package/dist/mandate-sign.js +33 -2
- package/dist/mandate-sign.js.map +1 -1
- package/dist/mandate.d.ts +10 -2
- package/dist/mandate.d.ts.map +1 -1
- package/dist/mandate.js +9 -2
- package/dist/mandate.js.map +1 -1
- package/dist/ops.d.ts +45 -4
- package/dist/ops.d.ts.map +1 -1
- package/dist/ops.js +59 -10
- package/dist/ops.js.map +1 -1
- package/dist/rails/escrow.d.ts +11 -3
- package/dist/rails/escrow.d.ts.map +1 -1
- package/dist/rails/escrow.js +11 -2
- package/dist/rails/escrow.js.map +1 -1
- package/dist/rails/invoice.d.ts +6 -4
- package/dist/rails/invoice.d.ts.map +1 -1
- package/dist/rails/invoice.js +6 -5
- package/dist/rails/invoice.js.map +1 -1
- package/dist/rails/recurring.d.ts +7 -3
- package/dist/rails/recurring.d.ts.map +1 -1
- package/dist/rails/recurring.js +8 -5
- package/dist/rails/recurring.js.map +1 -1
- package/dist/rails/wallet.d.ts +8 -6
- package/dist/rails/wallet.d.ts.map +1 -1
- package/dist/rails/wallet.js +12 -9
- package/dist/rails/wallet.js.map +1 -1
- package/dist/rails/x402/executor.d.ts +124 -9
- package/dist/rails/x402/executor.d.ts.map +1 -1
- package/dist/rails/x402/executor.js +107 -13
- package/dist/rails/x402/executor.js.map +1 -1
- package/dist/rails/x402/index.d.ts +2 -2
- package/dist/rails/x402/index.d.ts.map +1 -1
- package/dist/rails/x402/index.js +1 -1
- package/dist/rails/x402/index.js.map +1 -1
- package/dist/rails/x402/wire.d.ts.map +1 -1
- package/dist/rails/x402/wire.js +18 -1
- package/dist/rails/x402/wire.js.map +1 -1
- package/dist/refund.d.ts +9 -2
- package/dist/refund.d.ts.map +1 -1
- package/dist/refund.js +10 -3
- package/dist/refund.js.map +1 -1
- package/dist/split.d.ts +7 -2
- package/dist/split.d.ts.map +1 -1
- package/dist/split.js +8 -3
- package/dist/split.js.map +1 -1
- package/dist/transfer.d.ts +24 -5
- package/dist/transfer.d.ts.map +1 -1
- package/dist/transfer.js +21 -5
- package/dist/transfer.js.map +1 -1
- package/dist/treasury.d.ts +50 -0
- package/dist/treasury.d.ts.map +1 -0
- package/dist/treasury.js +68 -0
- package/dist/treasury.js.map +1 -0
- package/package.json +5 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/entitlement/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAA2C,KAAK,OAAO,EAAE,MAAM,MAAM,CAAC;AAC7E,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAGzC,OAAO,KAAK,OAAO,MAAM,cAAc,CAAC;AAExC,MAAM,MAAM,kBAAkB,GAAG,IAAI,GAAG,QAAQ,CAAC;AAEjD,MAAM,WAAW,iBAAiB;IAChC,aAAa,EAAE,KAAK,CAAC;IACrB,OAAO,EAAE,kBAAkB,CAAC;IAC5B,2EAA2E;IAC3E,SAAS,EAAE,KAAK,CAAC;IACjB,sDAAsD;IACtD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,uEAAuE;IACvE,SAAS,CAAC,EAAE,KAAK,CAAC;IAClB,4BAA4B;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE;QAAE,SAAS,EAAE,KAAK,CAAC;QAAC,cAAc,EAAE,KAAK,CAAA;KAAE,CAAC;CACzD;AA0BD,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,kBAAkB,CAAC;IAC5B,SAAS,EAAE,KAAK,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,KAAK,CAAC;IACjB,cAAc,EAAE,KAAK,CAAC;IACtB,kCAAkC;IAClC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,sCAAsC;IACtC,SAAS,CAAC,EAAE,KAAK,CAAC;CACnB;AAED,sGAAsG;AACtG,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,oBAAoB,GAAG,iBAAiB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/entitlement/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -36,8 +36,12 @@ export function mintEntitlementOnPayment(input) {
|
|
|
36
36
|
throw new Error("[entitlement] 'sa' binding requires subject");
|
|
37
37
|
if (input.binding === 'bearer' && !input.voucherId)
|
|
38
38
|
throw new Error("[entitlement] 'bearer' binding requires voucherId");
|
|
39
|
-
|
|
40
|
-
|
|
39
|
+
// Spec 445 / audit DATA-9: `NaN < 1` is false, so a NaN count minted an entitlement that was never
|
|
40
|
+
// exhausted, and a NaN ttl one that never expired. A count is a whole number; an expiry is a finite time.
|
|
41
|
+
if (!Number.isSafeInteger(input.maxUses) || input.maxUses < 1)
|
|
42
|
+
throw new Error('[entitlement] maxUses must be a whole number >= 1');
|
|
43
|
+
if (!Number.isFinite(input.ttl))
|
|
44
|
+
throw new Error('[entitlement] ttl must be a finite time');
|
|
41
45
|
return {
|
|
42
46
|
entitlementId: entitlementId(input),
|
|
43
47
|
binding: input.binding,
|
|
@@ -60,9 +64,11 @@ export function checkEntitlement(record, ctx) {
|
|
|
60
64
|
return { ok: false, reason: 'unknown entitlement binding' };
|
|
61
65
|
if (record.scopeHash.toLowerCase() !== ctx.scopeHash.toLowerCase())
|
|
62
66
|
return { ok: false, reason: 'scope mismatch' };
|
|
63
|
-
|
|
67
|
+
// DATA-9: a time or a count that is not a number is refused, never "not yet expired" / "not yet exhausted"
|
|
68
|
+
// (a stored record can carry NaN however it was minted — every comparison with NaN is false).
|
|
69
|
+
if (!Number.isFinite(ctx.now) || !Number.isFinite(record.ttl) || ctx.now >= record.ttl)
|
|
64
70
|
return { ok: false, reason: 'entitlement expired' };
|
|
65
|
-
if (record.usesLeft <= 0)
|
|
71
|
+
if (!Number.isSafeInteger(record.usesLeft) || record.usesLeft <= 0)
|
|
66
72
|
return { ok: false, reason: 'entitlement exhausted' };
|
|
67
73
|
if (record.binding === 'sa') {
|
|
68
74
|
if (!ctx.presenter || !record.subject || ctx.presenter.toLowerCase() !== record.subject.toLowerCase()) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/entitlement/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE,OAAO,EAAgB,MAAM,MAAM,CAAC;AAG7E,0DAA0D;AAC1D,OAAO,KAAK,OAAO,MAAM,cAAc,CAAC;AAoBxC,MAAM,MAAM,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAU,CAAC;AAEjD,SAAS,aAAa,CAAC,IAMtB;IACC,OAAO,SAAS,CACd,mBAAmB,CACjB,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,EACnF;QACE,IAAI,CAAC,OAAO;QACZ,IAAI,CAAC,SAAS;QACd,IAAI,CAAC,OAAO,KAAK,IAAI;YACnB,CAAC,CAAE,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,CAAW;YACrD,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,IAAI,MAAM,CAAC;QAC9B,IAAI,CAAC,SAAS;KACf,CACF,CACO,CAAC;AACb,CAAC;AAeD,sGAAsG;AACtG,MAAM,UAAU,wBAAwB,CAAC,KAA2B;IAClE,IAAI,KAAK,CAAC,OAAO,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;IAC7G,IAAI,KAAK,CAAC,OAAO,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;IACzH,IAAI,KAAK,CAAC,OAAO,GAAG,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/entitlement/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -42,6 +42,17 @@ export interface Voucher {
|
|
|
42
42
|
export declare function generateVoucherIssuerKey(): VoucherIssuerKey;
|
|
43
43
|
/** Deterministic issuer key from a 32-byte seed (stable across processes). */
|
|
44
44
|
export declare function deriveVoucherIssuerKey(seed: Hex, info?: string): VoucherIssuerKey;
|
|
45
|
+
/**
|
|
46
|
+
* Spec 445 / audit DATA-27 — one issuer key PER SCOPE (per pack / price tier / resource class).
|
|
47
|
+
*
|
|
48
|
+
* A VOPRF voucher proves "the holder of this secret key evaluated my token" and nothing else: it carries no
|
|
49
|
+
* scope. With one key across price tiers, a voucher bought in the cheap pack redeems for the expensive
|
|
50
|
+
* resource. The binding this scheme can give without changing the voucher format is the KEY: derive a
|
|
51
|
+
* distinct key per `scopeHash` from one seed, issue a pack with its scope's key, and redeem with the key of
|
|
52
|
+
* the scope being asked for. A voucher from another scope fails `verifyVoucher` ('invalid voucher').
|
|
53
|
+
* `scopeHash` is exactly 32 bytes (the same `scopeHashOf` value an entitlement carries).
|
|
54
|
+
*/
|
|
55
|
+
export declare function deriveScopedVoucherIssuerKey(seed: Hex, scopeHash: Hex32): VoucherIssuerKey;
|
|
45
56
|
/** `voucherId` — the public, spent-set key derived from the token (no link to the blinded request). */
|
|
46
57
|
export declare function voucherIdOf(tokenId: Hex): Hex32;
|
|
47
58
|
/** Client: blind a fresh random token (or a supplied one) for issuance. */
|
|
@@ -77,7 +88,9 @@ export interface SpentSet {
|
|
|
77
88
|
export declare function createMemorySpentSet(): SpentSet & {
|
|
78
89
|
size(): number;
|
|
79
90
|
};
|
|
80
|
-
/** Issuer: verify + one-shot redeem. Rejects an invalid voucher and a replayed one.
|
|
91
|
+
/** Issuer: verify + one-shot redeem. Rejects an invalid voucher and a replayed one.
|
|
92
|
+
* `key` MUST be the key of the scope being redeemed for (`deriveScopedVoucherIssuerKey`, DATA-27): the
|
|
93
|
+
* voucher itself names no scope, so the key is the only thing that says what it was sold for. */
|
|
81
94
|
export declare function redeemVoucher(key: VoucherIssuerKey, voucher: Voucher, spent: SpentSet): Promise<{
|
|
82
95
|
ok: boolean;
|
|
83
96
|
reason?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"voucher.d.ts","sourceRoot":"","sources":["../../src/entitlement/voucher.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAKH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAezC,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,GAAG,CAAC;IACf,SAAS,EAAE,GAAG,CAAC;CAChB;AACD,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,GAAG,CAAC;CACd;AACD,2EAA2E;AAC3E,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,GAAG,CAAC;IACb,KAAK,EAAE,GAAG,CAAC;IACX,OAAO,EAAE,GAAG,CAAC;CACd;AACD,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,GAAG,CAAC;IACf,KAAK,EAAE,GAAG,CAAC;CACZ;AACD,yCAAyC;AACzC,MAAM,WAAW,OAAO;IACtB,SAAS,EAAE,KAAK,CAAC;IACjB,OAAO,EAAE,GAAG,CAAC;IACb,MAAM,EAAE,GAAG,CAAC;CACb;AAED,wBAAgB,wBAAwB,IAAI,gBAAgB,CAG3D;AAED,8EAA8E;AAC9E,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,SAA2B,GAAG,gBAAgB,CAGnG;AAED,uGAAuG;AACvG,wBAAgB,WAAW,CAAC,OAAO,EAAE,GAAG,GAAG,KAAK,CAE/C;AAED,2EAA2E;AAC3E,wBAAgB,mBAAmB,CAAC,OAAO,CAAC,EAAE,GAAG,GAAG;IAAE,OAAO,EAAE,qBAAqB,CAAC;IAAC,MAAM,EAAE,aAAa,CAAA;CAAE,CAO5G;AAED,0FAA0F;AAC1F,wBAAgB,YAAY,CAAC,GAAG,EAAE,gBAAgB,EAAE,OAAO,EAAE,qBAAqB,GAAG,aAAa,CAGjG;AAED,kCAAkC;AAClC,wBAAgB,aAAa,CAAC,GAAG,EAAE,gBAAgB,EAAE,QAAQ,EAAE,qBAAqB,EAAE,GAAG,aAAa,EAAE,CAEvG;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,aAAa,EAAE,eAAe,EAAE,GAAG,GAAG,OAAO,CAU1G;AASD,gGAAgG;AAChG,wBAAgB,aAAa,CAAC,GAAG,EAAE,gBAAgB,EAAE,OAAO,EAAE,OAAO,GAAG;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAUvG;AAED,MAAM,WAAW,QAAQ;IACvB;;;;;;;OAOG;IACH,KAAK,CAAC,EAAE,EAAE,KAAK,GAAG,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAC9C;AAED,wBAAgB,oBAAoB,IAAI,QAAQ,GAAG;IAAE,IAAI,IAAI,MAAM,CAAA;CAAE,CAapE;AAED
|
|
1
|
+
{"version":3,"file":"voucher.d.ts","sourceRoot":"","sources":["../../src/entitlement/voucher.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAKH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAezC,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,GAAG,CAAC;IACf,SAAS,EAAE,GAAG,CAAC;CAChB;AACD,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,GAAG,CAAC;CACd;AACD,2EAA2E;AAC3E,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,GAAG,CAAC;IACb,KAAK,EAAE,GAAG,CAAC;IACX,OAAO,EAAE,GAAG,CAAC;CACd;AACD,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,GAAG,CAAC;IACf,KAAK,EAAE,GAAG,CAAC;CACZ;AACD,yCAAyC;AACzC,MAAM,WAAW,OAAO;IACtB,SAAS,EAAE,KAAK,CAAC;IACjB,OAAO,EAAE,GAAG,CAAC;IACb,MAAM,EAAE,GAAG,CAAC;CACb;AAED,wBAAgB,wBAAwB,IAAI,gBAAgB,CAG3D;AAED,8EAA8E;AAC9E,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,SAA2B,GAAG,gBAAgB,CAGnG;AAED;;;;;;;;;GASG;AACH,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,GAAG,gBAAgB,CAI1F;AAED,uGAAuG;AACvG,wBAAgB,WAAW,CAAC,OAAO,EAAE,GAAG,GAAG,KAAK,CAE/C;AAED,2EAA2E;AAC3E,wBAAgB,mBAAmB,CAAC,OAAO,CAAC,EAAE,GAAG,GAAG;IAAE,OAAO,EAAE,qBAAqB,CAAC;IAAC,MAAM,EAAE,aAAa,CAAA;CAAE,CAO5G;AAED,0FAA0F;AAC1F,wBAAgB,YAAY,CAAC,GAAG,EAAE,gBAAgB,EAAE,OAAO,EAAE,qBAAqB,GAAG,aAAa,CAGjG;AAED,kCAAkC;AAClC,wBAAgB,aAAa,CAAC,GAAG,EAAE,gBAAgB,EAAE,QAAQ,EAAE,qBAAqB,EAAE,GAAG,aAAa,EAAE,CAEvG;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,aAAa,EAAE,eAAe,EAAE,GAAG,GAAG,OAAO,CAU1G;AASD,gGAAgG;AAChG,wBAAgB,aAAa,CAAC,GAAG,EAAE,gBAAgB,EAAE,OAAO,EAAE,OAAO,GAAG;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAUvG;AAED,MAAM,WAAW,QAAQ;IACvB;;;;;;;OAOG;IACH,KAAK,CAAC,EAAE,EAAE,KAAK,GAAG,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAC9C;AAED,wBAAgB,oBAAoB,IAAI,QAAQ,GAAG;IAAE,IAAI,IAAI,MAAM,CAAA;CAAE,CAapE;AAED;;kGAEkG;AAClG,wBAAsB,aAAa,CAAC,GAAG,EAAE,gBAAgB,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAMvI"}
|
|
@@ -30,6 +30,23 @@ export function deriveVoucherIssuerKey(seed, info = 'agentic-voucher-issuer') {
|
|
|
30
30
|
const kp = voprf.deriveKeyPair(hexToBytes(seed.slice(2)), enc.encode(info));
|
|
31
31
|
return { secretKey: hx(kp.secretKey), publicKey: hx(kp.publicKey) };
|
|
32
32
|
}
|
|
33
|
+
/**
|
|
34
|
+
* Spec 445 / audit DATA-27 — one issuer key PER SCOPE (per pack / price tier / resource class).
|
|
35
|
+
*
|
|
36
|
+
* A VOPRF voucher proves "the holder of this secret key evaluated my token" and nothing else: it carries no
|
|
37
|
+
* scope. With one key across price tiers, a voucher bought in the cheap pack redeems for the expensive
|
|
38
|
+
* resource. The binding this scheme can give without changing the voucher format is the KEY: derive a
|
|
39
|
+
* distinct key per `scopeHash` from one seed, issue a pack with its scope's key, and redeem with the key of
|
|
40
|
+
* the scope being asked for. A voucher from another scope fails `verifyVoucher` ('invalid voucher').
|
|
41
|
+
* `scopeHash` is exactly 32 bytes (the same `scopeHashOf` value an entitlement carries).
|
|
42
|
+
*/
|
|
43
|
+
export function deriveScopedVoucherIssuerKey(seed, scopeHash) {
|
|
44
|
+
if (!/^0x[0-9a-fA-F]{64}$/.test(seed))
|
|
45
|
+
throw new Error('[voucher] seed must be 32 bytes of hex');
|
|
46
|
+
if (!/^0x[0-9a-fA-F]{64}$/.test(scopeHash))
|
|
47
|
+
throw new Error('[voucher] scopeHash must be 32 bytes of hex');
|
|
48
|
+
return deriveVoucherIssuerKey(seed, `agentic-voucher-issuer:scope:${scopeHash.toLowerCase()}`);
|
|
49
|
+
}
|
|
33
50
|
/** `voucherId` — the public, spent-set key derived from the token (no link to the blinded request). */
|
|
34
51
|
export function voucherIdOf(tokenId) {
|
|
35
52
|
return keccak256(tokenId);
|
|
@@ -96,7 +113,9 @@ export function createMemorySpentSet() {
|
|
|
96
113
|
size: () => set.size,
|
|
97
114
|
};
|
|
98
115
|
}
|
|
99
|
-
/** Issuer: verify + one-shot redeem. Rejects an invalid voucher and a replayed one.
|
|
116
|
+
/** Issuer: verify + one-shot redeem. Rejects an invalid voucher and a replayed one.
|
|
117
|
+
* `key` MUST be the key of the scope being redeemed for (`deriveScopedVoucherIssuerKey`, DATA-27): the
|
|
118
|
+
* voucher itself names no scope, so the key is the only thing that says what it was sold for. */
|
|
100
119
|
export async function redeemVoucher(key, voucher, spent) {
|
|
101
120
|
const v = verifyVoucher(key, voucher);
|
|
102
121
|
if (!v.ok)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"voucher.js","sourceRoot":"","sources":["../../src/entitlement/voucher.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"voucher.js","sourceRoot":"","sources":["../../src/entitlement/voucher.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -67,7 +67,11 @@ export interface ContextBinding {
|
|
|
67
67
|
export type PaymentMandateMode = 'open' | 'closed';
|
|
68
68
|
export interface PaymentMandate {
|
|
69
69
|
mandateId: Hex32;
|
|
70
|
+
/** The paying TREASURY SA. Assets live only in treasuries (spec 420 `appr:ValueHolder ≡ ap:Treasury`;
|
|
71
|
+
* ontology ONT-4 `appay:payer` ranges over `ap:Treasury`): a person or organization address is refused by
|
|
72
|
+
* every value-move entry point (`isTreasury` port, REQUIRED). The type stays `Address` — the check is the port. */
|
|
70
73
|
payer: Address;
|
|
74
|
+
/** The receiving TREASURY SA — same rule as `payer` (`appay:payee` ranges over `ap:Treasury`). */
|
|
71
75
|
payee: Address;
|
|
72
76
|
granter: Address;
|
|
73
77
|
rail: PaymentRail;
|
|
@@ -121,7 +125,9 @@ export type { PaymentReceiptInput } from './receipt.js';
|
|
|
121
125
|
export * as x402 from './rails/x402/index.js';
|
|
122
126
|
export * as entitlement from './entitlement/index.js';
|
|
123
127
|
export { ERC20_TRANSFER_ABI, ERC20_APPROVE_ABI, buildErc20Transfer, buildErc20Approve, buildNativeTransfer } from './transfer.js';
|
|
124
|
-
export type { TransferPlan } from './transfer.js';
|
|
128
|
+
export type { TransferPlan, TreasuryTransferInput } from './transfer.js';
|
|
129
|
+
export { TREASURY_REFUSAL_REASON, NotATreasuryError, checkTreasuryParties, assertTreasuryParties, } from './treasury.js';
|
|
130
|
+
export type { IsTreasury, TreasuryPort, TreasuryRefusalCode, TreasuryCheck } from './treasury.js';
|
|
125
131
|
export { buildClosedMandate } from './mandate.js';
|
|
126
132
|
export { validateExternalPaymentCredentialRef, validateAp2MandateEnvelopeRef, paymentCredentialCovers, looksLikeRawPaymentCredential, type ExternalPaymentCredentialRefV1, type Ap2MandateEnvelopeRefV1, type Ap2MandateKind, } from './external-checkout.js';
|
|
127
133
|
export type { ClosedMandateInput } from './mandate.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -47,6 +47,8 @@ export * as x402 from './rails/x402/index.js';
|
|
|
47
47
|
export * as entitlement from './entitlement/index.js';
|
|
48
48
|
// Spec 243 §5.5 — shared transfer plumbing + closed-mandate builder.
|
|
49
49
|
export { ERC20_TRANSFER_ABI, ERC20_APPROVE_ABI, buildErc20Transfer, buildErc20Approve, buildNativeTransfer } from './transfer.js';
|
|
50
|
+
// Spec 445 / ontology ONT-4 — value moves treasury → treasury; the REQUIRED `isTreasury` port.
|
|
51
|
+
export { TREASURY_REFUSAL_REASON, NotATreasuryError, checkTreasuryParties, assertTreasuryParties, } from './treasury.js';
|
|
50
52
|
export { buildClosedMandate } from './mandate.js';
|
|
51
53
|
// Spec 442 §10 — payments at the company's door, TYPES ONLY: a payment credential by reference (the ExecutionCredential
|
|
52
54
|
// discipline: bound to one operation, expiring, single-use) and our mandate in AP2's VC-JWS envelope. Fiat rails are Ring 1.
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAGrD,MAAM,CAAC,MAAM,YAAY,GAAG,6BAA6B,CAAC;AAC1D,MAAM,CAAC,MAAM,cAAc,GAAG,iBAA0B,CAAC;AACzD,MAAM,CAAC,MAAM,QAAQ,GAAG,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/mandate-sign.d.ts
CHANGED
|
@@ -17,7 +17,18 @@ export declare const ERC1271_MAGIC: "0x1626ba7e";
|
|
|
17
17
|
import { type Address, type Hex } from 'viem';
|
|
18
18
|
import type { PaymentMandate, ContextBinding, Hex32 } from './index.js';
|
|
19
19
|
export declare const PAYMENT_MANDATE_DOMAIN_NAME = "AgenticPaymentMandate";
|
|
20
|
-
|
|
20
|
+
/**
|
|
21
|
+
* Spec 445 / audit DATA-16 — version '2'. Version '1' signed `amount` alone: `amount` for an exact policy,
|
|
22
|
+
* `maxAmount` otherwise, and nothing saying WHICH. A signature over "any amount up to N" was therefore also a
|
|
23
|
+
* signature over "exactly N", and `amountPolicy.chain` (the field verifiers read) was not signed at all.
|
|
24
|
+
* Version 2 adds `amountKind`, `minAmount`, `formulaId` and `amountChain` to the struct.
|
|
25
|
+
*
|
|
26
|
+
* Compatibility rule (one mechanism, ADR-0013): a version-1 signature does NOT verify — the domain separator
|
|
27
|
+
* differs, so the digest differs. There is no "try v1" path: a v1 signature cannot say which kind it meant,
|
|
28
|
+
* which is the defect. A mandate signed under v1 is re-signed. No Solidity contract mirrors this typehash
|
|
29
|
+
* (the payer SA validates the digest through ERC-1271), so no contract generation is involved.
|
|
30
|
+
*/
|
|
31
|
+
export declare const PAYMENT_MANDATE_DOMAIN_VERSION = "2";
|
|
21
32
|
/** ERC-1271 magic value for a valid signature. */
|
|
22
33
|
export declare const PAYMENT_MANDATE_EIP712_TYPES: {
|
|
23
34
|
readonly PaymentMandate: readonly [{
|
|
@@ -38,6 +49,18 @@ export declare const PAYMENT_MANDATE_EIP712_TYPES: {
|
|
|
38
49
|
}, {
|
|
39
50
|
readonly name: "amount";
|
|
40
51
|
readonly type: "uint256";
|
|
52
|
+
}, {
|
|
53
|
+
readonly name: "amountKind";
|
|
54
|
+
readonly type: "string";
|
|
55
|
+
}, {
|
|
56
|
+
readonly name: "minAmount";
|
|
57
|
+
readonly type: "uint256";
|
|
58
|
+
}, {
|
|
59
|
+
readonly name: "formulaId";
|
|
60
|
+
readonly type: "bytes32";
|
|
61
|
+
}, {
|
|
62
|
+
readonly name: "amountChain";
|
|
63
|
+
readonly type: "uint256";
|
|
41
64
|
}, {
|
|
42
65
|
readonly name: "nonce";
|
|
43
66
|
readonly type: "uint256";
|
|
@@ -89,7 +112,7 @@ export interface MandateDomainOpts {
|
|
|
89
112
|
export declare function paymentMandateDomain(opts: MandateDomainOpts): {
|
|
90
113
|
readonly verifyingContract?: `0x${string}` | undefined;
|
|
91
114
|
readonly name: "AgenticPaymentMandate";
|
|
92
|
-
readonly version: "
|
|
115
|
+
readonly version: "2";
|
|
93
116
|
readonly chainId: number;
|
|
94
117
|
};
|
|
95
118
|
/** The full EIP-712 typed-data object (domain + types + message) for a mandate. */
|
|
@@ -97,7 +120,7 @@ export declare function buildPaymentMandateTypedData(mandate: PaymentMandate, op
|
|
|
97
120
|
domain: {
|
|
98
121
|
readonly verifyingContract?: `0x${string}` | undefined;
|
|
99
122
|
readonly name: "AgenticPaymentMandate";
|
|
100
|
-
readonly version: "
|
|
123
|
+
readonly version: "2";
|
|
101
124
|
readonly chainId: number;
|
|
102
125
|
};
|
|
103
126
|
types: {
|
|
@@ -119,6 +142,18 @@ export declare function buildPaymentMandateTypedData(mandate: PaymentMandate, op
|
|
|
119
142
|
}, {
|
|
120
143
|
readonly name: "amount";
|
|
121
144
|
readonly type: "uint256";
|
|
145
|
+
}, {
|
|
146
|
+
readonly name: "amountKind";
|
|
147
|
+
readonly type: "string";
|
|
148
|
+
}, {
|
|
149
|
+
readonly name: "minAmount";
|
|
150
|
+
readonly type: "uint256";
|
|
151
|
+
}, {
|
|
152
|
+
readonly name: "formulaId";
|
|
153
|
+
readonly type: "bytes32";
|
|
154
|
+
}, {
|
|
155
|
+
readonly name: "amountChain";
|
|
156
|
+
readonly type: "uint256";
|
|
122
157
|
}, {
|
|
123
158
|
readonly name: "nonce";
|
|
124
159
|
readonly type: "uint256";
|
|
@@ -156,6 +191,10 @@ export declare function buildPaymentMandateTypedData(mandate: PaymentMandate, op
|
|
|
156
191
|
readonly granter: `0x${string}`;
|
|
157
192
|
readonly asset: Address;
|
|
158
193
|
readonly amount: bigint;
|
|
194
|
+
readonly amountKind: "exact" | "range" | "formula";
|
|
195
|
+
readonly minAmount: bigint;
|
|
196
|
+
readonly formulaId: `0x${string}`;
|
|
197
|
+
readonly amountChain: bigint;
|
|
159
198
|
readonly nonce: bigint;
|
|
160
199
|
readonly maxRedemptions: bigint;
|
|
161
200
|
readonly validFrom: bigint;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mandate-sign.d.ts","sourceRoot":"","sources":["../src/mandate-sign.ts"],"names":[],"mappings":"AAEA;;0CAE0C;AAC1C,eAAO,MAAM,aAAa,cAAsB,CAAC;AACjD;;;;;;;;;;;GAWG;AAEH,OAAO,EAML,KAAK,OAAO,EACZ,KAAK,GAAG,EACT,MAAM,MAAM,CAAC;AACd,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAExE,eAAO,MAAM,2BAA2B,0BAA0B,CAAC;AACnE,eAAO,MAAM,8BAA8B,MAAM,CAAC;AAElD,kDAAkD;AAElD,eAAO,MAAM,4BAA4B
|
|
1
|
+
{"version":3,"file":"mandate-sign.d.ts","sourceRoot":"","sources":["../src/mandate-sign.ts"],"names":[],"mappings":"AAEA;;0CAE0C;AAC1C,eAAO,MAAM,aAAa,cAAsB,CAAC;AACjD;;;;;;;;;;;GAWG;AAEH,OAAO,EAML,KAAK,OAAO,EACZ,KAAK,GAAG,EACT,MAAM,MAAM,CAAC;AACd,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAExE,eAAO,MAAM,2BAA2B,0BAA0B,CAAC;AACnE;;;;;;;;;;GAUG;AACH,eAAO,MAAM,8BAA8B,MAAM,CAAC;AAElD,kDAAkD;AAElD,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2B/B,CAAC;AA2BX;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,cAAc,GAAG,KAAK,CASlE;AAED,4FAA4F;AAC5F,wBAAgB,aAAa,CAAC,OAAO,EAAE,cAAc,GAAG,MAAM,CAG7D;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,cAAc,GAAG,KAAK,CAsD5D;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,2GAA2G;IAC3G,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,iBAAiB;;;;;EAO3D;AAkCD,mFAAmF;AACnF,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBAnBjD,OAAO;;;;;;;;;;;;;;;;EA0BlD;AAED,yEAAyE;AACzE,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,iBAAiB,GAAG,KAAK,CAG5F;AAED,qGAAqG;AACrG,MAAM,WAAW,aAAa;IAC5B,aAAa,CAAC,IAAI,EAAE;QAClB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAChC,KAAK,EAAE,OAAO,4BAA4B,CAAC;QAC3C,WAAW,EAAE,gBAAgB,CAAC;QAC9B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAClC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;CAClB;AAED,gFAAgF;AAChF,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,cAAc,EACvB,MAAM,EAAE,aAAa,EACrB,IAAI,EAAE,iBAAiB,GACtB,OAAO,CAAC,cAAc,CAAC,CASzB;AAED,yGAAyG;AACzG,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;AAE9F;;;GAGG;AACH,wBAAsB,6BAA6B,CACjD,OAAO,EAAE,cAAc,EACvB,IAAI,EAAE,iBAAiB,EACvB,QAAQ,EAAE,aAAa,GACtB,OAAO,CAAC,OAAO,CAAC,CAUlB"}
|
package/dist/mandate-sign.js
CHANGED
|
@@ -17,7 +17,18 @@ export const ERC1271_MAGIC = ERC1271_MAGIC_VALUE;
|
|
|
17
17
|
*/
|
|
18
18
|
import { hashTypedData, keccak256, encodeAbiParameters, toHex, toBytes, } from 'viem';
|
|
19
19
|
export const PAYMENT_MANDATE_DOMAIN_NAME = 'AgenticPaymentMandate';
|
|
20
|
-
|
|
20
|
+
/**
|
|
21
|
+
* Spec 445 / audit DATA-16 — version '2'. Version '1' signed `amount` alone: `amount` for an exact policy,
|
|
22
|
+
* `maxAmount` otherwise, and nothing saying WHICH. A signature over "any amount up to N" was therefore also a
|
|
23
|
+
* signature over "exactly N", and `amountPolicy.chain` (the field verifiers read) was not signed at all.
|
|
24
|
+
* Version 2 adds `amountKind`, `minAmount`, `formulaId` and `amountChain` to the struct.
|
|
25
|
+
*
|
|
26
|
+
* Compatibility rule (one mechanism, ADR-0013): a version-1 signature does NOT verify — the domain separator
|
|
27
|
+
* differs, so the digest differs. There is no "try v1" path: a v1 signature cannot say which kind it meant,
|
|
28
|
+
* which is the defect. A mandate signed under v1 is re-signed. No Solidity contract mirrors this typehash
|
|
29
|
+
* (the payer SA validates the digest through ERC-1271), so no contract generation is involved.
|
|
30
|
+
*/
|
|
31
|
+
export const PAYMENT_MANDATE_DOMAIN_VERSION = '2';
|
|
21
32
|
/** ERC-1271 magic value for a valid signature. */
|
|
22
33
|
export const PAYMENT_MANDATE_EIP712_TYPES = {
|
|
23
34
|
PaymentMandate: [
|
|
@@ -27,6 +38,12 @@ export const PAYMENT_MANDATE_EIP712_TYPES = {
|
|
|
27
38
|
{ name: 'granter', type: 'address' },
|
|
28
39
|
{ name: 'asset', type: 'address' },
|
|
29
40
|
{ name: 'amount', type: 'uint256' },
|
|
41
|
+
// DATA-16: what `amount` MEANS, and the rest of the amount policy. `minAmount` is 0 unless the policy is a
|
|
42
|
+
// range; `formulaId` is zero unless it is a formula; `amountChain` is `amountPolicy.chain`.
|
|
43
|
+
{ name: 'amountKind', type: 'string' },
|
|
44
|
+
{ name: 'minAmount', type: 'uint256' },
|
|
45
|
+
{ name: 'formulaId', type: 'bytes32' },
|
|
46
|
+
{ name: 'amountChain', type: 'uint256' },
|
|
30
47
|
{ name: 'nonce', type: 'uint256' },
|
|
31
48
|
{ name: 'maxRedemptions', type: 'uint256' },
|
|
32
49
|
{ name: 'validFrom', type: 'uint256' },
|
|
@@ -138,7 +155,16 @@ export function paymentMandateDomain(opts) {
|
|
|
138
155
|
...(opts.verifyingContract ? { verifyingContract: opts.verifyingContract } : {}),
|
|
139
156
|
};
|
|
140
157
|
}
|
|
158
|
+
const AMOUNT_KINDS = ['exact', 'range', 'formula'];
|
|
141
159
|
function mandateMessage(mandate) {
|
|
160
|
+
const ap = mandate.amountPolicy;
|
|
161
|
+
// A kind outside the union would be signed as an opaque string and read by `mandateAmount` as "not exact".
|
|
162
|
+
if (!AMOUNT_KINDS.includes(ap.kind))
|
|
163
|
+
throw new Error(`[payments] unknown amountPolicy.kind ${String(ap.kind)}`);
|
|
164
|
+
// The mandate names its chain twice (the amount policy and the context binding). Both are signed now; a
|
|
165
|
+
// mandate where they disagree has no single chain to verify against, so it is not signable or verifiable.
|
|
166
|
+
if (ap.chain !== mandate.contextBinding.chain)
|
|
167
|
+
throw new Error('[payments] amountPolicy.chain != contextBinding.chain');
|
|
142
168
|
return {
|
|
143
169
|
mandateId: mandate.mandateId,
|
|
144
170
|
payer: mandate.payer,
|
|
@@ -146,6 +172,10 @@ function mandateMessage(mandate) {
|
|
|
146
172
|
granter: mandate.granter,
|
|
147
173
|
asset: mandate.amountPolicy.asset.id,
|
|
148
174
|
amount: mandateAmount(mandate),
|
|
175
|
+
amountKind: ap.kind,
|
|
176
|
+
minAmount: ap.kind === 'range' ? ap.minAmount : 0n,
|
|
177
|
+
formulaId: ap.kind === 'formula' ? ap.formulaId : ZERO32,
|
|
178
|
+
amountChain: BigInt(ap.chain),
|
|
149
179
|
nonce: mandate.nonce,
|
|
150
180
|
maxRedemptions: BigInt(mandate.maxRedemptions),
|
|
151
181
|
validFrom: BigInt(mandate.validFrom),
|
|
@@ -189,8 +219,9 @@ export async function signPaymentMandate(mandate, signer, opts) {
|
|
|
189
219
|
export async function verifyPaymentMandateSignature(mandate, opts, read1271) {
|
|
190
220
|
if (!mandate.signature || mandate.signature === '0x')
|
|
191
221
|
return false;
|
|
192
|
-
const digest = paymentMandateDigest(mandate, opts);
|
|
193
222
|
try {
|
|
223
|
+
// Inside the try: a mandate whose amount policy cannot be committed (unknown kind, two chains) is `false`.
|
|
224
|
+
const digest = paymentMandateDigest(mandate, opts);
|
|
194
225
|
const res = await read1271(mandate.payer, digest, mandate.signature);
|
|
195
226
|
return typeof res === 'string' && res.slice(0, 10).toLowerCase() === ERC1271_MAGIC;
|
|
196
227
|
}
|
package/dist/mandate-sign.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mandate-sign.js","sourceRoot":"","sources":["../src/mandate-sign.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"mandate-sign.js","sourceRoot":"","sources":["../src/mandate-sign.ts"],"names":[],"mappings":"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"}
|
package/dist/mandate.d.ts
CHANGED
|
@@ -4,11 +4,18 @@
|
|
|
4
4
|
* The wallet + invoice rails (and the demo) build a closed mandate, sign it via
|
|
5
5
|
* `signPaymentMandate`, then settle it with a single transfer. Closed + one-shot per
|
|
6
6
|
* PMT-10 / PMT-INV-14. `orderHash`/`legId` (EXC-R2) bind the leg to an ExchangeOrder.
|
|
7
|
+
*
|
|
8
|
+
* Spec 445 / ontology ONT-4: payer and payee are TREASURIES (`appay:payer`/`appay:payee` range over
|
|
9
|
+
* `ap:Treasury`). The builder asks the REQUIRED `isTreasury` port about both and refuses a person or
|
|
10
|
+
* organization address (`NotATreasuryError`, code `PAYER_NOT_TREASURY` / `PAYEE_NOT_TREASURY`).
|
|
7
11
|
*/
|
|
8
12
|
import type { Address } from '@agenticprimitives/types';
|
|
13
|
+
import { type TreasuryPort } from './treasury.js';
|
|
9
14
|
import { type PaymentMandate, type PaymentRail, type AssetRef, type Hex32 } from './index.js';
|
|
10
15
|
export interface ClosedMandateInput {
|
|
16
|
+
/** the paying TREASURY SA — a person or organization address is refused */
|
|
11
17
|
payer: Address;
|
|
18
|
+
/** the receiving TREASURY SA — a person or organization address is refused */
|
|
12
19
|
payee: Address;
|
|
13
20
|
asset: AssetRef;
|
|
14
21
|
amount: bigint;
|
|
@@ -29,6 +36,7 @@ export interface ClosedMandateInput {
|
|
|
29
36
|
};
|
|
30
37
|
delegationRef?: Hex32;
|
|
31
38
|
}
|
|
32
|
-
/** Build the unsigned closed mandate (signature `'0x'`); sign with `signPaymentMandate`.
|
|
33
|
-
|
|
39
|
+
/** Build the unsigned closed mandate (signature `'0x'`); sign with `signPaymentMandate`. Refuses a non-treasury
|
|
40
|
+
* payer or payee (`deps.isTreasury`, REQUIRED). */
|
|
41
|
+
export declare function buildClosedMandate(input: ClosedMandateInput, deps: TreasuryPort): Promise<PaymentMandate>;
|
|
34
42
|
//# sourceMappingURL=mandate.d.ts.map
|
package/dist/mandate.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mandate.d.ts","sourceRoot":"","sources":["../src/mandate.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"mandate.d.ts","sourceRoot":"","sources":["../src/mandate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAyB,KAAK,YAAY,EAAE,MAAM,eAAe,CAAC;AACzE,OAAO,EAAoB,KAAK,cAAc,EAAE,KAAK,WAAW,EAAE,KAAK,QAAQ,EAAE,KAAK,KAAK,EAAE,MAAM,YAAY,CAAC;AAIhH,MAAM,WAAW,kBAAkB;IACjC,2EAA2E;IAC3E,KAAK,EAAE,OAAO,CAAC;IACf,8EAA8E;IAC9E,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,EAAE,QAAQ,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,WAAW,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,KAAK,CAAC;IAClB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,UAAU,CAAC,EAAE,KAAK,CAAC;IACnB,QAAQ,CAAC,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,KAAK,CAAC;QAAC,IAAI,CAAC,EAAE,KAAK,CAAA;KAAE,CAAC;IACjF,aAAa,CAAC,EAAE,KAAK,CAAC;CACvB;AAED;oDACoD;AACpD,wBAAsB,kBAAkB,CAAC,KAAK,EAAE,kBAAkB,EAAE,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,cAAc,CAAC,CA6B/G"}
|
package/dist/mandate.js
CHANGED
|
@@ -4,11 +4,18 @@
|
|
|
4
4
|
* The wallet + invoice rails (and the demo) build a closed mandate, sign it via
|
|
5
5
|
* `signPaymentMandate`, then settle it with a single transfer. Closed + one-shot per
|
|
6
6
|
* PMT-10 / PMT-INV-14. `orderHash`/`legId` (EXC-R2) bind the leg to an ExchangeOrder.
|
|
7
|
+
*
|
|
8
|
+
* Spec 445 / ontology ONT-4: payer and payee are TREASURIES (`appay:payer`/`appay:payee` range over
|
|
9
|
+
* `ap:Treasury`). The builder asks the REQUIRED `isTreasury` port about both and refuses a person or
|
|
10
|
+
* organization address (`NotATreasuryError`, code `PAYER_NOT_TREASURY` / `PAYEE_NOT_TREASURY`).
|
|
7
11
|
*/
|
|
12
|
+
import { assertTreasuryParties } from './treasury.js';
|
|
8
13
|
import { computeMandateId } from './index.js';
|
|
9
14
|
const ZERO32 = ('0x' + '00'.repeat(32));
|
|
10
|
-
/** Build the unsigned closed mandate (signature `'0x'`); sign with `signPaymentMandate`.
|
|
11
|
-
|
|
15
|
+
/** Build the unsigned closed mandate (signature `'0x'`); sign with `signPaymentMandate`. Refuses a non-treasury
|
|
16
|
+
* payer or payee (`deps.isTreasury`, REQUIRED). */
|
|
17
|
+
export async function buildClosedMandate(input, deps) {
|
|
18
|
+
await assertTreasuryParties(deps, { payers: [input.payer], payees: [input.payee] });
|
|
12
19
|
const validFrom = input.validFrom ?? 0;
|
|
13
20
|
return {
|
|
14
21
|
mandateId: computeMandateId({ payer: input.payer, nonce: input.nonce, rail: input.rail, chain: input.chain }),
|
package/dist/mandate.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mandate.js","sourceRoot":"","sources":["../src/mandate.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"mandate.js","sourceRoot":"","sources":["../src/mandate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,EAAE,qBAAqB,EAAqB,MAAM,eAAe,CAAC;AACzE,OAAO,EAAE,gBAAgB,EAAoE,MAAM,YAAY,CAAC;AAEhH,MAAM,MAAM,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAU,CAAC;AAsBjD;oDACoD;AACpD,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,KAAyB,EAAE,IAAkB;IACpF,MAAM,qBAAqB,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACpF,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,IAAI,CAAC,CAAC;IACvC,OAAO;QACL,SAAS,EAAE,gBAAgB,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC;QAC7G,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,KAAK;QACrC,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,YAAY,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE;QAC7F,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,cAAc,EAAE,CAAC;QACjB,SAAS;QACT,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,cAAc,EAAE;YACd,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACvD,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,SAAS;YACT,SAAS,EAAE,KAAK,CAAC,SAAS;SAC3B;QACD,aAAa,EAAE,KAAK,CAAC,aAAa;QAClC,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,KAAK,CAAC,UAAU,IAAI,MAAM;QACtC,SAAS,EAAE,IAAI;KAChB,CAAC;AACJ,CAAC"}
|
package/dist/ops.d.ts
CHANGED
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import type { Address } from '@agenticprimitives/types';
|
|
7
7
|
import type { Hex32 } from './index.js';
|
|
8
|
+
import { type TreasuryPort, type TreasuryRefusalCode } from './treasury.js';
|
|
8
9
|
export type PaymentEventType = 'payment.created' | 'payment.reserved' | 'payment.settling' | 'payment.settled' | 'payment.failed' | 'payment.refunded' | 'payment.expired' | 'payment.disputed' | 'entitlement.issued' | 'entitlement.consumed';
|
|
9
10
|
export interface PaymentEvent {
|
|
10
11
|
/** dedupe key — re-emitting the same key is a no-op (at-least-once producers, exactly-once consumers) */
|
|
@@ -46,10 +47,50 @@ export interface ReceiptFilter {
|
|
|
46
47
|
asset?: Address;
|
|
47
48
|
}
|
|
48
49
|
export declare function listReceiptsBy(receipts: ReceiptRow[], filter: ReceiptFilter): ReceiptRow[];
|
|
49
|
-
/**
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
50
|
+
/**
|
|
51
|
+
* Net balance change for `account` across the receipt set (incoming as payee − outgoing as payer).
|
|
52
|
+
* Spec 445 / ONT-4: only a treasury holds value — a person or organization account is refused
|
|
53
|
+
* (`NotATreasuryError` `PAYEE_NOT_TREASURY`), never reported as a balance. `isTreasury` is REQUIRED.
|
|
54
|
+
*/
|
|
55
|
+
export declare function balanceDelta(receipts: ReceiptRow[], account: Address, deps: TreasuryPort): Promise<bigint>;
|
|
56
|
+
/** What an order must have been paid IN and TO for `isOrderPaid` to say yes. */
|
|
57
|
+
export interface OrderPaidExpectation {
|
|
58
|
+
/** Net amount (charges − refunds) the order must reach. Omitted → any net amount above zero. */
|
|
59
|
+
amount?: bigint;
|
|
60
|
+
/** Only receipts in this asset count. Omitted → the order's legs must all be in ONE asset, else unpaid. */
|
|
61
|
+
asset?: Address;
|
|
62
|
+
/** Only charges to this payee count. Omitted → the order's charges must all go to ONE payee, else unpaid. */
|
|
63
|
+
payee?: Address;
|
|
64
|
+
}
|
|
65
|
+
export type OrderPaymentStatus = {
|
|
66
|
+
paid: true;
|
|
67
|
+
net: bigint;
|
|
68
|
+
} | {
|
|
69
|
+
paid: false;
|
|
70
|
+
reason: 'NO_CHARGES' | 'MIXED_ASSETS' | 'MIXED_PAYEES' | 'REFUND_IN_OTHER_ASSET' | 'BELOW_EXPECTED' | 'NOT_POSITIVE' | TreasuryRefusalCode;
|
|
71
|
+
address?: Address;
|
|
72
|
+
};
|
|
73
|
+
/**
|
|
74
|
+
* Payment detection: is `orderHash` paid (optionally to ≥ an expected NET amount, in an expected asset, to an
|
|
75
|
+
* expected payee)? From receipts, not logs. Returns the reason when it is not.
|
|
76
|
+
*
|
|
77
|
+
* Spec 445 / audit DATA-14. Three things this used to get wrong, each fail-open:
|
|
78
|
+
* - a refund leg was FILTERED OUT instead of subtracted, so a fully refunded order read as paid;
|
|
79
|
+
* - receipts in another asset were summed as if they were the same unit;
|
|
80
|
+
* - receipts to another payee counted toward "paid to me".
|
|
81
|
+
* A refund leg belongs to the order when it carries the order's `orderHash` or its `refunds` names the
|
|
82
|
+
* `mandateId` of one of the order's charges. Amounts in two assets are never added: with no `asset` named, an
|
|
83
|
+
* order whose legs span assets (or whose charges span payees, with no `payee` named) is NOT paid — the caller
|
|
84
|
+
* has to say which it means. The third argument still accepts a bare bigint (the expected amount).
|
|
85
|
+
*
|
|
86
|
+
* Spec 445 / ontology ONT-4: every leg of the order (charge and refund) must move value treasury → treasury.
|
|
87
|
+
* A leg whose payer or payee is a person or organization makes the order NOT paid, with reason
|
|
88
|
+
* `PAYER_NOT_TREASURY` / `PAYEE_NOT_TREASURY` — such a leg is not a payment this package recognises.
|
|
89
|
+
* `isTreasury` is REQUIRED (absent → `TREASURY_PORT_MISSING`).
|
|
90
|
+
*/
|
|
91
|
+
export declare function orderPaymentStatus(receipts: ReceiptRow[], orderHash: Hex32, expected: bigint | OrderPaidExpectation | undefined, deps: TreasuryPort): Promise<OrderPaymentStatus>;
|
|
92
|
+
/** `orderPaymentStatus(...).paid`. `isTreasury` is REQUIRED (spec 445 / ONT-4). */
|
|
93
|
+
export declare function isOrderPaid(receipts: ReceiptRow[], orderHash: Hex32, expected: bigint | OrderPaidExpectation | undefined, deps: TreasuryPort): Promise<boolean>;
|
|
53
94
|
export declare function exportReceiptsJSON(receipts: ReceiptRow[]): string;
|
|
54
95
|
export declare function exportReceiptsCSV(receipts: ReceiptRow[]): string;
|
|
55
96
|
//# sourceMappingURL=ops.d.ts.map
|
package/dist/ops.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ops.d.ts","sourceRoot":"","sources":["../src/ops.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"ops.d.ts","sourceRoot":"","sources":["../src/ops.ts"],"names":[],"mappings":"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"}
|