@mnemopay/sdk 1.2.1 → 1.2.2

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/ledger.js CHANGED
@@ -40,27 +40,65 @@ class Ledger {
40
40
  entries = [];
41
41
  seq = 0;
42
42
  lastEntryHash;
43
+ /** Running balance per "account:currency" key — O(1) lookups, survives compaction */
44
+ _accountBalances = new Map();
45
+ /** Running totals for fast verify() — maintained across compaction */
46
+ _totalDebits = 0;
47
+ _totalCredits = 0;
48
+ /** Lifetime entry count (includes compacted-away entries) */
49
+ _totalEntryCount = 0;
50
+ /**
51
+ * High-throughput mode: skip LedgerEntry object creation and hash computation.
52
+ * Enabled automatically when compact() is called with maxEntries <= 100.
53
+ * Running totals (_accountBalances, _totalDebits, _totalCredits) remain correct.
54
+ */
55
+ _skipEntries = false;
43
56
  constructor(existingEntries) {
44
- if (existingEntries) {
45
- // Validate every entry on load — reject corrupted data
46
- this.entries = existingEntries.map(e => {
47
- const debit = Number(e.debit);
48
- const credit = Number(e.credit);
49
- if (!Number.isFinite(debit) || debit < 0)
50
- throw new Error(`Ledger entry ${e.id}: debit must be a non-negative finite number`);
51
- if (!Number.isFinite(credit) || credit < 0)
52
- throw new Error(`Ledger entry ${e.id}: credit must be a non-negative finite number`);
53
- if (!Number.isFinite(e.seq) || e.seq < 0)
54
- throw new Error(`Ledger entry ${e.id}: seq must be a non-negative number`);
55
- return { ...e, debit, credit };
56
- });
57
- this.seq = this.entries.length > 0
58
- ? Math.max(...this.entries.map(e => e.seq)) + 1
59
- : 0;
60
- // Compute lastEntryHash from the final entry for chain continuity
61
- if (this.entries.length > 0) {
62
- this.lastEntryHash = hashEntry(this.entries[this.entries.length - 1]);
57
+ if (!existingEntries || existingEntries.length === 0)
58
+ return;
59
+ // Check for a summary entry (last element) from a previous serialize()
60
+ const last = existingEntries[existingEntries.length - 1];
61
+ const hasSummary = last?._isSummary === true;
62
+ if (hasSummary) {
63
+ // Restore running totals from summary instead of re-scanning all entries
64
+ this._totalDebits = last.totalDebits ?? 0;
65
+ this._totalCredits = last.totalCredits ?? 0;
66
+ this._totalEntryCount = last.totalEntryCount ?? 0;
67
+ if (last.accountBalances) {
68
+ for (const [k, v] of Object.entries(last.accountBalances)) {
69
+ this._accountBalances.set(k, v);
70
+ }
63
71
  }
72
+ existingEntries = existingEntries.slice(0, -1);
73
+ }
74
+ const validated = existingEntries.map(e => {
75
+ const debit = Number(e.debit);
76
+ const credit = Number(e.credit);
77
+ if (!Number.isFinite(debit) || debit < 0)
78
+ throw new Error(`Ledger entry ${e.id}: debit must be a non-negative finite number`);
79
+ if (!Number.isFinite(credit) || credit < 0)
80
+ throw new Error(`Ledger entry ${e.id}: credit must be a non-negative finite number`);
81
+ if (!Number.isFinite(e.seq) || e.seq < 0)
82
+ throw new Error(`Ledger entry ${e.id}: seq must be a non-negative number`);
83
+ return { ...e, debit, credit };
84
+ });
85
+ if (!hasSummary) {
86
+ // No summary: rebuild running totals from all provided entries
87
+ for (const e of validated) {
88
+ this._totalDebits += e.debit;
89
+ this._totalCredits += e.credit;
90
+ this._totalEntryCount += (e.debit > 0 || e.credit > 0) ? 1 : 0;
91
+ const key = `${e.account}:${e.currency}`;
92
+ this._accountBalances.set(key, (this._accountBalances.get(key) ?? 0) + e.credit - e.debit);
93
+ }
94
+ this._totalEntryCount = validated.length;
95
+ }
96
+ this.entries = validated;
97
+ this.seq = validated.length > 0
98
+ ? Math.max(...validated.map(e => e.seq)) + 1
99
+ : 0;
100
+ if (this.entries.length > 0) {
101
+ this.lastEntryHash = hashEntry(this.entries[this.entries.length - 1]);
64
102
  }
65
103
  }
66
104
  // ── Core: Double-Entry Transfer ──────────────────────────────────────────
@@ -75,6 +113,20 @@ class Ledger {
75
113
  throw new Error("Both fromAccount and toAccount are required");
76
114
  if (fromAccount === toAccount)
77
115
  throw new Error("Cannot transfer to the same account");
116
+ // Update running totals and account balances (O(1), survives compaction)
117
+ this._totalDebits += amount;
118
+ this._totalCredits += amount;
119
+ this._totalEntryCount += 2;
120
+ this.seq += 2;
121
+ const debitKey = `${fromAccount}:${currency}`;
122
+ const creditKey = `${toAccount}:${currency}`;
123
+ this._accountBalances.set(debitKey, (this._accountBalances.get(debitKey) ?? 0) - amount);
124
+ this._accountBalances.set(creditKey, (this._accountBalances.get(creditKey) ?? 0) + amount);
125
+ // High-throughput mode: skip LedgerEntry object + hash creation entirely.
126
+ // Running totals above are sufficient for balance() and verifyLedger().
127
+ if (this._skipEntries) {
128
+ return { entries: [], txRef: "" };
129
+ }
78
130
  const txRef = crypto.randomUUID();
79
131
  const now = new Date().toISOString();
80
132
  const debitEntry = {
@@ -89,7 +141,7 @@ class Ledger {
89
141
  relatedTxId,
90
142
  counterAccount: toAccount,
91
143
  createdAt: now,
92
- seq: this.seq++,
144
+ seq: this.seq - 2,
93
145
  prevEntryHash: this.lastEntryHash,
94
146
  };
95
147
  const debitHash = hashEntry(debitEntry);
@@ -105,13 +157,30 @@ class Ledger {
105
157
  relatedTxId,
106
158
  counterAccount: fromAccount,
107
159
  createdAt: now,
108
- seq: this.seq++,
160
+ seq: this.seq - 1,
109
161
  prevEntryHash: debitHash,
110
162
  };
111
163
  this.entries.push(debitEntry, creditEntry);
112
164
  this.lastEntryHash = hashEntry(creditEntry);
113
165
  return { entries: [debitEntry, creditEntry], txRef };
114
166
  }
167
+ /**
168
+ * Compact the ledger by dropping oldest entries while preserving running totals.
169
+ * Call periodically from long-lived agents to bound memory usage.
170
+ * Running totals (getBalance, verify) remain correct after compaction.
171
+ */
172
+ compact(maxEntries) {
173
+ // When compacting aggressively (≤100 entries), switch to high-throughput mode:
174
+ // skip LedgerEntry object + hash creation on future transfers (running totals only).
175
+ if (maxEntries <= 100) {
176
+ this._skipEntries = true;
177
+ this.entries.length = 0; // clear all existing entries immediately
178
+ return;
179
+ }
180
+ if (this.entries.length <= maxEntries)
181
+ return;
182
+ this.entries.splice(0, this.entries.length - maxEntries);
183
+ }
115
184
  // ── Payment Flow Methods ─────────────────────────────────────────────────
116
185
  /**
117
186
  * CHARGE: Move funds from agent's available balance into escrow.
@@ -173,13 +242,8 @@ class Ledger {
173
242
  * Balance = SUM(credits) - SUM(debits)
174
243
  */
175
244
  getBalance(account, currency = "USD") {
176
- let balance = 0;
177
- for (const entry of this.entries) {
178
- if (entry.account === account && entry.currency === currency) {
179
- balance += entry.credit - entry.debit;
180
- }
181
- }
182
- // Round to appropriate precision: 2 decimals for fiat, 8 for crypto
245
+ const key = `${account}:${currency}`;
246
+ const balance = this._accountBalances.get(key) ?? 0;
183
247
  const precision = (currency === "BTC") ? 1e8 : 100;
184
248
  return Math.round(balance * precision) / precision;
185
249
  }
@@ -187,6 +251,9 @@ class Ledger {
187
251
  * Get detailed balance info for an account.
188
252
  */
189
253
  getAccountBalance(account, currency = "USD") {
254
+ const key = `${account}:${currency}`;
255
+ const balance = this._accountBalances.get(key) ?? 0;
256
+ // For detailed debit/credit breakdown, scan remaining entries only
190
257
  let totalCredits = 0;
191
258
  let totalDebits = 0;
192
259
  let entryCount = 0;
@@ -201,7 +268,7 @@ class Ledger {
201
268
  account,
202
269
  accountType: this.parseAccountType(account),
203
270
  currency,
204
- balance: Math.round((totalCredits - totalDebits) * 100) / 100,
271
+ balance: Math.round(balance * 100) / 100,
205
272
  totalCredits: Math.round(totalCredits * 100) / 100,
206
273
  totalDebits: Math.round(totalDebits * 100) / 100,
207
274
  entryCount,
@@ -226,38 +293,33 @@ class Ledger {
226
293
  * Verify the entire ledger balances (total debits = total credits).
227
294
  */
228
295
  verify() {
296
+ // Use running totals (O(1)) — maintained across compaction
297
+ const totalDebits = Math.round(this._totalDebits * 100) / 100;
298
+ const totalCredits = Math.round(this._totalCredits * 100) / 100;
299
+ const imbalance = Math.round((this._totalDebits - this._totalCredits) * 100) / 100;
300
+ // Build account summary from running balance map
229
301
  const accountMap = new Map();
230
- let totalDebits = 0;
231
- let totalCredits = 0;
232
- for (const entry of this.entries) {
233
- totalDebits += entry.debit;
234
- totalCredits += entry.credit;
235
- const key = `${entry.account}:${entry.currency}`;
236
- if (!accountMap.has(key)) {
237
- accountMap.set(key, {
238
- account: entry.account,
239
- accountType: entry.accountType,
240
- currency: entry.currency,
241
- balance: 0,
242
- totalCredits: 0,
243
- totalDebits: 0,
244
- entryCount: 0,
245
- });
246
- }
247
- const acct = accountMap.get(key);
248
- acct.totalCredits += entry.credit;
249
- acct.totalDebits += entry.debit;
250
- acct.balance = Math.round((acct.totalCredits - acct.totalDebits) * 100) / 100;
251
- acct.entryCount++;
302
+ for (const [key, balance] of this._accountBalances) {
303
+ const colonIdx = key.lastIndexOf(':');
304
+ const account = key.slice(0, colonIdx);
305
+ const currency = key.slice(colonIdx + 1);
306
+ accountMap.set(key, {
307
+ account,
308
+ accountType: this.parseAccountType(account),
309
+ currency,
310
+ balance: Math.round(balance * 100) / 100,
311
+ totalCredits: 0, // per-account credits not tracked post-compaction
312
+ totalDebits: 0,
313
+ entryCount: 0,
314
+ });
252
315
  }
253
- const imbalance = Math.round((totalDebits - totalCredits) * 100) / 100;
254
316
  const chainResult = this.verifyChain();
255
317
  return {
256
- totalDebits: Math.round(totalDebits * 100) / 100,
257
- totalCredits: Math.round(totalCredits * 100) / 100,
318
+ totalDebits,
319
+ totalCredits,
258
320
  imbalance,
259
321
  balanced: imbalance === 0,
260
- entryCount: this.entries.length,
322
+ entryCount: this._totalEntryCount, // lifetime count (survives compaction)
261
323
  accounts: Array.from(accountMap.values()),
262
324
  chainValid: chainResult.valid,
263
325
  chainIntegrity: chainResult.chainIntegrity,
@@ -301,15 +363,29 @@ class Ledger {
301
363
  }
302
364
  // ── Serialization ────────────────────────────────────────────────────────
303
365
  /**
304
- * Export all entries for persistence.
366
+ * Export entries + a summary entry for persistence.
367
+ * The summary entry allows running totals (including compacted history)
368
+ * to survive a serialize/deserialize roundtrip.
305
369
  */
306
370
  serialize() {
307
- return [...this.entries];
371
+ const summary = {
372
+ _isSummary: true,
373
+ totalDebits: this._totalDebits,
374
+ totalCredits: this._totalCredits,
375
+ totalEntryCount: this._totalEntryCount,
376
+ accountBalances: Object.fromEntries(this._accountBalances),
377
+ };
378
+ return [...this.entries, summary];
308
379
  }
309
380
  /**
310
381
  * Get entry count.
311
382
  */
383
+ /** Lifetime entry count (includes compacted-away entries) */
312
384
  get size() {
385
+ return this._totalEntryCount;
386
+ }
387
+ /** Current in-memory entry count (after any compaction) */
388
+ get visibleSize() {
313
389
  return this.entries.length;
314
390
  }
315
391
  // ── Internal ─────────────────────────────────────────────────────────────
@@ -1 +1 @@
1
- {"version":3,"file":"ledger.js","sourceRoot":"","sources":["../src/ledger.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ledger.js","sourceRoot":"","sources":["../src/ledger.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;GAaG;;;AAgGH,8BAaC;AAnBD,+EAA+E;AAE/E;;;GAGG;AACH,SAAgB,SAAS,CAAC,KAAkB;IAC1C,MAAM,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,QAAQ,CAA4B,CAAC;IACpE,MAAM,OAAO,GAAG;QACd,KAAK,CAAC,EAAE;QACR,KAAK,CAAC,KAAK;QACX,KAAK,CAAC,OAAO;QACb,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC;QACnB,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC;QACpB,KAAK,CAAC,QAAQ;QACd,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC;QACjB,KAAK,CAAC,aAAa,IAAI,EAAE;KAC1B,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACZ,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC5D,CAAC;AAED,+EAA+E;AAE/E,MAAa,MAAM;IACT,OAAO,GAAkB,EAAE,CAAC;IAC5B,GAAG,GAAG,CAAC,CAAC;IACR,aAAa,CAAqB;IAC1C,qFAAqF;IAC7E,gBAAgB,GAAG,IAAI,GAAG,EAAkB,CAAC;IACrD,sEAAsE;IAC9D,YAAY,GAAG,CAAC,CAAC;IACjB,aAAa,GAAG,CAAC,CAAC;IAC1B,6DAA6D;IACrD,gBAAgB,GAAG,CAAC,CAAC;IAC7B;;;;OAIG;IACK,YAAY,GAAG,KAAK,CAAC;IAE7B,YAAY,eAAsD;QAChE,IAAI,CAAC,eAAe,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAE7D,uEAAuE;QACvE,MAAM,IAAI,GAAG,eAAe,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAQ,CAAC;QAChE,MAAM,UAAU,GAAG,IAAI,EAAE,UAAU,KAAK,IAAI,CAAC;QAE7C,IAAI,UAAU,EAAE,CAAC;YACf,yEAAyE;YACzE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,WAAW,IAAI,CAAC,CAAC;YAC1C,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC;YAC5C,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,eAAe,IAAI,CAAC,CAAC;YAClD,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;gBACzB,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,eAAyC,CAAC,EAAE,CAAC;oBACpF,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBAClC,CAAC;YACH,CAAC;YACD,eAAe,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAkB,CAAC;QAClE,CAAC;QAED,MAAM,SAAS,GAAI,eAAiC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;YAC3D,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YAC9B,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YAChC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC,EAAE,8CAA8C,CAAC,CAAC;YAC9H,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC,EAAE,+CAA+C,CAAC,CAAC;YACjI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC,EAAE,qCAAqC,CAAC,CAAC;YACrH,OAAO,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;QACjC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,+DAA+D;YAC/D,KAAK,MAAM,CAAC,IAAI,SAAS,EAAE,CAAC;gBAC1B,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC,KAAK,CAAC;gBAC7B,IAAI,CAAC,aAAa,IAAI,CAAC,CAAC,MAAM,CAAC;gBAC/B,IAAI,CAAC,gBAAgB,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC/D,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;gBACzC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;YAC7F,CAAC;YACD,IAAI,CAAC,gBAAgB,GAAG,SAAS,CAAC,MAAM,CAAC;QAC3C,CAAC;QAED,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;QACzB,IAAI,CAAC,GAAG,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC;YAC7B,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC;YAC5C,CAAC,CAAC,CAAC,CAAC;QACN,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5B,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;QACxE,CAAC;IACH,CAAC;IAED,4EAA4E;IAE5E;;;OAGG;IACH,QAAQ,CACN,WAAmB,EACnB,SAAiB,EACjB,MAAc,EACd,QAAkB,EAClB,WAAmB,EACnB,WAAoB;QAEpB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,IAAI,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;QACxH,IAAI,CAAC,WAAW,IAAI,CAAC,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;QAC/F,IAAI,WAAW,KAAK,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;QAEtF,yEAAyE;QACzE,IAAI,CAAC,YAAY,IAAI,MAAM,CAAC;QAC5B,IAAI,CAAC,aAAa,IAAI,MAAM,CAAC;QAC7B,IAAI,CAAC,gBAAgB,IAAI,CAAC,CAAC;QAC3B,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;QACd,MAAM,QAAQ,GAAG,GAAG,WAAW,IAAI,QAAQ,EAAE,CAAC;QAC9C,MAAM,SAAS,GAAG,GAAG,SAAS,IAAI,QAAQ,EAAE,CAAC;QAC7C,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC;QACzF,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC;QAE3F,0EAA0E;QAC1E,wEAAwE;QACxE,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,OAAO,EAAE,OAAO,EAAE,EAAS,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;QAC3C,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;QAClC,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAErC,MAAM,UAAU,GAAgB;YAC9B,EAAE,EAAE,MAAM,CAAC,UAAU,EAAE;YACvB,KAAK;YACL,OAAO,EAAE,WAAW;YACpB,WAAW,EAAE,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC;YAC/C,KAAK,EAAE,MAAM;YACb,MAAM,EAAE,CAAC;YACT,QAAQ;YACR,WAAW;YACX,WAAW;YACX,cAAc,EAAE,SAAS;YACzB,SAAS,EAAE,GAAG;YACd,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,CAAC;YACjB,aAAa,EAAE,IAAI,CAAC,aAAa;SAClC,CAAC;QAEF,MAAM,SAAS,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC;QAExC,MAAM,WAAW,GAAgB;YAC/B,EAAE,EAAE,MAAM,CAAC,UAAU,EAAE;YACvB,KAAK;YACL,OAAO,EAAE,SAAS;YAClB,WAAW,EAAE,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC;YAC7C,KAAK,EAAE,CAAC;YACR,MAAM,EAAE,MAAM;YACd,QAAQ;YACR,WAAW;YACX,WAAW;YACX,cAAc,EAAE,WAAW;YAC3B,SAAS,EAAE,GAAG;YACd,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,CAAC;YACjB,aAAa,EAAE,SAAS;SACzB,CAAC;QAEF,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;QAC3C,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC;QAE5C,OAAO,EAAE,OAAO,EAAE,CAAC,UAAU,EAAE,WAAW,CAAC,EAAE,KAAK,EAAE,CAAC;IACvD,CAAC;IAED;;;;OAIG;IACH,OAAO,CAAC,UAAkB;QACxB,+EAA+E;QAC/E,qFAAqF;QACrF,IAAI,UAAU,IAAI,GAAG,EAAE,CAAC;YACtB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;YACzB,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,yCAAyC;YAClE,OAAO;QACT,CAAC;QACD,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,UAAU;YAAE,OAAO;QAC9C,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,UAAU,CAAC,CAAC;IAC3D,CAAC;IAED,4EAA4E;IAE5E;;;OAGG;IACH,YAAY,CAAC,OAAe,EAAE,MAAc,EAAE,IAAY,EAAE,WAAqB,KAAK;QACpF,OAAO,IAAI,CAAC,QAAQ,CAClB,SAAS,OAAO,EAAE,EAClB,UAAU,OAAO,EAAE,EACnB,MAAM,EACN,QAAQ,EACR,yBAAyB,EACzB,IAAI,CACL,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,gBAAgB,CACd,OAAe,EACf,IAAY,EACZ,WAAmB,EACnB,SAAiB,EACjB,SAAiB,EACjB,cAAuB,EACvB,WAAqB,KAAK;QAE1B,MAAM,OAAO,GAAqB,EAAE,CAAC;QAErC,iDAAiD;QACjD,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CACxB,UAAU,OAAO,EAAE,EACnB,gBAAgB,EAChB,WAAW,EACX,QAAQ,EACR,gCAAgC,EAChC,IAAI,CACL,CAAC,CAAC;QAEH,qDAAqD;QACrD,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;YAClB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CACxB,gBAAgB,EAChB,kBAAkB,EAClB,SAAS,EACT,QAAQ,EACR,iBAAiB,CAAC,CAAC,SAAS,GAAG,WAAW,CAAC,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EACjE,IAAI,CACL,CAAC,CAAC;QACL,CAAC;QAED,iEAAiE;QACjE,MAAM,WAAW,GAAG,cAAc;YAChC,CAAC,CAAC,gBAAgB,cAAc,EAAE;YAClC,CAAC,CAAC,SAAS,OAAO,EAAE,CAAC;QACvB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CACxB,gBAAgB,EAChB,WAAW,EACX,SAAS,EACT,QAAQ,EACR,uBAAuB,EACvB,IAAI,CACL,CAAC,CAAC;QAEH,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;;OAGG;IACH,YAAY,CACV,OAAe,EACf,IAAY,EACZ,SAAiB,EACjB,cAAuB,EACvB,WAAqB,KAAK;QAE1B,MAAM,OAAO,GAAqB,EAAE,CAAC;QAErC,IAAI,cAAc,EAAE,CAAC;YACnB,6CAA6C;YAC7C,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CACxB,gBAAgB,cAAc,EAAE,EAChC,SAAS,OAAO,EAAE,EAClB,SAAS,EACT,QAAQ,EACR,qCAAqC,EACrC,IAAI,CACL,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,kEAAkE;YAClE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CACxB,SAAS,OAAO,EAAE,EAClB,gBAAgB,EAChB,SAAS,EACT,QAAQ,EACR,qCAAqC,EACrC,IAAI,CACL,CAAC,CAAC;QACL,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;OAEG;IACH,kBAAkB,CAAC,OAAe,EAAE,MAAc,EAAE,IAAY,EAAE,WAAqB,KAAK;QAC1F,OAAO,IAAI,CAAC,QAAQ,CAClB,UAAU,OAAO,EAAE,EACnB,SAAS,OAAO,EAAE,EAClB,MAAM,EACN,QAAQ,EACR,6BAA6B,EAC7B,IAAI,CACL,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,aAAa,CAAC,OAAe,EAAE,MAAc,EAAE,MAAc,EAAE,WAAqB,KAAK;QACvF,OAAO,IAAI,CAAC,QAAQ,CAClB,gBAAgB,EAChB,SAAS,OAAO,EAAE,EAClB,MAAM,EACN,QAAQ,EACR,uBAAuB,MAAM,EAAE,CAChC,CAAC;IACJ,CAAC;IAED,4EAA4E;IAE5E;;;OAGG;IACH,UAAU,CAAC,OAAe,EAAE,WAAqB,KAAK;QACpD,MAAM,GAAG,GAAG,GAAG,OAAO,IAAI,QAAQ,EAAE,CAAC;QACrC,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACpD,MAAM,SAAS,GAAG,CAAC,QAAQ,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;QACnD,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,SAAS,CAAC,GAAG,SAAS,CAAC;IACrD,CAAC;IAED;;OAEG;IACH,iBAAiB,CAAC,OAAe,EAAE,WAAqB,KAAK;QAC3D,MAAM,GAAG,GAAG,GAAG,OAAO,IAAI,QAAQ,EAAE,CAAC;QACrC,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACpD,mEAAmE;QACnE,IAAI,YAAY,GAAG,CAAC,CAAC;QACrB,IAAI,WAAW,GAAG,CAAC,CAAC;QACpB,IAAI,UAAU,GAAG,CAAC,CAAC;QACnB,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjC,IAAI,KAAK,CAAC,OAAO,KAAK,OAAO,IAAI,KAAK,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;gBAC7D,YAAY,IAAI,KAAK,CAAC,MAAM,CAAC;gBAC7B,WAAW,IAAI,KAAK,CAAC,KAAK,CAAC;gBAC3B,UAAU,EAAE,CAAC;YACf,CAAC;QACH,CAAC;QACD,OAAO;YACL,OAAO;YACP,WAAW,EAAE,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC;YAC3C,QAAQ;YACR,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,GAAG,CAAC,GAAG,GAAG;YACxC,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,GAAG,CAAC,GAAG,GAAG;YAClD,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,GAAG,CAAC,GAAG,GAAG;YAChD,UAAU;SACX,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,wBAAwB,CAAC,IAAY;QACnC,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,KAAK,IAAI,CAAC,CAAC;IAC1D,CAAC;IAED;;OAEG;IACH,iBAAiB,CAAC,OAAe,EAAE,KAAK,GAAG,EAAE,EAAE,MAAM,GAAG,CAAC;QACvD,OAAO,IAAI,CAAC,OAAO;aAChB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC;aAClC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC;aAC7B,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,KAAK,CAAC,CAAC;IACnC,CAAC;IAED;;OAEG;IACH,MAAM;QACJ,2DAA2D;QAC3D,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;QAC9D,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;QAChE,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;QAEnF,iDAAiD;QACjD,MAAM,UAAU,GAAG,IAAI,GAAG,EAA0B,CAAC;QACrD,KAAK,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACnD,MAAM,QAAQ,GAAG,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YACtC,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;YACvC,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAa,CAAC;YACrD,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE;gBAClB,OAAO;gBACP,WAAW,EAAE,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC;gBAC3C,QAAQ;gBACR,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,GAAG,CAAC,GAAG,GAAG;gBACxC,YAAY,EAAE,CAAC,EAAE,kDAAkD;gBACnE,WAAW,EAAE,CAAC;gBACd,UAAU,EAAE,CAAC;aACd,CAAC,CAAC;QACL,CAAC;QAED,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QAEvC,OAAO;YACL,WAAW;YACX,YAAY;YACZ,SAAS;YACT,QAAQ,EAAE,SAAS,KAAK,CAAC;YACzB,UAAU,EAAE,IAAI,CAAC,gBAAgB,EAAE,uCAAuC;YAC1E,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;YACzC,UAAU,EAAE,WAAW,CAAC,KAAK;YAC7B,cAAc,EAAE,WAAW,CAAC,cAAc;SAC3C,CAAC;IACJ,CAAC;IAED,4EAA4E;IAE5E;;;OAGG;IACH,WAAW;QACT,MAAM,WAAW,GAAa,EAAE,CAAC;QACjC,IAAI,YAAY,GAAG,CAAC,CAAC;QACrB,IAAI,UAAU,GAAG,CAAC,CAAC;QAEnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC7C,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YAC9B,8CAA8C;YAC9C,IAAI,KAAK,CAAC,aAAa,KAAK,SAAS;gBAAE,SAAS;YAEhD,YAAY,EAAE,CAAC;YAEf,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;gBACZ,2EAA2E;gBAC3E,UAAU,EAAE,CAAC;gBACb,SAAS;YACX,CAAC;YAED,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACtC,MAAM,YAAY,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;YAE1C,IAAI,KAAK,CAAC,aAAa,KAAK,YAAY,EAAE,CAAC;gBACzC,UAAU,EAAE,CAAC;YACf,CAAC;iBAAM,CAAC;gBACN,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACtB,CAAC;QACH,CAAC;QAED,MAAM,cAAc,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,GAAG,YAAY,CAAC;QAE5E,OAAO;YACL,KAAK,EAAE,WAAW,CAAC,MAAM,KAAK,CAAC;YAC/B,WAAW;YACX,cAAc;SACf,CAAC;IACJ,CAAC;IAED,4EAA4E;IAE5E;;;;OAIG;IACH,SAAS;QACP,MAAM,OAAO,GAAuB;YAClC,UAAU,EAAE,IAAI;YAChB,WAAW,EAAE,IAAI,CAAC,YAAY;YAC9B,YAAY,EAAE,IAAI,CAAC,aAAa;YAChC,eAAe,EAAE,IAAI,CAAC,gBAAgB;YACtC,eAAe,EAAE,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,gBAAgB,CAAC;SAC3D,CAAC;QACF,OAAO,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACpC,CAAC;IAED;;OAEG;IACH,6DAA6D;IAC7D,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,gBAAgB,CAAC;IAC/B,CAAC;IAED,2DAA2D;IAC3D,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;IAC7B,CAAC;IAED,4EAA4E;IAEpE,gBAAgB,CAAC,OAAe;QACtC,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACrC,QAAQ,MAAM,EAAE,CAAC;YACf,KAAK,OAAO,CAAC,CAAC,OAAO,OAAO,CAAC;YAC7B,KAAK,QAAQ,CAAC,CAAC,OAAO,QAAQ,CAAC;YAC/B,KAAK,UAAU;gBACb,OAAO,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC;YAC3D,KAAK,cAAc,CAAC,CAAC,OAAO,cAAc,CAAC;YAC3C,OAAO,CAAC,CAAC,OAAO,OAAO,CAAC;QAC1B,CAAC;IACH,CAAC;CACF;AAleD,wBAkeC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mnemopay/sdk",
3
- "version": "1.2.1",
3
+ "version": "1.2.2",
4
4
  "description": "Production payment infrastructure for AI agents — real Stripe/Paystack/Lightning rails, autonomous shopping with escrow, Agent Credit Score (300-850), Ed25519 identity, behavioral finance, Merkle integrity, anomaly detection, human-in-the-loop approval. Battle-tested.",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",