tenzro-wallet 0.2.4 → 0.2.5

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.
Files changed (82) hide show
  1. package/dist/ports/attested-clock/adapter.d.ts +13 -0
  2. package/dist/ports/attested-clock/adapter.d.ts.map +1 -0
  3. package/dist/ports/attested-clock/adapter.js +20 -0
  4. package/dist/ports/attested-clock/adapter.js.map +1 -0
  5. package/dist/ports/attested-clock/attested-clock.d.ts +19 -0
  6. package/dist/ports/attested-clock/attested-clock.d.ts.map +1 -0
  7. package/dist/ports/attested-clock/attested-clock.js +11 -0
  8. package/dist/ports/attested-clock/attested-clock.js.map +1 -0
  9. package/dist/ports/attested-clock/index.d.ts +4 -0
  10. package/dist/ports/attested-clock/index.d.ts.map +1 -0
  11. package/dist/ports/attested-clock/index.js +2 -0
  12. package/dist/ports/attested-clock/index.js.map +1 -0
  13. package/dist/ports/bridge-fee/adapter.d.ts +18 -0
  14. package/dist/ports/bridge-fee/adapter.d.ts.map +1 -0
  15. package/dist/ports/bridge-fee/adapter.js +94 -0
  16. package/dist/ports/bridge-fee/adapter.js.map +1 -0
  17. package/dist/ports/bridge-fee/bridge-fee.d.ts +92 -0
  18. package/dist/ports/bridge-fee/bridge-fee.d.ts.map +1 -0
  19. package/dist/ports/bridge-fee/bridge-fee.js +18 -0
  20. package/dist/ports/bridge-fee/bridge-fee.js.map +1 -0
  21. package/dist/ports/bridge-fee/index.d.ts +4 -0
  22. package/dist/ports/bridge-fee/index.d.ts.map +1 -0
  23. package/dist/ports/bridge-fee/index.js +2 -0
  24. package/dist/ports/bridge-fee/index.js.map +1 -0
  25. package/dist/ports/erc7683/erc7683.d.ts +17 -0
  26. package/dist/ports/erc7683/erc7683.d.ts.map +1 -1
  27. package/dist/ports/erc7683/index.d.ts +1 -1
  28. package/dist/ports/erc7683/index.d.ts.map +1 -1
  29. package/dist/ports/erc7683/index.js.map +1 -1
  30. package/dist/ports/index.d.ts +7 -0
  31. package/dist/ports/index.d.ts.map +1 -1
  32. package/dist/ports/index.js +20 -0
  33. package/dist/ports/index.js.map +1 -1
  34. package/dist/ports/ivms101/adapter.d.ts +12 -0
  35. package/dist/ports/ivms101/adapter.d.ts.map +1 -0
  36. package/dist/ports/ivms101/adapter.js +16 -0
  37. package/dist/ports/ivms101/adapter.js.map +1 -0
  38. package/dist/ports/ivms101/index.d.ts +4 -0
  39. package/dist/ports/ivms101/index.d.ts.map +1 -0
  40. package/dist/ports/ivms101/index.js +2 -0
  41. package/dist/ports/ivms101/index.js.map +1 -0
  42. package/dist/ports/ivms101/ivms101.d.ts +21 -0
  43. package/dist/ports/ivms101/ivms101.d.ts.map +1 -0
  44. package/dist/ports/ivms101/ivms101.js +12 -0
  45. package/dist/ports/ivms101/ivms101.js.map +1 -0
  46. package/dist/ports/signed-agent-card/adapter.d.ts +13 -0
  47. package/dist/ports/signed-agent-card/adapter.d.ts.map +1 -0
  48. package/dist/ports/signed-agent-card/adapter.js +21 -0
  49. package/dist/ports/signed-agent-card/adapter.js.map +1 -0
  50. package/dist/ports/signed-agent-card/index.d.ts +4 -0
  51. package/dist/ports/signed-agent-card/index.d.ts.map +1 -0
  52. package/dist/ports/signed-agent-card/index.js +2 -0
  53. package/dist/ports/signed-agent-card/index.js.map +1 -0
  54. package/dist/ports/signed-agent-card/signed-agent-card.d.ts +27 -0
  55. package/dist/ports/signed-agent-card/signed-agent-card.d.ts.map +1 -0
  56. package/dist/ports/signed-agent-card/signed-agent-card.js +10 -0
  57. package/dist/ports/signed-agent-card/signed-agent-card.js.map +1 -0
  58. package/dist/ports/urwa/adapter.d.ts +16 -0
  59. package/dist/ports/urwa/adapter.d.ts.map +1 -0
  60. package/dist/ports/urwa/adapter.js +63 -0
  61. package/dist/ports/urwa/adapter.js.map +1 -0
  62. package/dist/ports/urwa/index.d.ts +4 -0
  63. package/dist/ports/urwa/index.d.ts.map +1 -0
  64. package/dist/ports/urwa/index.js +2 -0
  65. package/dist/ports/urwa/index.js.map +1 -0
  66. package/dist/ports/urwa/urwa.d.ts +57 -0
  67. package/dist/ports/urwa/urwa.d.ts.map +1 -0
  68. package/dist/ports/urwa/urwa.js +9 -0
  69. package/dist/ports/urwa/urwa.js.map +1 -0
  70. package/dist/ports/wormhole-ntt/adapter.d.ts +13 -0
  71. package/dist/ports/wormhole-ntt/adapter.d.ts.map +1 -0
  72. package/dist/ports/wormhole-ntt/adapter.js +23 -0
  73. package/dist/ports/wormhole-ntt/adapter.js.map +1 -0
  74. package/dist/ports/wormhole-ntt/index.d.ts +4 -0
  75. package/dist/ports/wormhole-ntt/index.d.ts.map +1 -0
  76. package/dist/ports/wormhole-ntt/index.js +2 -0
  77. package/dist/ports/wormhole-ntt/index.js.map +1 -0
  78. package/dist/ports/wormhole-ntt/wormhole-ntt.d.ts +22 -0
  79. package/dist/ports/wormhole-ntt/wormhole-ntt.d.ts.map +1 -0
  80. package/dist/ports/wormhole-ntt/wormhole-ntt.js +10 -0
  81. package/dist/ports/wormhole-ntt/wormhole-ntt.js.map +1 -0
  82. package/package.json +3 -3
@@ -0,0 +1,13 @@
1
+ /**
2
+ * AttestedClockAdapter — `AttestedClockPort` backed by `tenzro-sdk`
3
+ * `AttestedClockClient`.
4
+ */
5
+ import type { AttestedClockClient } from 'tenzro-sdk';
6
+ import type { AttestedClockPort, AttestedTimestamp } from './attested-clock.js';
7
+ export type AttestedClockClientLike = Pick<AttestedClockClient, 'now'>;
8
+ export declare class AttestedClockAdapter implements AttestedClockPort {
9
+ private readonly client;
10
+ constructor(client: AttestedClockClientLike);
11
+ now(): Promise<AttestedTimestamp>;
12
+ }
13
+ //# sourceMappingURL=adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../src/ports/attested-clock/adapter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACtD,OAAO,KAAK,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAEhF,MAAM,MAAM,uBAAuB,GAAG,IAAI,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAC;AAEvE,qBAAa,oBAAqB,YAAW,iBAAiB;IAChD,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,uBAAuB;IAEtD,GAAG,IAAI,OAAO,CAAC,iBAAiB,CAAC;CASxC"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * AttestedClockAdapter — `AttestedClockPort` backed by `tenzro-sdk`
3
+ * `AttestedClockClient`.
4
+ */
5
+ export class AttestedClockAdapter {
6
+ client;
7
+ constructor(client) {
8
+ this.client = client;
9
+ }
10
+ async now() {
11
+ const r = await this.client.now();
12
+ return {
13
+ wallMs: r.wall_ms,
14
+ monotonicNs: r.monotonic_ns,
15
+ teeVendor: r.tee_vendor,
16
+ ...(r.note !== undefined ? { note: r.note } : {}),
17
+ };
18
+ }
19
+ }
20
+ //# sourceMappingURL=adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../../src/ports/attested-clock/adapter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH,MAAM,OAAO,oBAAoB;IACF;IAA7B,YAA6B,MAA+B;QAA/B,WAAM,GAAN,MAAM,CAAyB;IAAG,CAAC;IAEhE,KAAK,CAAC,GAAG;QACP,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;QAClC,OAAO;YACL,MAAM,EAAE,CAAC,CAAC,OAAO;YACjB,WAAW,EAAE,CAAC,CAAC,YAAY;YAC3B,SAAS,EAAE,CAAC,CAAC,UAAU;YACvB,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAClD,CAAC;IACJ,CAAC;CACF"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * AttestedClockPort — TEE-attested timestamp envelope.
3
+ *
4
+ * Wallet usage: long-running operations (saga step deadlines,
5
+ * obligation expiries, AP2 mandate validity windows) need a
6
+ * tamper-resistant timestamp. The wallet asks the node for an
7
+ * attested-clock envelope, surfaces the `wallMs` to the user, and
8
+ * binds the envelope into the operation it's signing.
9
+ */
10
+ export interface AttestedTimestamp {
11
+ readonly wallMs: number;
12
+ readonly monotonicNs: number;
13
+ readonly teeVendor: string | null;
14
+ readonly note?: string;
15
+ }
16
+ export interface AttestedClockPort {
17
+ now(): Promise<AttestedTimestamp>;
18
+ }
19
+ //# sourceMappingURL=attested-clock.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"attested-clock.d.ts","sourceRoot":"","sources":["../../../src/ports/attested-clock/attested-clock.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,iBAAiB;IAChC,GAAG,IAAI,OAAO,CAAC,iBAAiB,CAAC,CAAC;CACnC"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * AttestedClockPort — TEE-attested timestamp envelope.
3
+ *
4
+ * Wallet usage: long-running operations (saga step deadlines,
5
+ * obligation expiries, AP2 mandate validity windows) need a
6
+ * tamper-resistant timestamp. The wallet asks the node for an
7
+ * attested-clock envelope, surfaces the `wallMs` to the user, and
8
+ * binds the envelope into the operation it's signing.
9
+ */
10
+ export {};
11
+ //# sourceMappingURL=attested-clock.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"attested-clock.js","sourceRoot":"","sources":["../../../src/ports/attested-clock/attested-clock.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG"}
@@ -0,0 +1,4 @@
1
+ export type { AttestedClockPort, AttestedTimestamp } from './attested-clock.js';
2
+ export { AttestedClockAdapter } from './adapter.js';
3
+ export type { AttestedClockClientLike } from './adapter.js';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ports/attested-clock/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAChF,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,YAAY,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { AttestedClockAdapter } from "./adapter.js";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ports/attested-clock/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * BridgeFeeAdapter — `BridgeFeePort` backed by `tenzro-sdk` `BridgeFeeClient`.
3
+ */
4
+ import type { BridgeFeeClient } from 'tenzro-sdk';
5
+ import type { BridgeFeePort, BridgeFeeQuote, BridgeKeyAnalytics, BridgeSponsorshipPool, BridgeSponsorshipReceipt, QuoteBridgeFeeRequest, SetBridgeFeeRateRequest, SponsorBridgeFeeRequest } from './bridge-fee.js';
6
+ export type BridgeFeeClientLike = Pick<BridgeFeeClient, 'quote' | 'listSponsorshipPools' | 'sponsor' | 'getAnalytics' | 'setRate' | 'setRefillThreshold' | 'listAnalytics'>;
7
+ export declare class BridgeFeeAdapter implements BridgeFeePort {
8
+ private readonly client;
9
+ constructor(client: BridgeFeeClientLike);
10
+ quote(req: QuoteBridgeFeeRequest): Promise<BridgeFeeQuote>;
11
+ listSponsorshipPools(): Promise<readonly BridgeSponsorshipPool[]>;
12
+ sponsor(req: SponsorBridgeFeeRequest): Promise<BridgeSponsorshipReceipt>;
13
+ getAnalytics(): Promise<BridgeKeyAnalytics>;
14
+ setRate(req: SetBridgeFeeRateRequest): Promise<unknown>;
15
+ setRefillThreshold(adapter: string, refillThresholdBps: number): Promise<unknown>;
16
+ listAnalytics(_keyId?: string): Promise<readonly BridgeKeyAnalytics[]>;
17
+ }
18
+ //# sourceMappingURL=adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../src/ports/bridge-fee/adapter.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,KAAK,EACV,aAAa,EACb,cAAc,EACd,kBAAkB,EAClB,qBAAqB,EACrB,wBAAwB,EACxB,qBAAqB,EACrB,uBAAuB,EACvB,uBAAuB,EACxB,MAAM,iBAAiB,CAAC;AAEzB,MAAM,MAAM,mBAAmB,GAAG,IAAI,CACpC,eAAe,EACb,OAAO,GACP,sBAAsB,GACtB,SAAS,GACT,cAAc,GACd,SAAS,GACT,oBAAoB,GACpB,eAAe,CAClB,CAAC;AA0BF,qBAAa,gBAAiB,YAAW,aAAa;IACxC,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,mBAAmB;IAElD,KAAK,CAAC,GAAG,EAAE,qBAAqB,GAAG,OAAO,CAAC,cAAc,CAAC;IAe1D,oBAAoB,IAAI,OAAO,CAAC,SAAS,qBAAqB,EAAE,CAAC;IAajE,OAAO,CAAC,GAAG,EAAE,uBAAuB,GAAG,OAAO,CAAC,wBAAwB,CAAC;IA0BxE,YAAY,IAAI,OAAO,CAAC,kBAAkB,CAAC;IAKjD,OAAO,CAAC,GAAG,EAAE,uBAAuB,GAAG,OAAO,CAAC,OAAO,CAAC;IAUvD,kBAAkB,CAChB,OAAO,EAAE,MAAM,EACf,kBAAkB,EAAE,MAAM,GACzB,OAAO,CAAC,OAAO,CAAC;IAIb,aAAa,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,kBAAkB,EAAE,CAAC;CAI7E"}
@@ -0,0 +1,94 @@
1
+ /**
2
+ * BridgeFeeAdapter — `BridgeFeePort` backed by `tenzro-sdk` `BridgeFeeClient`.
3
+ */
4
+ function toAnalytics(o) {
5
+ return {
6
+ keyId: o.key_id,
7
+ callsTotal: o.calls_total,
8
+ errorsTotal: o.errors_total,
9
+ callsByMethod: o.calls_by_method,
10
+ errorsByMethod: o.errors_by_method,
11
+ cuConsumedTotal: o.cu_consumed_total,
12
+ ...(o.first_seen_at !== undefined ? { firstSeenAt: o.first_seen_at } : {}),
13
+ ...(o.last_called_at !== undefined ? { lastCalledAt: o.last_called_at } : {}),
14
+ rateLimitRejections: o.rate_limit_rejections,
15
+ };
16
+ }
17
+ export class BridgeFeeAdapter {
18
+ client;
19
+ constructor(client) {
20
+ this.client = client;
21
+ }
22
+ async quote(req) {
23
+ const r = await this.client.quote({
24
+ adapter: req.adapter,
25
+ dest_chain: req.destChain,
26
+ native_fee_smallest_unit: req.nativeFeeSmallestUnit,
27
+ });
28
+ return {
29
+ adapter: r.adapter,
30
+ destChain: r.dest_chain,
31
+ nativeFeeSmallestUnit: r.native_fee_smallest_unit,
32
+ tnzoAmountWei: r.tnzo_amount_wei,
33
+ oracleBacking: r.oracle_backing,
34
+ };
35
+ }
36
+ async listSponsorshipPools() {
37
+ const r = await this.client.listSponsorshipPools();
38
+ return r.pools.map((p) => ({
39
+ adapter: p.adapter,
40
+ vaultAddressHex: p.vault_address_hex,
41
+ tnzoBalanceWei: p.tnzo_balance_wei,
42
+ nativeOutstandingSmallestUnit: p.native_outstanding_smallest_unit,
43
+ ...(p.refill_threshold_bps !== undefined
44
+ ? { refillThresholdBps: p.refill_threshold_bps }
45
+ : {}),
46
+ }));
47
+ }
48
+ async sponsor(req) {
49
+ const r = await this.client.sponsor({
50
+ quote_id_hex: req.quoteIdHex,
51
+ adapter: req.adapter,
52
+ dest_chain: req.destChain,
53
+ native_fee_smallest_unit: req.nativeFeeSmallestUnit,
54
+ tnzo_amount_wei: req.tnzoAmountWei,
55
+ rate_q18_hex: req.rateQ18Hex,
56
+ issued_at_ms: req.issuedAtMs,
57
+ valid_until_ms: req.validUntilMs,
58
+ ...(req.oracleBacking !== undefined ? { oracle_backing: req.oracleBacking } : {}),
59
+ payer_did: req.payerDid,
60
+ });
61
+ return {
62
+ sponsorshipIdHex: r.sponsorship_id_hex,
63
+ quoteIdHex: r.quote_id_hex,
64
+ adapter: r.adapter,
65
+ destChain: r.dest_chain,
66
+ payerDid: r.payer_did,
67
+ tnzoPaidWei: r.tnzo_paid_wei,
68
+ nativeCommittedSmallestUnit: r.native_committed_smallest_unit,
69
+ sponsoredAtMs: r.sponsored_at_ms,
70
+ poolAddressHex: r.pool_address_hex,
71
+ };
72
+ }
73
+ async getAnalytics() {
74
+ const r = await this.client.getAnalytics();
75
+ return toAnalytics(r);
76
+ }
77
+ setRate(req) {
78
+ return this.client.setRate({
79
+ adapter: req.adapter,
80
+ dest_chain: req.destChain,
81
+ rate_q18: req.rateQ18,
82
+ markup_bps: req.markupBps,
83
+ valid_window_ms: req.validWindowMs,
84
+ });
85
+ }
86
+ setRefillThreshold(adapter, refillThresholdBps) {
87
+ return this.client.setRefillThreshold(adapter, refillThresholdBps);
88
+ }
89
+ async listAnalytics(_keyId) {
90
+ const r = await this.client.listAnalytics();
91
+ return r.analytics.map(toAnalytics);
92
+ }
93
+ }
94
+ //# sourceMappingURL=adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../../src/ports/bridge-fee/adapter.ts"],"names":[],"mappings":"AAAA;;GAEG;AAyBH,SAAS,WAAW,CAAC,CAUpB;IACC,OAAO;QACL,KAAK,EAAE,CAAC,CAAC,MAAM;QACf,UAAU,EAAE,CAAC,CAAC,WAAW;QACzB,WAAW,EAAE,CAAC,CAAC,YAAY;QAC3B,aAAa,EAAE,CAAC,CAAC,eAAe;QAChC,cAAc,EAAE,CAAC,CAAC,gBAAgB;QAClC,eAAe,EAAE,CAAC,CAAC,iBAAiB;QACpC,GAAG,CAAC,CAAC,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1E,GAAG,CAAC,CAAC,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7E,mBAAmB,EAAE,CAAC,CAAC,qBAAqB;KAC7C,CAAC;AACJ,CAAC;AAED,MAAM,OAAO,gBAAgB;IACE;IAA7B,YAA6B,MAA2B;QAA3B,WAAM,GAAN,MAAM,CAAqB;IAAG,CAAC;IAE5D,KAAK,CAAC,KAAK,CAAC,GAA0B;QACpC,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;YAChC,OAAO,EAAE,GAAG,CAAC,OAAO;YACpB,UAAU,EAAE,GAAG,CAAC,SAAS;YACzB,wBAAwB,EAAE,GAAG,CAAC,qBAAqB;SACpD,CAAC,CAAC;QACH,OAAO;YACL,OAAO,EAAE,CAAC,CAAC,OAAO;YAClB,SAAS,EAAE,CAAC,CAAC,UAAU;YACvB,qBAAqB,EAAE,CAAC,CAAC,wBAAwB;YACjD,aAAa,EAAE,CAAC,CAAC,eAAe;YAChC,aAAa,EAAE,CAAC,CAAC,cAAc;SAChC,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,oBAAoB;QACxB,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,oBAAoB,EAAE,CAAC;QACnD,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,CAAwB,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAChD,OAAO,EAAE,CAAC,CAAC,OAAO;YAClB,eAAe,EAAE,CAAC,CAAC,iBAAiB;YACpC,cAAc,EAAE,CAAC,CAAC,gBAAgB;YAClC,6BAA6B,EAAE,CAAC,CAAC,gCAAgC;YACjE,GAAG,CAAC,CAAC,CAAC,oBAAoB,KAAK,SAAS;gBACtC,CAAC,CAAC,EAAE,kBAAkB,EAAE,CAAC,CAAC,oBAAoB,EAAE;gBAChD,CAAC,CAAC,EAAE,CAAC;SACR,CAAC,CAAC,CAAC;IACN,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,GAA4B;QACxC,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;YAClC,YAAY,EAAE,GAAG,CAAC,UAAU;YAC5B,OAAO,EAAE,GAAG,CAAC,OAAO;YACpB,UAAU,EAAE,GAAG,CAAC,SAAS;YACzB,wBAAwB,EAAE,GAAG,CAAC,qBAAqB;YACnD,eAAe,EAAE,GAAG,CAAC,aAAa;YAClC,YAAY,EAAE,GAAG,CAAC,UAAU;YAC5B,YAAY,EAAE,GAAG,CAAC,UAAU;YAC5B,cAAc,EAAE,GAAG,CAAC,YAAY;YAChC,GAAG,CAAC,GAAG,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,GAAG,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACjF,SAAS,EAAE,GAAG,CAAC,QAAQ;SACxB,CAAC,CAAC;QACH,OAAO;YACL,gBAAgB,EAAE,CAAC,CAAC,kBAAkB;YACtC,UAAU,EAAE,CAAC,CAAC,YAAY;YAC1B,OAAO,EAAE,CAAC,CAAC,OAAO;YAClB,SAAS,EAAE,CAAC,CAAC,UAAU;YACvB,QAAQ,EAAE,CAAC,CAAC,SAAS;YACrB,WAAW,EAAE,CAAC,CAAC,aAAa;YAC5B,2BAA2B,EAAE,CAAC,CAAC,8BAA8B;YAC7D,aAAa,EAAE,CAAC,CAAC,eAAe;YAChC,cAAc,EAAE,CAAC,CAAC,gBAAgB;SACnC,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,YAAY;QAChB,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;QAC3C,OAAO,WAAW,CAAC,CAAC,CAAC,CAAC;IACxB,CAAC;IAED,OAAO,CAAC,GAA4B;QAClC,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;YACzB,OAAO,EAAE,GAAG,CAAC,OAAO;YACpB,UAAU,EAAE,GAAG,CAAC,SAAS;YACzB,QAAQ,EAAE,GAAG,CAAC,OAAO;YACrB,UAAU,EAAE,GAAG,CAAC,SAAS;YACzB,eAAe,EAAE,GAAG,CAAC,aAAa;SACnC,CAAC,CAAC;IACL,CAAC;IAED,kBAAkB,CAChB,OAAe,EACf,kBAA0B;QAE1B,OAAO,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC;IACrE,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,MAAe;QACjC,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;QAC5C,OAAO,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IACtC,CAAC;CACF"}
@@ -0,0 +1,92 @@
1
+ /**
2
+ * BridgeFeePort — destination-native bridge fees paid in TNZO.
3
+ *
4
+ * Wallet usage:
5
+ * 1. Quote: the wallet asks the node for the TNZO-denominated cost of a
6
+ * destination-native bridge fee, then surfaces it to the signer.
7
+ * 2. Sponsor: after the signer approves, the wallet calls `sponsor()`
8
+ * which debits TNZO from the user's account and credits the
9
+ * per-adapter sponsorship pool.
10
+ * 3. Analytics: the wallet UI shows the user their own per-key
11
+ * Compute Unit consumption + call counters.
12
+ *
13
+ * Admin paths (`setRate`, `setRefillThreshold`) are operator-only and
14
+ * gated by `X-Tenzro-Admin-Token`; the wallet exposes them only when
15
+ * the host is running in operator mode.
16
+ */
17
+ export interface QuoteBridgeFeeRequest {
18
+ readonly adapter: string;
19
+ readonly destChain: string;
20
+ readonly nativeFeeSmallestUnit: string;
21
+ }
22
+ export interface BridgeFeeQuote {
23
+ readonly adapter: string;
24
+ readonly destChain: string;
25
+ readonly nativeFeeSmallestUnit: string;
26
+ readonly tnzoAmountWei: string;
27
+ readonly oracleBacking: string;
28
+ readonly quoteIdHex?: string;
29
+ readonly issuedAtMs?: number;
30
+ readonly validUntilMs?: number;
31
+ readonly rateQ18Hex?: string;
32
+ }
33
+ export interface BridgeSponsorshipPool {
34
+ readonly adapter: string;
35
+ readonly vaultAddressHex: string;
36
+ readonly tnzoBalanceWei: string;
37
+ readonly nativeOutstandingSmallestUnit: string;
38
+ readonly refillThresholdBps?: number;
39
+ }
40
+ export interface SetBridgeFeeRateRequest {
41
+ readonly adapter: string;
42
+ readonly destChain: string;
43
+ readonly rateQ18: string;
44
+ readonly markupBps: number;
45
+ readonly validWindowMs: number;
46
+ }
47
+ export interface SponsorBridgeFeeRequest {
48
+ readonly quoteIdHex: string;
49
+ readonly adapter: string;
50
+ readonly destChain: string;
51
+ readonly nativeFeeSmallestUnit: string;
52
+ readonly tnzoAmountWei: string;
53
+ readonly rateQ18Hex: string;
54
+ readonly issuedAtMs: number;
55
+ readonly validUntilMs: number;
56
+ readonly oracleBacking?: string;
57
+ readonly payerDid: string;
58
+ }
59
+ export interface BridgeSponsorshipReceipt {
60
+ readonly sponsorshipIdHex: string;
61
+ readonly quoteIdHex: string;
62
+ readonly adapter: string;
63
+ readonly destChain: string;
64
+ readonly payerDid: string;
65
+ readonly tnzoPaidWei: string;
66
+ readonly nativeCommittedSmallestUnit: string;
67
+ readonly sponsoredAtMs: number;
68
+ readonly poolAddressHex: string;
69
+ }
70
+ export interface BridgeKeyAnalytics {
71
+ readonly keyId: string;
72
+ readonly callsTotal: number;
73
+ readonly errorsTotal: number;
74
+ readonly callsByMethod: Readonly<Record<string, number>>;
75
+ readonly errorsByMethod: Readonly<Record<string, number>>;
76
+ readonly cuConsumedTotal: number;
77
+ readonly firstSeenAt?: number;
78
+ readonly lastCalledAt?: number;
79
+ readonly rateLimitRejections: number;
80
+ }
81
+ export interface BridgeFeePort {
82
+ quote(req: QuoteBridgeFeeRequest): Promise<BridgeFeeQuote>;
83
+ listSponsorshipPools(): Promise<readonly BridgeSponsorshipPool[]>;
84
+ sponsor(req: SponsorBridgeFeeRequest): Promise<BridgeSponsorshipReceipt>;
85
+ /** Subject self-read of the caller's own analytics. */
86
+ getAnalytics(): Promise<BridgeKeyAnalytics>;
87
+ /** Admin-only paths surface only when the host is in operator mode. */
88
+ setRate(req: SetBridgeFeeRateRequest): Promise<unknown>;
89
+ setRefillThreshold(adapter: string, refillThresholdBps: number): Promise<unknown>;
90
+ listAnalytics(keyId?: string): Promise<readonly BridgeKeyAnalytics[]>;
91
+ }
92
+ //# sourceMappingURL=bridge-fee.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bridge-fee.d.ts","sourceRoot":"","sources":["../../../src/ports/bridge-fee/bridge-fee.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * BridgeFeePort — destination-native bridge fees paid in TNZO.
3
+ *
4
+ * Wallet usage:
5
+ * 1. Quote: the wallet asks the node for the TNZO-denominated cost of a
6
+ * destination-native bridge fee, then surfaces it to the signer.
7
+ * 2. Sponsor: after the signer approves, the wallet calls `sponsor()`
8
+ * which debits TNZO from the user's account and credits the
9
+ * per-adapter sponsorship pool.
10
+ * 3. Analytics: the wallet UI shows the user their own per-key
11
+ * Compute Unit consumption + call counters.
12
+ *
13
+ * Admin paths (`setRate`, `setRefillThreshold`) are operator-only and
14
+ * gated by `X-Tenzro-Admin-Token`; the wallet exposes them only when
15
+ * the host is running in operator mode.
16
+ */
17
+ export {};
18
+ //# sourceMappingURL=bridge-fee.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bridge-fee.js","sourceRoot":"","sources":["../../../src/ports/bridge-fee/bridge-fee.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG"}
@@ -0,0 +1,4 @@
1
+ export type { BridgeFeePort, BridgeFeeQuote, BridgeKeyAnalytics, BridgeSponsorshipPool, BridgeSponsorshipReceipt, QuoteBridgeFeeRequest, SetBridgeFeeRateRequest, SponsorBridgeFeeRequest, } from './bridge-fee.js';
2
+ export { BridgeFeeAdapter } from './adapter.js';
3
+ export type { BridgeFeeClientLike } from './adapter.js';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ports/bridge-fee/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,aAAa,EACb,cAAc,EACd,kBAAkB,EAClB,qBAAqB,EACrB,wBAAwB,EACxB,qBAAqB,EACrB,uBAAuB,EACvB,uBAAuB,GACxB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,YAAY,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { BridgeFeeAdapter } from "./adapter.js";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ports/bridge-fee/index.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC"}
@@ -31,6 +31,23 @@ export interface ListOrdersOpts {
31
31
  readonly destChain?: number;
32
32
  readonly limit?: number;
33
33
  }
34
+ /**
35
+ * BridgeFeeHint — optional addition to TenzroOrderData that lets a
36
+ * single user-signed order be filled by any of the 6 supported
37
+ * bridges. The TNZO ceiling bounds the solver's destination-native
38
+ * fee commitment. The wallet UI surfaces this so the signer can
39
+ * see what TNZO ceiling they're authorizing.
40
+ */
41
+ export interface BridgeFeeHint {
42
+ /** Reference quote id from the BridgeFeeOracle (auditable). */
43
+ readonly quoteIdHex: string;
44
+ /** TNZO ceiling the swapper authorized for the destination fee. */
45
+ readonly tnzoAmountWei: string;
46
+ /** Wall-clock expiry — solvers MUST NOT execute fills after expiry. */
47
+ readonly validUntilMs: number;
48
+ /** Adapter the swapper had in mind at quote time (advisory). */
49
+ readonly preferredAdapter: string;
50
+ }
34
51
  export interface Erc7683Port {
35
52
  getOrder(orderId: string): Promise<unknown>;
36
53
  listOrders(opts?: ListOrdersOpts): Promise<unknown>;
@@ -1 +1 @@
1
- {"version":3,"file":"erc7683.d.ts","sourceRoot":"","sources":["../../../src/ports/erc7683/erc7683.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,WAAW,GAAG,UAAU,GAAG,UAAU,GAAG,WAAW,GAAG,MAAM,CAAC;IAClF,QAAQ,CAAC,OAAO,EAAE,SAAS,aAAa,EAAE,CAAC;CAC5C;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC5C,UAAU,CAAC,IAAI,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACpD,UAAU,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACtD,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAClE,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;CAC/B"}
1
+ {"version":3,"file":"erc7683.d.ts","sourceRoot":"","sources":["../../../src/ports/erc7683/erc7683.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,WAAW,GAAG,UAAU,GAAG,UAAU,GAAG,WAAW,GAAG,MAAM,CAAC;IAClF,QAAQ,CAAC,OAAO,EAAE,SAAS,aAAa,EAAE,CAAC;CAC5C;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,aAAa;IAC5B,+DAA+D;IAC/D,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,mEAAmE;IACnE,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,uEAAuE;IACvE,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,gEAAgE;IAChE,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;CACnC;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC5C,UAAU,CAAC,IAAI,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACpD,UAAU,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACtD,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAClE,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;CAC/B"}
@@ -1,4 +1,4 @@
1
- export type { Erc7683Port, Erc7683Output, RecordFillRequest, ListOrdersOpts, } from './erc7683.js';
1
+ export type { Erc7683Port, Erc7683Output, RecordFillRequest, ListOrdersOpts, BridgeFeeHint, } from './erc7683.js';
2
2
  export { Erc7683Adapter } from './adapter.js';
3
3
  export type { Erc7683ClientLike } from './adapter.js';
4
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ports/erc7683/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,WAAW,EACX,aAAa,EACb,iBAAiB,EACjB,cAAc,GACf,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,YAAY,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ports/erc7683/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,WAAW,EACX,aAAa,EACb,iBAAiB,EACjB,cAAc,EACd,aAAa,GACd,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,YAAY,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ports/erc7683/index.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ports/erc7683/index.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC"}
@@ -26,4 +26,11 @@ export * from './erc7683/index.js';
26
26
  export * from './caip/index.js';
27
27
  export * from './babylon/index.js';
28
28
  export * from './training/index.js';
29
+ export * from './bridge-fee/index.js';
30
+ export type { UrwaPort, UrwaKillSwitchState, UrwaFrozenAmount, SetFrozenTokensRequest, UrwaFrozenRecord, UrwaKillSwitchTriggerRequest, UrwaKillSwitchTriggered, UrwaKillSwitchCleared, UrwaClientLike, } from './urwa/index.js';
31
+ export { UrwaAdapter } from './urwa/index.js';
32
+ export * from './ivms101/index.js';
33
+ export * from './attested-clock/index.js';
34
+ export * from './signed-agent-card/index.js';
35
+ export * from './wormhole-ntt/index.js';
29
36
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ports/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,aAAa,EACb,cAAc,EACd,cAAc,GACf,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,gBAAgB,EAChB,uBAAuB,GACxB,MAAM,kCAAkC,CAAC;AAC1C,YAAY,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACzE,YAAY,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,uCAAuC,CAAC;AAC9E,YAAY,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAC;AAChF,YAAY,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EACL,mBAAmB,EACnB,WAAW,EACX,eAAe,EACf,YAAY,GACb,MAAM,eAAe,CAAC;AAGvB,YAAY,EACV,mBAAmB,EACnB,wBAAwB,EACxB,yBAAyB,EACzB,wBAAwB,EACxB,gBAAgB,EAChB,gBAAgB,EAChB,qBAAqB,EACrB,oBAAoB,EACpB,mBAAmB,EACnB,uBAAuB,EACvB,wBAAwB,EACxB,qBAAqB,EACrB,oBAAoB,EACpB,yBAAyB,EACzB,0BAA0B,EAC1B,wBAAwB,EACxB,0BAA0B,EAC1B,mBAAmB,GACpB,MAAM,8BAA8B,CAAC;AACtC,YAAY,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AAChG,YAAY,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAC;AAC3E,YAAY,EAAE,sBAAsB,EAAE,MAAM,yCAAyC,CAAC;AACtF,OAAO,EACL,uBAAuB,EACvB,kBAAkB,EAClB,sBAAsB,GACvB,MAAM,kBAAkB,CAAC;AAG1B,cAAc,kBAAkB,CAAC;AAGjC,cAAc,mBAAmB,CAAC;AAKlC,cAAc,oBAAoB,CAAC;AAKnC,cAAc,qBAAqB,CAAC;AAKpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AAKvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AAKnC,cAAc,iBAAiB,CAAC;AAMhC,cAAc,oBAAoB,CAAC;AAOnC,cAAc,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ports/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,aAAa,EACb,cAAc,EACd,cAAc,GACf,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,gBAAgB,EAChB,uBAAuB,GACxB,MAAM,kCAAkC,CAAC;AAC1C,YAAY,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACzE,YAAY,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,uCAAuC,CAAC;AAC9E,YAAY,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAC;AAChF,YAAY,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EACL,mBAAmB,EACnB,WAAW,EACX,eAAe,EACf,YAAY,GACb,MAAM,eAAe,CAAC;AAGvB,YAAY,EACV,mBAAmB,EACnB,wBAAwB,EACxB,yBAAyB,EACzB,wBAAwB,EACxB,gBAAgB,EAChB,gBAAgB,EAChB,qBAAqB,EACrB,oBAAoB,EACpB,mBAAmB,EACnB,uBAAuB,EACvB,wBAAwB,EACxB,qBAAqB,EACrB,oBAAoB,EACpB,yBAAyB,EACzB,0BAA0B,EAC1B,wBAAwB,EACxB,0BAA0B,EAC1B,mBAAmB,GACpB,MAAM,8BAA8B,CAAC;AACtC,YAAY,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AAChG,YAAY,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAC;AAC3E,YAAY,EAAE,sBAAsB,EAAE,MAAM,yCAAyC,CAAC;AACtF,OAAO,EACL,uBAAuB,EACvB,kBAAkB,EAClB,sBAAsB,GACvB,MAAM,kBAAkB,CAAC;AAG1B,cAAc,kBAAkB,CAAC;AAGjC,cAAc,mBAAmB,CAAC;AAKlC,cAAc,oBAAoB,CAAC;AAKnC,cAAc,qBAAqB,CAAC;AAKpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AAKvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AAKnC,cAAc,iBAAiB,CAAC;AAMhC,cAAc,oBAAoB,CAAC;AAOnC,cAAc,qBAAqB,CAAC;AAMpC,cAAc,uBAAuB,CAAC;AAOtC,YAAY,EACV,QAAQ,EACR,mBAAmB,EACnB,gBAAgB,EAChB,sBAAsB,EACtB,gBAAgB,EAChB,4BAA4B,EAC5B,uBAAuB,EACvB,qBAAqB,EACrB,cAAc,GACf,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAK9C,cAAc,oBAAoB,CAAC;AAKnC,cAAc,2BAA2B,CAAC;AAI1C,cAAc,8BAA8B,CAAC;AAI7C,cAAc,yBAAyB,CAAC"}
@@ -43,4 +43,24 @@ export * from "./babylon/index.js";
43
43
  // agents, or `(read, write)` for full custodial enrollment +
44
44
  // gradient submission flows.
45
45
  export * from "./training/index.js";
46
+ // ── Cross-chain bridge fee in TNZO + Chainlink-backed oracle ──
47
+ // Quote / sponsor / per-tenant analytics for the bridge fee surface.
48
+ // Operator-only paths (set-rate, set-refill, list-analytics) are
49
+ // gated by admin token at the node layer.
50
+ export * from "./bridge-fee/index.js";
51
+ export { UrwaAdapter } from "./urwa/index.js";
52
+ // ── FATF Travel Rule (IVMS101 v1.1.0) canonical-hash helper ──
53
+ // Compute the canonical hash of an IVMS101 payload so the wallet
54
+ // can bind it to a cross-border transfer envelope before signing.
55
+ export * from "./ivms101/index.js";
56
+ // ── TEE-attested timestamp envelope ──
57
+ // For saga step deadlines, obligation expiries, and AP2 mandate
58
+ // validity windows.
59
+ export * from "./attested-clock/index.js";
60
+ // ── A2A v1.0 Signed Agent Card canonical-hash helper ──
61
+ // Issuer signs the hash; verifier recomputes + checks.
62
+ export * from "./signed-agent-card/index.js";
63
+ // ── Wormhole NTT (Native Token Transfers) registry ──
64
+ // Chain catalog + multi-transceiver kinds.
65
+ export * from "./wormhole-ntt/index.js";
46
66
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ports/index.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,gBAAgB,EAChB,uBAAuB,GACxB,MAAM,kCAAkC,CAAC;AAG1C,OAAO,EAAE,qBAAqB,EAAE,MAAM,uCAAuC,CAAC;AAG9E,OAAO,EACL,mBAAmB,EACnB,WAAW,EACX,eAAe,EACf,YAAY,GACb,MAAM,eAAe,CAAC;AAyBvB,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAC;AAE3E,OAAO,EACL,uBAAuB,EACvB,kBAAkB,EAClB,sBAAsB,GACvB,MAAM,kBAAkB,CAAC;AAE1B,8EAA8E;AAC9E,cAAc,kBAAkB,CAAC;AAEjC,qEAAqE;AACrE,cAAc,mBAAmB,CAAC;AAElC,yCAAyC;AACzC,uEAAuE;AACvE,yCAAyC;AACzC,cAAc,oBAAoB,CAAC;AAEnC,8CAA8C;AAC9C,iEAAiE;AACjE,wCAAwC;AACxC,cAAc,qBAAqB,CAAC;AAEpC,uCAAuC;AACvC,kEAAkE;AAClE,mEAAmE;AACnE,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AAEvC,oDAAoD;AACpD,mEAAmE;AACnE,mEAAmE;AACnE,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AAEnC,iDAAiD;AACjD,uEAAuE;AACvE,kCAAkC;AAClC,cAAc,iBAAiB,CAAC;AAEhC,gDAAgD;AAChD,oEAAoE;AACpE,qEAAqE;AACrE,WAAW;AACX,cAAc,oBAAoB,CAAC;AAEnC,8CAA8C;AAC9C,mEAAmE;AACnE,oEAAoE;AACpE,6DAA6D;AAC7D,6BAA6B;AAC7B,cAAc,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ports/index.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,gBAAgB,EAChB,uBAAuB,GACxB,MAAM,kCAAkC,CAAC;AAG1C,OAAO,EAAE,qBAAqB,EAAE,MAAM,uCAAuC,CAAC;AAG9E,OAAO,EACL,mBAAmB,EACnB,WAAW,EACX,eAAe,EACf,YAAY,GACb,MAAM,eAAe,CAAC;AAyBvB,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAC;AAE3E,OAAO,EACL,uBAAuB,EACvB,kBAAkB,EAClB,sBAAsB,GACvB,MAAM,kBAAkB,CAAC;AAE1B,8EAA8E;AAC9E,cAAc,kBAAkB,CAAC;AAEjC,qEAAqE;AACrE,cAAc,mBAAmB,CAAC;AAElC,yCAAyC;AACzC,uEAAuE;AACvE,yCAAyC;AACzC,cAAc,oBAAoB,CAAC;AAEnC,8CAA8C;AAC9C,iEAAiE;AACjE,wCAAwC;AACxC,cAAc,qBAAqB,CAAC;AAEpC,uCAAuC;AACvC,kEAAkE;AAClE,mEAAmE;AACnE,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AAEvC,oDAAoD;AACpD,mEAAmE;AACnE,mEAAmE;AACnE,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AAEnC,iDAAiD;AACjD,uEAAuE;AACvE,kCAAkC;AAClC,cAAc,iBAAiB,CAAC;AAEhC,gDAAgD;AAChD,oEAAoE;AACpE,qEAAqE;AACrE,WAAW;AACX,cAAc,oBAAoB,CAAC;AAEnC,8CAA8C;AAC9C,mEAAmE;AACnE,oEAAoE;AACpE,6DAA6D;AAC7D,6BAA6B;AAC7B,cAAc,qBAAqB,CAAC;AAEpC,iEAAiE;AACjE,qEAAqE;AACrE,iEAAiE;AACjE,0CAA0C;AAC1C,cAAc,uBAAuB,CAAC;AAkBtC,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C,gEAAgE;AAChE,iEAAiE;AACjE,kEAAkE;AAClE,cAAc,oBAAoB,CAAC;AAEnC,wCAAwC;AACxC,gEAAgE;AAChE,oBAAoB;AACpB,cAAc,2BAA2B,CAAC;AAE1C,yDAAyD;AACzD,uDAAuD;AACvD,cAAc,8BAA8B,CAAC;AAE7C,uDAAuD;AACvD,2CAA2C;AAC3C,cAAc,yBAAyB,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Ivms101Adapter — `Ivms101Port` backed by `tenzro-sdk` `Ivms101Client`.
3
+ */
4
+ import type { Ivms101Client } from 'tenzro-sdk';
5
+ import type { Ivms101HashRequest, Ivms101HashResult, Ivms101Port } from './ivms101.js';
6
+ export type Ivms101ClientLike = Pick<Ivms101Client, 'canonicalHash'>;
7
+ export declare class Ivms101Adapter implements Ivms101Port {
8
+ private readonly client;
9
+ constructor(client: Ivms101ClientLike);
10
+ canonicalHash(req: Ivms101HashRequest): Promise<Ivms101HashResult>;
11
+ }
12
+ //# sourceMappingURL=adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../src/ports/ivms101/adapter.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,KAAK,EACV,kBAAkB,EAClB,iBAAiB,EACjB,WAAW,EACZ,MAAM,cAAc,CAAC;AAEtB,MAAM,MAAM,iBAAiB,GAAG,IAAI,CAAC,aAAa,EAAE,eAAe,CAAC,CAAC;AAErE,qBAAa,cAAe,YAAW,WAAW;IACpC,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,iBAAiB;IAEhD,aAAa,CAAC,GAAG,EAAE,kBAAkB,GAAG,OAAO,CAAC,iBAAiB,CAAC;CAMzE"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Ivms101Adapter — `Ivms101Port` backed by `tenzro-sdk` `Ivms101Client`.
3
+ */
4
+ export class Ivms101Adapter {
5
+ client;
6
+ constructor(client) {
7
+ this.client = client;
8
+ }
9
+ async canonicalHash(req) {
10
+ const r = await this.client.canonicalHash(req.payload);
11
+ return {
12
+ canonicalHashHex: r.envelope_hash_hex,
13
+ };
14
+ }
15
+ }
16
+ //# sourceMappingURL=adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../../src/ports/ivms101/adapter.ts"],"names":[],"mappings":"AAAA;;GAEG;AAWH,MAAM,OAAO,cAAc;IACI;IAA7B,YAA6B,MAAyB;QAAzB,WAAM,GAAN,MAAM,CAAmB;IAAG,CAAC;IAE1D,KAAK,CAAC,aAAa,CAAC,GAAuB;QACzC,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACvD,OAAO;YACL,gBAAgB,EAAE,CAAC,CAAC,iBAAiB;SACtC,CAAC;IACJ,CAAC;CACF"}
@@ -0,0 +1,4 @@
1
+ export type { Ivms101Port, Ivms101HashRequest, Ivms101HashResult } from './ivms101.js';
2
+ export { Ivms101Adapter } from './adapter.js';
3
+ export type { Ivms101ClientLike } from './adapter.js';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ports/ivms101/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,WAAW,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACvF,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,YAAY,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { Ivms101Adapter } from "./adapter.js";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ports/ivms101/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Ivms101Port — FATF Travel Rule IVMS101 v1.1.0 canonical envelope.
3
+ *
4
+ * Wallet usage: cross-border transfers that fall under the FATF
5
+ * Travel Rule (typically >$1000 equivalent crossing VASP boundaries)
6
+ * require an IVMS101 KYC payload attached to the transfer. The
7
+ * wallet computes the canonical hash of the payload, includes it in
8
+ * the transfer envelope, and surfaces the hash to the user before
9
+ * signing.
10
+ */
11
+ export interface Ivms101HashRequest {
12
+ /** Canonical IVMS101 v1.1.0 JSON payload. */
13
+ readonly payload: Record<string, unknown>;
14
+ }
15
+ export interface Ivms101HashResult {
16
+ readonly canonicalHashHex: string;
17
+ }
18
+ export interface Ivms101Port {
19
+ canonicalHash(req: Ivms101HashRequest): Promise<Ivms101HashResult>;
20
+ }
21
+ //# sourceMappingURL=ivms101.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ivms101.d.ts","sourceRoot":"","sources":["../../../src/ports/ivms101/ivms101.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,MAAM,WAAW,kBAAkB;IACjC,6CAA6C;IAC7C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC3C;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;CACnC;AAED,MAAM,WAAW,WAAW;IAC1B,aAAa,CAAC,GAAG,EAAE,kBAAkB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;CACpE"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Ivms101Port — FATF Travel Rule IVMS101 v1.1.0 canonical envelope.
3
+ *
4
+ * Wallet usage: cross-border transfers that fall under the FATF
5
+ * Travel Rule (typically >$1000 equivalent crossing VASP boundaries)
6
+ * require an IVMS101 KYC payload attached to the transfer. The
7
+ * wallet computes the canonical hash of the payload, includes it in
8
+ * the transfer envelope, and surfaces the hash to the user before
9
+ * signing.
10
+ */
11
+ export {};
12
+ //# sourceMappingURL=ivms101.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ivms101.js","sourceRoot":"","sources":["../../../src/ports/ivms101/ivms101.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * SignedAgentCardAdapter — `SignedAgentCardPort` backed by `tenzro-sdk`
3
+ * `SignedAgentCardClient`.
4
+ */
5
+ import type { SignedAgentCardClient } from 'tenzro-sdk';
6
+ import type { AgentCard, CanonicalHashResult, SignedAgentCardPort } from './signed-agent-card.js';
7
+ export type SignedAgentCardClientLike = Pick<SignedAgentCardClient, 'canonicalHash'>;
8
+ export declare class SignedAgentCardAdapter implements SignedAgentCardPort {
9
+ private readonly client;
10
+ constructor(client: SignedAgentCardClientLike);
11
+ canonicalHash(card: AgentCard): Promise<CanonicalHashResult>;
12
+ }
13
+ //# sourceMappingURL=adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../src/ports/signed-agent-card/adapter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AACxD,OAAO,KAAK,EACV,SAAS,EACT,mBAAmB,EACnB,mBAAmB,EACpB,MAAM,wBAAwB,CAAC;AAEhC,MAAM,MAAM,yBAAyB,GAAG,IAAI,CAC1C,qBAAqB,EACrB,eAAe,CAChB,CAAC;AAEF,qBAAa,sBAAuB,YAAW,mBAAmB;IACpD,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,yBAAyB;IAExD,aAAa,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,mBAAmB,CAAC;CAUnE"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * SignedAgentCardAdapter — `SignedAgentCardPort` backed by `tenzro-sdk`
3
+ * `SignedAgentCardClient`.
4
+ */
5
+ export class SignedAgentCardAdapter {
6
+ client;
7
+ constructor(client) {
8
+ this.client = client;
9
+ }
10
+ async canonicalHash(card) {
11
+ const r = await this.client.canonicalHash(card);
12
+ return {
13
+ canonicalHashHex: r.canonical_hash_hex,
14
+ agentCardName: r.agent_card_name,
15
+ agentCardUrl: r.agent_card_url,
16
+ protocolVersion: r.protocol_version,
17
+ skillsCount: r.skills_count,
18
+ };
19
+ }
20
+ }
21
+ //# sourceMappingURL=adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../../src/ports/signed-agent-card/adapter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAcH,MAAM,OAAO,sBAAsB;IACJ;IAA7B,YAA6B,MAAiC;QAAjC,WAAM,GAAN,MAAM,CAA2B;IAAG,CAAC;IAElE,KAAK,CAAC,aAAa,CAAC,IAAe;QACjC,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QAChD,OAAO;YACL,gBAAgB,EAAE,CAAC,CAAC,kBAAkB;YACtC,aAAa,EAAE,CAAC,CAAC,eAAe;YAChC,YAAY,EAAE,CAAC,CAAC,cAAc;YAC9B,eAAe,EAAE,CAAC,CAAC,gBAAgB;YACnC,WAAW,EAAE,CAAC,CAAC,YAAY;SAC5B,CAAC;IACJ,CAAC;CACF"}
@@ -0,0 +1,4 @@
1
+ export type { SignedAgentCardPort, AgentCard, CanonicalHashResult, } from './signed-agent-card.js';
2
+ export { SignedAgentCardAdapter } from './adapter.js';
3
+ export type { SignedAgentCardClientLike } from './adapter.js';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ports/signed-agent-card/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,mBAAmB,EACnB,SAAS,EACT,mBAAmB,GACpB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AACtD,YAAY,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { SignedAgentCardAdapter } from "./adapter.js";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ports/signed-agent-card/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * SignedAgentCardPort — A2A v1.0 Signed Agent Card.
3
+ *
4
+ * Wallet usage: when an agent publishes its Agent Card under a domain
5
+ * the agent owns, it signs the canonical hash of the card with its
6
+ * JWS key. Relying parties recompute the hash and verify the signature
7
+ * before trusting the card's claims (skills, endpoints, identity).
8
+ */
9
+ export interface AgentCard {
10
+ readonly name: string;
11
+ readonly description?: string;
12
+ readonly version?: string;
13
+ readonly url?: string;
14
+ readonly skills?: readonly unknown[];
15
+ readonly [key: string]: unknown;
16
+ }
17
+ export interface CanonicalHashResult {
18
+ readonly canonicalHashHex: string;
19
+ readonly agentCardName: string;
20
+ readonly agentCardUrl: string;
21
+ readonly protocolVersion: string;
22
+ readonly skillsCount: number;
23
+ }
24
+ export interface SignedAgentCardPort {
25
+ canonicalHash(card: AgentCard): Promise<CanonicalHashResult>;
26
+ }
27
+ //# sourceMappingURL=signed-agent-card.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signed-agent-card.d.ts","sourceRoot":"","sources":["../../../src/ports/signed-agent-card/signed-agent-card.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,OAAO,EAAE,CAAC;IACrC,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACjC;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,mBAAmB;IAClC,aAAa,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;CAC9D"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * SignedAgentCardPort — A2A v1.0 Signed Agent Card.
3
+ *
4
+ * Wallet usage: when an agent publishes its Agent Card under a domain
5
+ * the agent owns, it signs the canonical hash of the card with its
6
+ * JWS key. Relying parties recompute the hash and verify the signature
7
+ * before trusting the card's claims (skills, endpoints, identity).
8
+ */
9
+ export {};
10
+ //# sourceMappingURL=signed-agent-card.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signed-agent-card.js","sourceRoot":"","sources":["../../../src/ports/signed-agent-card/signed-agent-card.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * UrwaAdapter — `UrwaPort` backed by `tenzro-sdk` `UrwaClient`.
3
+ */
4
+ import type { UrwaClient } from 'tenzro-sdk';
5
+ import type { SetFrozenTokensRequest, UrwaFrozenAmount, UrwaFrozenRecord, UrwaKillSwitchCleared, UrwaKillSwitchState, UrwaKillSwitchTriggered, UrwaKillSwitchTriggerRequest, UrwaPort } from './urwa.js';
6
+ export type UrwaClientLike = Pick<UrwaClient, 'isKillSwitched' | 'getFrozenTokens' | 'setFrozenTokens' | 'triggerKillSwitch' | 'clearKillSwitch'>;
7
+ export declare class UrwaAdapter implements UrwaPort {
8
+ private readonly client;
9
+ constructor(client: UrwaClientLike);
10
+ isKillSwitched(tokenIdHex: string): Promise<UrwaKillSwitchState>;
11
+ getFrozenTokens(tokenIdHex: string, accountHex: string): Promise<UrwaFrozenAmount>;
12
+ setFrozenTokens(req: SetFrozenTokensRequest): Promise<UrwaFrozenRecord>;
13
+ triggerKillSwitch(req: UrwaKillSwitchTriggerRequest): Promise<UrwaKillSwitchTriggered>;
14
+ clearKillSwitch(tokenIdHex: string): Promise<UrwaKillSwitchCleared>;
15
+ }
16
+ //# sourceMappingURL=adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../src/ports/urwa/adapter.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,KAAK,EACV,sBAAsB,EACtB,gBAAgB,EAChB,gBAAgB,EAChB,qBAAqB,EACrB,mBAAmB,EACnB,uBAAuB,EACvB,4BAA4B,EAC5B,QAAQ,EACT,MAAM,WAAW,CAAC;AAEnB,MAAM,MAAM,cAAc,GAAG,IAAI,CAC/B,UAAU,EACR,gBAAgB,GAChB,iBAAiB,GACjB,iBAAiB,GACjB,mBAAmB,GACnB,iBAAiB,CACpB,CAAC;AAEF,qBAAa,WAAY,YAAW,QAAQ;IAC9B,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,cAAc;IAE7C,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAUhE,eAAe,CACnB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,gBAAgB,CAAC;IAStB,eAAe,CAAC,GAAG,EAAE,sBAAsB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAgBvE,iBAAiB,CACrB,GAAG,EAAE,4BAA4B,GAChC,OAAO,CAAC,uBAAuB,CAAC;IAe7B,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC;CAO1E"}
@@ -0,0 +1,63 @@
1
+ /**
2
+ * UrwaAdapter — `UrwaPort` backed by `tenzro-sdk` `UrwaClient`.
3
+ */
4
+ export class UrwaAdapter {
5
+ client;
6
+ constructor(client) {
7
+ this.client = client;
8
+ }
9
+ async isKillSwitched(tokenIdHex) {
10
+ const r = await this.client.isKillSwitched(tokenIdHex);
11
+ return {
12
+ tokenIdHex: r.token_id_hex,
13
+ active: r.active,
14
+ selectors: r.selectors,
15
+ precompileAddresses: r.precompile_addresses,
16
+ };
17
+ }
18
+ async getFrozenTokens(tokenIdHex, accountHex) {
19
+ const r = await this.client.getFrozenTokens(tokenIdHex, accountHex);
20
+ return {
21
+ tokenIdHex: r.token_id_hex,
22
+ accountHex: r.account_hex,
23
+ frozenAmount: r.frozen_amount,
24
+ };
25
+ }
26
+ async setFrozenTokens(req) {
27
+ const r = await this.client.setFrozenTokens({
28
+ token_id_hex: req.tokenIdHex,
29
+ account_hex: req.accountHex,
30
+ amount: req.amount,
31
+ ...(req.reason !== undefined ? { reason: req.reason } : {}),
32
+ });
33
+ return {
34
+ tokenIdHex: r.token_id_hex,
35
+ accountHex: r.account_hex,
36
+ amount: r.amount,
37
+ reason: r.reason,
38
+ setAtMs: r.set_at_ms,
39
+ };
40
+ }
41
+ async triggerKillSwitch(req) {
42
+ const r = await this.client.triggerKillSwitch({
43
+ token_id_hex: req.tokenIdHex,
44
+ ...(req.triggeredByDid !== undefined ? { triggered_by_did: req.triggeredByDid } : {}),
45
+ ...(req.reason !== undefined ? { reason: req.reason } : {}),
46
+ });
47
+ return {
48
+ tokenIdHex: r.token_id_hex,
49
+ active: r.active,
50
+ triggeredByDid: r.triggered_by_did,
51
+ reason: r.reason,
52
+ triggeredAtMs: r.triggered_at_ms,
53
+ };
54
+ }
55
+ async clearKillSwitch(tokenIdHex) {
56
+ const r = await this.client.clearKillSwitch(tokenIdHex);
57
+ return {
58
+ tokenIdHex: r.token_id_hex,
59
+ active: r.active,
60
+ };
61
+ }
62
+ }
63
+ //# sourceMappingURL=adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../../src/ports/urwa/adapter.ts"],"names":[],"mappings":"AAAA;;GAEG;AAuBH,MAAM,OAAO,WAAW;IACO;IAA7B,YAA6B,MAAsB;QAAtB,WAAM,GAAN,MAAM,CAAgB;IAAG,CAAC;IAEvD,KAAK,CAAC,cAAc,CAAC,UAAkB;QACrC,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;QACvD,OAAO;YACL,UAAU,EAAE,CAAC,CAAC,YAAY;YAC1B,MAAM,EAAE,CAAC,CAAC,MAAM;YAChB,SAAS,EAAE,CAAC,CAAC,SAAS;YACtB,mBAAmB,EAAE,CAAC,CAAC,oBAAoB;SAC5C,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,eAAe,CACnB,UAAkB,EAClB,UAAkB;QAElB,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;QACpE,OAAO;YACL,UAAU,EAAE,CAAC,CAAC,YAAY;YAC1B,UAAU,EAAE,CAAC,CAAC,WAAW;YACzB,YAAY,EAAE,CAAC,CAAC,aAAa;SAC9B,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,GAA2B;QAC/C,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC;YAC1C,YAAY,EAAE,GAAG,CAAC,UAAU;YAC5B,WAAW,EAAE,GAAG,CAAC,UAAU;YAC3B,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,GAAG,CAAC,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC5D,CAAC,CAAC;QACH,OAAO;YACL,UAAU,EAAE,CAAC,CAAC,YAAY;YAC1B,UAAU,EAAE,CAAC,CAAC,WAAW;YACzB,MAAM,EAAE,CAAC,CAAC,MAAM;YAChB,MAAM,EAAE,CAAC,CAAC,MAAM;YAChB,OAAO,EAAE,CAAC,CAAC,SAAS;SACrB,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,iBAAiB,CACrB,GAAiC;QAEjC,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC;YAC5C,YAAY,EAAE,GAAG,CAAC,UAAU;YAC5B,GAAG,CAAC,GAAG,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,GAAG,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACrF,GAAG,CAAC,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC5D,CAAC,CAAC;QACH,OAAO;YACL,UAAU,EAAE,CAAC,CAAC,YAAY;YAC1B,MAAM,EAAE,CAAC,CAAC,MAAM;YAChB,cAAc,EAAE,CAAC,CAAC,gBAAgB;YAClC,MAAM,EAAE,CAAC,CAAC,MAAM;YAChB,aAAa,EAAE,CAAC,CAAC,eAAe;SACjC,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,UAAkB;QACtC,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;QACxD,OAAO;YACL,UAAU,EAAE,CAAC,CAAC,YAAY;YAC1B,MAAM,EAAE,CAAC,CAAC,MAAM;SACjB,CAAC;IACJ,CAAC;CACF"}
@@ -0,0 +1,4 @@
1
+ export type { UrwaPort, UrwaKillSwitchState, UrwaFrozenAmount, SetFrozenTokensRequest, UrwaFrozenRecord, UrwaKillSwitchTriggerRequest, UrwaKillSwitchTriggered, UrwaKillSwitchCleared, } from './urwa.js';
2
+ export { UrwaAdapter } from './adapter.js';
3
+ export type { UrwaClientLike } from './adapter.js';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ports/urwa/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,QAAQ,EACR,mBAAmB,EACnB,gBAAgB,EAChB,sBAAsB,EACtB,gBAAgB,EAChB,4BAA4B,EAC5B,uBAAuB,EACvB,qBAAqB,GACtB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,YAAY,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { UrwaAdapter } from "./adapter.js";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ports/urwa/index.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC"}
@@ -0,0 +1,57 @@
1
+ /**
2
+ * UrwaPort — ERC-7943 (uRWA) compliance surface for tokenized RWAs.
3
+ *
4
+ * Wallet usage: the wallet surfaces compliance status (kill-switch
5
+ * active, frozen-tokens record) to the user before they sign any
6
+ * transfer of an affected asset. Mutations are admin-only.
7
+ */
8
+ export interface UrwaKillSwitchState {
9
+ readonly tokenIdHex: string;
10
+ readonly active: boolean;
11
+ readonly selectors: Readonly<Record<string, string>>;
12
+ readonly precompileAddresses: Readonly<Record<string, string>>;
13
+ }
14
+ export interface UrwaFrozenAmount {
15
+ readonly tokenIdHex: string;
16
+ readonly accountHex: string;
17
+ readonly frozenAmount: string;
18
+ }
19
+ export interface SetFrozenTokensRequest {
20
+ readonly tokenIdHex: string;
21
+ readonly accountHex: string;
22
+ readonly amount: string;
23
+ readonly reason?: string;
24
+ }
25
+ export interface UrwaFrozenRecord {
26
+ readonly tokenIdHex: string;
27
+ readonly accountHex: string;
28
+ readonly amount: string;
29
+ readonly reason: string | null;
30
+ readonly setAtMs: number;
31
+ }
32
+ export interface UrwaKillSwitchTriggerRequest {
33
+ readonly tokenIdHex: string;
34
+ readonly triggeredByDid?: string;
35
+ readonly reason?: string;
36
+ }
37
+ export interface UrwaKillSwitchTriggered {
38
+ readonly tokenIdHex: string;
39
+ readonly active: boolean;
40
+ readonly triggeredByDid: string | null;
41
+ readonly reason: string | null;
42
+ readonly triggeredAtMs: number;
43
+ }
44
+ export interface UrwaKillSwitchCleared {
45
+ readonly tokenIdHex: string;
46
+ readonly active: boolean;
47
+ }
48
+ export interface UrwaPort {
49
+ /** Read: surface kill-switch + frozen state to the signing UI. */
50
+ isKillSwitched(tokenIdHex: string): Promise<UrwaKillSwitchState>;
51
+ getFrozenTokens(tokenIdHex: string, accountHex: string): Promise<UrwaFrozenAmount>;
52
+ /** Admin-token-gated mutations. */
53
+ setFrozenTokens(req: SetFrozenTokensRequest): Promise<UrwaFrozenRecord>;
54
+ triggerKillSwitch(req: UrwaKillSwitchTriggerRequest): Promise<UrwaKillSwitchTriggered>;
55
+ clearKillSwitch(tokenIdHex: string): Promise<UrwaKillSwitchCleared>;
56
+ }
57
+ //# sourceMappingURL=urwa.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"urwa.d.ts","sourceRoot":"","sources":["../../../src/ports/urwa/urwa.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACrD,QAAQ,CAAC,mBAAmB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CAChE;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CAChC;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,QAAQ;IACvB,kEAAkE;IAClE,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;IACjE,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;IACnF,mCAAmC;IACnC,eAAe,CAAC,GAAG,EAAE,sBAAsB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;IACxE,iBAAiB,CAAC,GAAG,EAAE,4BAA4B,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAAC;IACvF,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAC;CACrE"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * UrwaPort — ERC-7943 (uRWA) compliance surface for tokenized RWAs.
3
+ *
4
+ * Wallet usage: the wallet surfaces compliance status (kill-switch
5
+ * active, frozen-tokens record) to the user before they sign any
6
+ * transfer of an affected asset. Mutations are admin-only.
7
+ */
8
+ export {};
9
+ //# sourceMappingURL=urwa.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"urwa.js","sourceRoot":"","sources":["../../../src/ports/urwa/urwa.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * WormholeNttAdapter — `WormholeNttPort` backed by `tenzro-sdk`
3
+ * `WormholeNttClient`.
4
+ */
5
+ import type { WormholeNttClient } from 'tenzro-sdk';
6
+ import type { WormholeNttCatalog, WormholeNttPort } from './wormhole-ntt.js';
7
+ export type WormholeNttClientLike = Pick<WormholeNttClient, 'listChains'>;
8
+ export declare class WormholeNttAdapter implements WormholeNttPort {
9
+ private readonly client;
10
+ constructor(client: WormholeNttClientLike);
11
+ listChains(): Promise<WormholeNttCatalog>;
12
+ }
13
+ //# sourceMappingURL=adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../src/ports/wormhole-ntt/adapter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AACpD,OAAO,KAAK,EACV,kBAAkB,EAClB,eAAe,EAChB,MAAM,mBAAmB,CAAC;AAE3B,MAAM,MAAM,qBAAqB,GAAG,IAAI,CAAC,iBAAiB,EAAE,YAAY,CAAC,CAAC;AAE1E,qBAAa,kBAAmB,YAAW,eAAe;IAC5C,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,qBAAqB;IAEpD,UAAU,IAAI,OAAO,CAAC,kBAAkB,CAAC;CAYhD"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * WormholeNttAdapter — `WormholeNttPort` backed by `tenzro-sdk`
3
+ * `WormholeNttClient`.
4
+ */
5
+ export class WormholeNttAdapter {
6
+ client;
7
+ constructor(client) {
8
+ this.client = client;
9
+ }
10
+ async listChains() {
11
+ const r = await this.client.listChains();
12
+ return {
13
+ chains: r.chains.map((c) => ({
14
+ wormholeChainId: c.wormhole_chain_id,
15
+ name: c.name,
16
+ })),
17
+ transceiverKinds: r.transceiver_kinds,
18
+ scaffolding: r.scaffolding,
19
+ ...(r.note !== undefined ? { note: r.note } : {}),
20
+ };
21
+ }
22
+ }
23
+ //# sourceMappingURL=adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../../src/ports/wormhole-ntt/adapter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAUH,MAAM,OAAO,kBAAkB;IACA;IAA7B,YAA6B,MAA6B;QAA7B,WAAM,GAAN,MAAM,CAAuB;IAAG,CAAC;IAE9D,KAAK,CAAC,UAAU;QACd,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;QACzC,OAAO;YACL,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC3B,eAAe,EAAE,CAAC,CAAC,iBAAiB;gBACpC,IAAI,EAAE,CAAC,CAAC,IAAI;aACb,CAAC,CAAC;YACH,gBAAgB,EAAE,CAAC,CAAC,iBAAiB;YACrC,WAAW,EAAE,CAAC,CAAC,WAAW;YAC1B,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAClD,CAAC;IACJ,CAAC;CACF"}
@@ -0,0 +1,4 @@
1
+ export type { WormholeNttPort, WormholeNttCatalog, WormholeNttChain, } from './wormhole-ntt.js';
2
+ export { WormholeNttAdapter } from './adapter.js';
3
+ export type { WormholeNttClientLike } from './adapter.js';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ports/wormhole-ntt/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,eAAe,EACf,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,YAAY,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { WormholeNttAdapter } from "./adapter.js";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ports/wormhole-ntt/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * WormholeNttPort — Wormhole Native Token Transfers (NTT) registry.
3
+ *
4
+ * Wallet usage: surfaces the registered NTT chain catalog + supported
5
+ * transceiver kinds (Wormhole / Axelar / LayerZero / custom) so the
6
+ * user can see which destination chains an NTT-deployed token can
7
+ * reach before they sign.
8
+ */
9
+ export interface WormholeNttChain {
10
+ readonly wormholeChainId: number;
11
+ readonly name: string;
12
+ }
13
+ export interface WormholeNttCatalog {
14
+ readonly chains: readonly WormholeNttChain[];
15
+ readonly transceiverKinds: readonly string[];
16
+ readonly scaffolding: boolean;
17
+ readonly note?: string;
18
+ }
19
+ export interface WormholeNttPort {
20
+ listChains(): Promise<WormholeNttCatalog>;
21
+ }
22
+ //# sourceMappingURL=wormhole-ntt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wormhole-ntt.d.ts","sourceRoot":"","sources":["../../../src/ports/wormhole-ntt/wormhole-ntt.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,MAAM,EAAE,SAAS,gBAAgB,EAAE,CAAC;IAC7C,QAAQ,CAAC,gBAAgB,EAAE,SAAS,MAAM,EAAE,CAAC;IAC7C,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,eAAe;IAC9B,UAAU,IAAI,OAAO,CAAC,kBAAkB,CAAC,CAAC;CAC3C"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * WormholeNttPort — Wormhole Native Token Transfers (NTT) registry.
3
+ *
4
+ * Wallet usage: surfaces the registered NTT chain catalog + supported
5
+ * transceiver kinds (Wormhole / Axelar / LayerZero / custom) so the
6
+ * user can see which destination chains an NTT-deployed token can
7
+ * reach before they sign.
8
+ */
9
+ export {};
10
+ //# sourceMappingURL=wormhole-ntt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wormhole-ntt.js","sourceRoot":"","sources":["../../../src/ports/wormhole-ntt/wormhole-ntt.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "tenzro-wallet",
3
- "version": "0.2.4",
4
- "description": "Tenzro Wallet kernel — one identity, four VM surfaces (Tenzro native, EVM, SVM, Canton). Passkey-quorum custody, post-quantum signing, agent-payment ports, capital intents + multi-party workflows, EVM primitives (EIP-7702 / Permit2 / Secure-Mint / ERC-7683), eight-vendor bridge router, CAIP discovery, Babylon Bitcoin staking, Tenzro Train protocol port (Phase 4 Confidential-tier).",
3
+ "version": "0.2.5",
4
+ "description": "Tenzro Wallet kernel — one identity, four VM surfaces (Tenzro native, EVM, SVM, Canton). Passkey-quorum custody, post-quantum signing, agent-payment ports, capital intents + multi-party workflows, EVM primitives (EIP-7702 / Permit2 / Secure-Mint / ERC-7683 + BridgeFeeHint), eight-vendor bridge router, cross-chain bridge fee in TNZO + Chainlink-backed oracle + per-tenant analytics, CAIP discovery, Babylon Bitcoin staking, Tenzro Train protocol port (Phase 4 Confidential-tier), ERC-7943 uRWA compliance, FATF Travel Rule (IVMS101), TEE-attested clock, A2A v1.0 SignedAgentCard, Wormhole NTT.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
7
7
  "types": "./dist/index.d.ts",
@@ -31,7 +31,7 @@
31
31
  "prepublishOnly": "pnpm build"
32
32
  },
33
33
  "dependencies": {
34
- "tenzro-sdk": "^0.4.3"
34
+ "tenzro-sdk": "^0.4.7"
35
35
  },
36
36
  "devDependencies": {
37
37
  "@types/node": "22.10.5",