@ashlar-blue/x402-trust 0.4.0 → 0.5.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/README.md +32 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/isda-cdm.d.ts +83 -0
- package/dist/isda-cdm.d.ts.map +1 -0
- package/dist/isda-cdm.js +182 -0
- package/dist/isda-cdm.js.map +1 -0
- package/dist/types.d.ts +2 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -207,8 +207,39 @@ const ref = encodeEvidenceRef({
|
|
|
207
207
|
|
|
208
208
|
Verify one by fetching the artifact, canonicalizing it ([RFC 8785 JCS](https://www.rfc-editor.org/rfc/rfc8785)), hashing, and comparing to the digest. A fetched artifact that **mismatches** its digest is evidence-invalid and must be a hard negative; an artifact that is merely **unreachable** should down-weight the record, not revoke it. Link rot and tampering are different failures.
|
|
209
209
|
|
|
210
|
+
## ISDA Common Domain Model (CDM) & Securities Bridge
|
|
211
|
+
|
|
212
|
+
Parse institutional derivatives and securities lifecycle events (Variation Margin, Bond Coupons, Swap Settlements, Equity DvP) directly into conformant x402 HTTP 402 payment challenges and deterministic SCITT accounting statements with SHA-256 pre-image binding:
|
|
213
|
+
|
|
214
|
+
```ts
|
|
215
|
+
import {
|
|
216
|
+
parseIsdaCdmEvent,
|
|
217
|
+
buildIsdaX402Challenge,
|
|
218
|
+
buildIsdaScittStatement,
|
|
219
|
+
verifyIsdaSettlement
|
|
220
|
+
} from '@ashlar-blue/x402-trust';
|
|
221
|
+
|
|
222
|
+
// 1. Parse and validate an incoming ISDA trade lifecycle event
|
|
223
|
+
const event = parseIsdaCdmEvent(rawPayload);
|
|
224
|
+
|
|
225
|
+
// 2. Generate an x402 HTTP 402 payment challenge for RLUSD / XRPL / Flare
|
|
226
|
+
const challenge = buildIsdaX402Challenge(event, {
|
|
227
|
+
facilityUrl: 'https://api.ashlar.blue/settle/isda',
|
|
228
|
+
payToAddress: '0x2222222222222222222222222222222222222222',
|
|
229
|
+
assetNetwork: 'xrpl:mainnet'
|
|
230
|
+
});
|
|
231
|
+
|
|
232
|
+
// 3. Emit a canonical SCITT accounting statement bound to the event
|
|
233
|
+
const statement = buildIsdaScittStatement(event);
|
|
234
|
+
|
|
235
|
+
// 4. Verify on-chain settlement receipt against the accounting statement
|
|
236
|
+
const verdict = verifyIsdaSettlement(statement, onchainReceipt);
|
|
237
|
+
if (!verdict.valid) throw new Error(verdict.error);
|
|
238
|
+
```
|
|
239
|
+
|
|
210
240
|
## Status
|
|
211
241
|
|
|
212
|
-
`0.
|
|
242
|
+
`0.5.0`. Zero-dependency institutional trust and discovery layer for autonomous AI agents and institutional clearing. Published on npm as `@ashlar-blue/x402-trust`. Requires Node ≥20.
|
|
213
243
|
|
|
214
244
|
MIT.
|
|
245
|
+
|
package/dist/index.d.ts
CHANGED
|
@@ -6,6 +6,7 @@ export * from './facilitator-config.js';
|
|
|
6
6
|
export * from './open-catalog.js';
|
|
7
7
|
export * from './catalog-mcp.js';
|
|
8
8
|
export * from './reconcile.js';
|
|
9
|
+
export * from './isda-cdm.js';
|
|
9
10
|
export * from './manifest-sig.js';
|
|
10
11
|
export * from './merkle-transcript.js';
|
|
11
12
|
export * from './attested-directory.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -9,6 +9,7 @@ export * from './facilitator-config.js';
|
|
|
9
9
|
export * from './open-catalog.js';
|
|
10
10
|
export * from './catalog-mcp.js';
|
|
11
11
|
export * from './reconcile.js';
|
|
12
|
+
export * from './isda-cdm.js';
|
|
12
13
|
export * from './manifest-sig.js';
|
|
13
14
|
export * from './merkle-transcript.js';
|
|
14
15
|
export * from './attested-directory.js';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,kFAAkF;AAClF,gFAAgF;AAEhF,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,kFAAkF;AAClF,gFAAgF;AAEhF,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import type { X402Challenge } from './types.js';
|
|
2
|
+
export interface IsdaCdmTradeEvent {
|
|
3
|
+
tradeId: string;
|
|
4
|
+
eventType: 'VARIATION_MARGIN' | 'INITIAL_MARGIN' | 'SWAP_SETTLEMENT' | 'BOND_COUPON' | 'EQUITY_DVP';
|
|
5
|
+
payer: string;
|
|
6
|
+
receiver: string;
|
|
7
|
+
notionalAmount: string;
|
|
8
|
+
settlementCurrency: string;
|
|
9
|
+
isinOrCusip?: string;
|
|
10
|
+
effectiveDate: string;
|
|
11
|
+
enclaveMeasurement?: string;
|
|
12
|
+
}
|
|
13
|
+
export interface IsdaX402ChallengeOptions {
|
|
14
|
+
facilityUrl: string;
|
|
15
|
+
assetNetwork: string;
|
|
16
|
+
payToAddress: string;
|
|
17
|
+
expirationSeconds?: number;
|
|
18
|
+
}
|
|
19
|
+
export interface IsdaScittStatement {
|
|
20
|
+
statementType: string;
|
|
21
|
+
tradeId: string;
|
|
22
|
+
eventType: string;
|
|
23
|
+
grossAmount: string;
|
|
24
|
+
currency: string;
|
|
25
|
+
payer: string;
|
|
26
|
+
receiver: string;
|
|
27
|
+
isinOrCusip: string;
|
|
28
|
+
timestamp: number;
|
|
29
|
+
enclaveMeasurement: string;
|
|
30
|
+
statementDigest: string;
|
|
31
|
+
}
|
|
32
|
+
export interface IsdaSettlementReceipt {
|
|
33
|
+
transactionHash: string;
|
|
34
|
+
payer: string;
|
|
35
|
+
receiver: string;
|
|
36
|
+
settledAmount: string;
|
|
37
|
+
currency: string;
|
|
38
|
+
status: 'CONFIRMED' | 'FAILED';
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Parses a raw ISDA CDM JSON string or object payload into a validated IsdaCdmTradeEvent.
|
|
42
|
+
*/
|
|
43
|
+
export declare function parseIsdaCdmEvent(rawPayload: unknown): IsdaCdmTradeEvent;
|
|
44
|
+
/**
|
|
45
|
+
* Constructs a standard x402 Challenge from an ISDA CDM Trade Event.
|
|
46
|
+
*/
|
|
47
|
+
export declare function buildIsdaX402Challenge(event: IsdaCdmTradeEvent, opts: IsdaX402ChallengeOptions): X402Challenge;
|
|
48
|
+
/**
|
|
49
|
+
* Builds a deterministic SCITT Signed Accounting Statement payload for an ISDA trade settlement.
|
|
50
|
+
*/
|
|
51
|
+
export declare function buildIsdaScittStatement(event: IsdaCdmTradeEvent, settlementTimestamp?: number): IsdaScittStatement;
|
|
52
|
+
/**
|
|
53
|
+
* Verifies an on-chain settlement receipt against a canonical ISDA SCITT statement.
|
|
54
|
+
*/
|
|
55
|
+
export declare function verifyIsdaSettlement(statement: IsdaScittStatement, receipt: IsdaSettlementReceipt): {
|
|
56
|
+
valid: boolean;
|
|
57
|
+
error?: string;
|
|
58
|
+
};
|
|
59
|
+
export interface DvpSettlementResult {
|
|
60
|
+
tradeId: string;
|
|
61
|
+
status: 'SETTLED' | 'REFUSED_FAILED_LEG' | 'REFUSED_EXPIRED';
|
|
62
|
+
assetLeg: {
|
|
63
|
+
assetIdentifier: string;
|
|
64
|
+
from: string;
|
|
65
|
+
to: string;
|
|
66
|
+
quantity: string;
|
|
67
|
+
status: 'TRANSFERRED' | 'PENDING';
|
|
68
|
+
};
|
|
69
|
+
cashLeg: {
|
|
70
|
+
currency: string;
|
|
71
|
+
from: string;
|
|
72
|
+
to: string;
|
|
73
|
+
amount: string;
|
|
74
|
+
status: 'SETTLED' | 'PENDING';
|
|
75
|
+
};
|
|
76
|
+
enclaveProofDigest: string;
|
|
77
|
+
settlementTimestamp: number;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Simulates atomic Delivery-vs-Payment (DvP) trade execution inside a secure TEE enclave.
|
|
81
|
+
*/
|
|
82
|
+
export declare function executeDvpSettlement(event: IsdaCdmTradeEvent, assetQuantity: string, assetConfirmed: boolean, cashConfirmed: boolean, enclaveMeasurement?: string): DvpSettlementResult;
|
|
83
|
+
//# sourceMappingURL=isda-cdm.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"isda-cdm.d.ts","sourceRoot":"","sources":["../src/isda-cdm.ts"],"names":[],"mappings":"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"}
|
package/dist/isda-cdm.js
ADDED
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
// GENERATED from src/x402/isda-cdm.ts by scripts/sdk/sync-sdk.ts — do not edit here.
|
|
2
|
+
// The canonical module is the one FlareClaw runs in production; this is a copy so
|
|
3
|
+
// that what we publish and what we run cannot diverge. Edit the canonical file.
|
|
4
|
+
/**
|
|
5
|
+
* ISDA Common Domain Model (CDM) & Securities x402 Bridge
|
|
6
|
+
*
|
|
7
|
+
* Provides zero-dependency mapping between ISDA CDM trade lifecycle events
|
|
8
|
+
* (Variation Margin calls, Interest Rate Swap payoffs, Bond Coupon distributions)
|
|
9
|
+
* and x402 payment challenges + SCITT audit statements.
|
|
10
|
+
*/
|
|
11
|
+
import { createHash } from 'node:crypto';
|
|
12
|
+
/**
|
|
13
|
+
* Parses a raw ISDA CDM JSON string or object payload into a validated IsdaCdmTradeEvent.
|
|
14
|
+
*/
|
|
15
|
+
export function parseIsdaCdmEvent(rawPayload) {
|
|
16
|
+
let obj;
|
|
17
|
+
if (typeof rawPayload === 'string') {
|
|
18
|
+
try {
|
|
19
|
+
obj = JSON.parse(rawPayload);
|
|
20
|
+
}
|
|
21
|
+
catch {
|
|
22
|
+
throw new TypeError('Invalid JSON string for ISDA CDM payload');
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
else if (typeof rawPayload === 'object' && rawPayload !== null) {
|
|
26
|
+
obj = rawPayload;
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
throw new TypeError('Invalid ISDA CDM payload: expected an object or JSON string');
|
|
30
|
+
}
|
|
31
|
+
if (typeof obj.tradeId !== 'string' || !obj.tradeId) {
|
|
32
|
+
throw new TypeError('Missing required ISDA fields: invalid tradeId');
|
|
33
|
+
}
|
|
34
|
+
const validTypes = ['VARIATION_MARGIN', 'INITIAL_MARGIN', 'SWAP_SETTLEMENT', 'BOND_COUPON', 'EQUITY_DVP'];
|
|
35
|
+
if (typeof obj.eventType !== 'string' || !validTypes.includes(obj.eventType)) {
|
|
36
|
+
throw new TypeError(`Invalid ISDA CDM payload: eventType must be one of ${validTypes.join(', ')}`);
|
|
37
|
+
}
|
|
38
|
+
if (typeof obj.payer !== 'string' || typeof obj.receiver !== 'string') {
|
|
39
|
+
throw new TypeError('Invalid ISDA CDM payload: payer and receiver must be valid string identifiers');
|
|
40
|
+
}
|
|
41
|
+
if (typeof obj.notionalAmount !== 'string' || typeof obj.settlementCurrency !== 'string') {
|
|
42
|
+
throw new TypeError('Invalid ISDA CDM payload: notionalAmount and settlementCurrency must be strings');
|
|
43
|
+
}
|
|
44
|
+
const num = parseFloat(obj.notionalAmount);
|
|
45
|
+
if (isNaN(num) || num <= 0) {
|
|
46
|
+
throw new TypeError('Invalid notional amount: must be positive numeric string');
|
|
47
|
+
}
|
|
48
|
+
return {
|
|
49
|
+
tradeId: obj.tradeId,
|
|
50
|
+
eventType: obj.eventType,
|
|
51
|
+
payer: obj.payer,
|
|
52
|
+
receiver: obj.receiver,
|
|
53
|
+
notionalAmount: obj.notionalAmount,
|
|
54
|
+
settlementCurrency: obj.settlementCurrency,
|
|
55
|
+
isinOrCusip: typeof obj.isinOrCusip === 'string' ? obj.isinOrCusip : 'N/A',
|
|
56
|
+
effectiveDate: typeof obj.effectiveDate === 'string' ? obj.effectiveDate : new Date().toISOString(),
|
|
57
|
+
enclaveMeasurement: typeof obj.enclaveMeasurement === 'string' ? obj.enclaveMeasurement : '',
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Constructs a standard x402 Challenge from an ISDA CDM Trade Event.
|
|
62
|
+
*/
|
|
63
|
+
export function buildIsdaX402Challenge(event, opts) {
|
|
64
|
+
return {
|
|
65
|
+
x402Version: 1,
|
|
66
|
+
error: `Payment required for ISDA CDM event ${event.eventType} (${event.tradeId})`,
|
|
67
|
+
accepts: [
|
|
68
|
+
{
|
|
69
|
+
scheme: 'exact',
|
|
70
|
+
network: opts.assetNetwork,
|
|
71
|
+
amount: event.notionalAmount,
|
|
72
|
+
maxAmountRequired: event.notionalAmount,
|
|
73
|
+
resource: opts.facilityUrl,
|
|
74
|
+
description: `ISDA Settlement: ${event.eventType} for ${event.isinOrCusip || event.tradeId}`,
|
|
75
|
+
mimeType: 'application/json',
|
|
76
|
+
payTo: opts.payToAddress,
|
|
77
|
+
maxTimeoutSeconds: 300,
|
|
78
|
+
asset: opts.payToAddress,
|
|
79
|
+
extra: {
|
|
80
|
+
name: event.settlementCurrency,
|
|
81
|
+
version: '1',
|
|
82
|
+
assetTransferMethod: 'eip3009'
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
]
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Builds a deterministic SCITT Signed Accounting Statement payload for an ISDA trade settlement.
|
|
90
|
+
*/
|
|
91
|
+
export function buildIsdaScittStatement(event, settlementTimestamp = Math.floor(Date.now() / 1000)) {
|
|
92
|
+
const base = {
|
|
93
|
+
statementType: 'https://x402.org/schemas/v1/isda-settlement',
|
|
94
|
+
tradeId: event.tradeId,
|
|
95
|
+
eventType: event.eventType,
|
|
96
|
+
grossAmount: event.notionalAmount,
|
|
97
|
+
currency: event.settlementCurrency,
|
|
98
|
+
payer: event.payer,
|
|
99
|
+
receiver: event.receiver,
|
|
100
|
+
isinOrCusip: event.isinOrCusip || 'N/A',
|
|
101
|
+
timestamp: settlementTimestamp,
|
|
102
|
+
enclaveMeasurement: event.enclaveMeasurement || '',
|
|
103
|
+
};
|
|
104
|
+
const rawBytes = JSON.stringify(base);
|
|
105
|
+
const digest = `sha256:${createHash('sha256').update(rawBytes, 'utf8').digest('hex')}`;
|
|
106
|
+
return {
|
|
107
|
+
...base,
|
|
108
|
+
statementDigest: digest,
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Verifies an on-chain settlement receipt against a canonical ISDA SCITT statement.
|
|
113
|
+
*/
|
|
114
|
+
export function verifyIsdaSettlement(statement, receipt) {
|
|
115
|
+
if (receipt.status !== 'CONFIRMED') {
|
|
116
|
+
return { valid: false, error: 'Settlement receipt status is not CONFIRMED' };
|
|
117
|
+
}
|
|
118
|
+
if (receipt.payer.toLowerCase() !== statement.payer.toLowerCase()) {
|
|
119
|
+
return { valid: false, error: `Payer mismatch: expected ${statement.payer}, got ${receipt.payer}` };
|
|
120
|
+
}
|
|
121
|
+
if (receipt.receiver.toLowerCase() !== statement.receiver.toLowerCase()) {
|
|
122
|
+
return { valid: false, error: `Receiver mismatch: expected ${statement.receiver}, got ${receipt.receiver}` };
|
|
123
|
+
}
|
|
124
|
+
if (receipt.currency !== statement.currency) {
|
|
125
|
+
return { valid: false, error: `Currency mismatch: expected ${statement.currency}, got ${receipt.currency}` };
|
|
126
|
+
}
|
|
127
|
+
if (receipt.settledAmount !== statement.grossAmount) {
|
|
128
|
+
return { valid: false, error: `Settled amount mismatch: expected ${statement.grossAmount}, got ${receipt.settledAmount}` };
|
|
129
|
+
}
|
|
130
|
+
return { valid: true };
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Simulates atomic Delivery-vs-Payment (DvP) trade execution inside a secure TEE enclave.
|
|
134
|
+
*/
|
|
135
|
+
export function executeDvpSettlement(event, assetQuantity, assetConfirmed, cashConfirmed, enclaveMeasurement = 'sha256:d0e0af6c00aede25451ce3a67df4a45d0d964c7b9196dc725dd310723eb8a49f') {
|
|
136
|
+
const timestamp = Math.floor(Date.now() / 1000);
|
|
137
|
+
if (!assetConfirmed || !cashConfirmed) {
|
|
138
|
+
return {
|
|
139
|
+
tradeId: event.tradeId,
|
|
140
|
+
status: 'REFUSED_FAILED_LEG',
|
|
141
|
+
assetLeg: {
|
|
142
|
+
assetIdentifier: event.isinOrCusip || 'N/A',
|
|
143
|
+
from: event.receiver, // Asset seller
|
|
144
|
+
to: event.payer, // Asset buyer
|
|
145
|
+
quantity: assetQuantity,
|
|
146
|
+
status: assetConfirmed ? 'TRANSFERRED' : 'PENDING',
|
|
147
|
+
},
|
|
148
|
+
cashLeg: {
|
|
149
|
+
currency: event.settlementCurrency,
|
|
150
|
+
from: event.payer,
|
|
151
|
+
to: event.receiver,
|
|
152
|
+
amount: event.notionalAmount,
|
|
153
|
+
status: cashConfirmed ? 'SETTLED' : 'PENDING',
|
|
154
|
+
},
|
|
155
|
+
enclaveProofDigest: 'sha256:0000000000000000000000000000000000000000000000000000000000000000',
|
|
156
|
+
settlementTimestamp: timestamp,
|
|
157
|
+
};
|
|
158
|
+
}
|
|
159
|
+
const rawProof = `${event.tradeId}:${event.isinOrCusip}:${event.notionalAmount}:${enclaveMeasurement}:${timestamp}`;
|
|
160
|
+
const proofDigest = `sha256:${createHash('sha256').update(rawProof, 'utf8').digest('hex')}`;
|
|
161
|
+
return {
|
|
162
|
+
tradeId: event.tradeId,
|
|
163
|
+
status: 'SETTLED',
|
|
164
|
+
assetLeg: {
|
|
165
|
+
assetIdentifier: event.isinOrCusip || 'N/A',
|
|
166
|
+
from: event.receiver,
|
|
167
|
+
to: event.payer,
|
|
168
|
+
quantity: assetQuantity,
|
|
169
|
+
status: 'TRANSFERRED',
|
|
170
|
+
},
|
|
171
|
+
cashLeg: {
|
|
172
|
+
currency: event.settlementCurrency,
|
|
173
|
+
from: event.payer,
|
|
174
|
+
to: event.receiver,
|
|
175
|
+
amount: event.notionalAmount,
|
|
176
|
+
status: 'SETTLED',
|
|
177
|
+
},
|
|
178
|
+
enclaveProofDigest: proofDigest,
|
|
179
|
+
settlementTimestamp: timestamp,
|
|
180
|
+
};
|
|
181
|
+
}
|
|
182
|
+
//# sourceMappingURL=isda-cdm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"isda-cdm.js","sourceRoot":"","sources":["../src/isda-cdm.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -96,6 +96,8 @@ export interface PaymentRequiredResponse {
|
|
|
96
96
|
*/
|
|
97
97
|
accepted?: PaymentRequirements[] | PaymentRequirements;
|
|
98
98
|
}
|
|
99
|
+
/** Convenient alias for PaymentRequiredResponse (x402 HTTP 402 Challenge). */
|
|
100
|
+
export type X402Challenge = PaymentRequiredResponse;
|
|
99
101
|
/**
|
|
100
102
|
* The amount a requirement asks for, whichever version wrote it.
|
|
101
103
|
* Throws rather than defaulting: a missing price must never quietly
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,kFAAkF;AAClF,kFAAkF;AAClF,gFAAgF;AAEhF;;;;;;;;;;;GAWG;AAEH;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC;AAE9B,8CAA8C;AAC9C,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC,EAAE,CAAC,CAAU,CAAC;AAevD,MAAM,CAAC,MAAM,cAAc,GAAG,WAAW,CAAC;AAC1C;;;;;GAKG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,kBAAkB,CAAC;AAC1D,MAAM,CAAC,MAAM,uBAAuB,GAAG,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,kFAAkF;AAClF,kFAAkF;AAClF,gFAAgF;AAEhF;;;;;;;;;;;GAWG;AAEH;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC;AAE9B,8CAA8C;AAC9C,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC,EAAE,CAAC,CAAU,CAAC;AAevD,MAAM,CAAC,MAAM,cAAc,GAAG,WAAW,CAAC;AAC1C;;;;;GAKG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,kBAAkB,CAAC;AAC1D,MAAM,CAAC,MAAM,uBAAuB,GAAG,oBAAoB,CAAC;AAsD5D;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAC,CAAsB;IACpD,MAAM,CAAC,GAAG,CAAC,CAAC,iBAAiB,IAAI,CAAC,CAAC,MAAM,CAAC;IAC1C,IAAI,CAAC,KAAK,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,sEAAsE,CAAC,CAAC;IAC7G,OAAO,CAAC,CAAC;AACb,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAA6B;IAC7D,IAAI,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC,OAAO,CAAC;IACtC,IAAI,CAAC,IAAI,CAAC,QAAQ;QAAE,OAAO,EAAE,CAAC;IAC9B,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC1E,CAAC;AAED,kEAAkE;AAClE,MAAM,UAAU,cAAc,CAAC,CAAsB;IACjD,OAAO,CAAC,CAAC,KAAK,EAAE,mBAAmB,IAAI,SAAS,CAAC;AACrD,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ashlar-blue/x402-trust",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "The institutional trust layer for autonomous AI agents: discover payment endpoints via DNS, verify TEE hardware quotes, generate SCITT receipts, and run Model Context Protocol (MCP) toolchains. Zero dependencies.",
|
|
3
|
+
"version": "0.5.0",
|
|
4
|
+
"description": "The institutional trust layer for autonomous AI agents: discover payment endpoints via DNS, verify TEE hardware quotes, generate SCITT receipts, parse ISDA CDM securities lifecycle events, and run Model Context Protocol (MCP) toolchains. Zero dependencies.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"x402",
|
|
7
7
|
"mcp",
|