@continuumdao/continuum-node-sdk 1.2.28 → 1.3.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.
Files changed (99) hide show
  1. package/dist/config/mpa-wallet.d.ts +60 -29
  2. package/dist/config/mpa-wallet.d.ts.map +1 -1
  3. package/dist/config/mpa-wallet.js +35 -13
  4. package/dist/config/mpa-wallet.js.map +1 -1
  5. package/dist/config/paths.d.ts +2 -0
  6. package/dist/config/paths.d.ts.map +1 -1
  7. package/dist/config/paths.js +12 -0
  8. package/dist/config/paths.js.map +1 -1
  9. package/dist/core/mpc/mpa-billing-ops.d.ts +29 -0
  10. package/dist/core/mpc/mpa-billing-ops.d.ts.map +1 -0
  11. package/dist/core/mpc/mpa-billing-ops.js +473 -0
  12. package/dist/core/mpc/mpa-billing-ops.js.map +1 -0
  13. package/dist/core/mpc/mpa-top-up.d.ts.map +1 -1
  14. package/dist/core/mpc/mpa-top-up.js +17 -25
  15. package/dist/core/mpc/mpa-top-up.js.map +1 -1
  16. package/dist/core/mpc/register-keygen.d.ts.map +1 -1
  17. package/dist/core/mpc/register-keygen.js +1 -6
  18. package/dist/core/mpc/register-keygen.js.map +1 -1
  19. package/dist/core/mpc/schemas.d.ts +47 -0
  20. package/dist/core/mpc/schemas.d.ts.map +1 -1
  21. package/dist/core/mpc/schemas.js +35 -0
  22. package/dist/core/mpc/schemas.js.map +1 -1
  23. package/dist/core/ta/calculate.d.ts +15 -0
  24. package/dist/core/ta/calculate.d.ts.map +1 -0
  25. package/dist/core/ta/calculate.js +275 -0
  26. package/dist/core/ta/calculate.js.map +1 -0
  27. package/dist/core/ta/catalog.d.ts +26 -0
  28. package/dist/core/ta/catalog.d.ts.map +1 -0
  29. package/dist/core/ta/catalog.js +215 -0
  30. package/dist/core/ta/catalog.js.map +1 -0
  31. package/dist/core/ta/index.d.ts +5 -0
  32. package/dist/core/ta/index.d.ts.map +1 -0
  33. package/dist/core/ta/index.js +5 -0
  34. package/dist/core/ta/index.js.map +1 -0
  35. package/dist/core/ta/normalize-input.d.ts +30 -0
  36. package/dist/core/ta/normalize-input.d.ts.map +1 -0
  37. package/dist/core/ta/normalize-input.js +193 -0
  38. package/dist/core/ta/normalize-input.js.map +1 -0
  39. package/dist/core/ta/schemas.d.ts +151 -0
  40. package/dist/core/ta/schemas.d.ts.map +1 -0
  41. package/dist/core/ta/schemas.js +95 -0
  42. package/dist/core/ta/schemas.js.map +1 -0
  43. package/dist/core/vpn/schemas.d.ts +181 -0
  44. package/dist/core/vpn/schemas.d.ts.map +1 -0
  45. package/dist/core/vpn/schemas.js +112 -0
  46. package/dist/core/vpn/schemas.js.map +1 -0
  47. package/dist/core/vpn/vpn-admin.d.ts +22 -0
  48. package/dist/core/vpn/vpn-admin.d.ts.map +1 -0
  49. package/dist/core/vpn/vpn-admin.js +88 -0
  50. package/dist/core/vpn/vpn-admin.js.map +1 -0
  51. package/dist/core/vpn/vpn-egress.d.ts +30 -0
  52. package/dist/core/vpn/vpn-egress.d.ts.map +1 -0
  53. package/dist/core/vpn/vpn-egress.js +91 -0
  54. package/dist/core/vpn/vpn-egress.js.map +1 -0
  55. package/dist/core/vpn/vpn-files.d.ts +14 -0
  56. package/dist/core/vpn/vpn-files.d.ts.map +1 -0
  57. package/dist/core/vpn/vpn-files.js +32 -0
  58. package/dist/core/vpn/vpn-files.js.map +1 -0
  59. package/dist/core/vpn/vpn-host-binding.d.ts +4 -0
  60. package/dist/core/vpn/vpn-host-binding.d.ts.map +1 -0
  61. package/dist/core/vpn/vpn-host-binding.js +6 -0
  62. package/dist/core/vpn/vpn-host-binding.js.map +1 -0
  63. package/dist/core/vpn/vpn-parse.d.ts +115 -0
  64. package/dist/core/vpn/vpn-parse.d.ts.map +1 -0
  65. package/dist/core/vpn/vpn-parse.js +238 -0
  66. package/dist/core/vpn/vpn-parse.js.map +1 -0
  67. package/dist/core/vpn/vpn-signed.d.ts +13 -0
  68. package/dist/core/vpn/vpn-signed.d.ts.map +1 -0
  69. package/dist/core/vpn/vpn-signed.js +39 -0
  70. package/dist/core/vpn/vpn-signed.js.map +1 -0
  71. package/dist/index.d.ts +5 -0
  72. package/dist/index.d.ts.map +1 -1
  73. package/dist/index.js +5 -0
  74. package/dist/index.js.map +1 -1
  75. package/dist/mcp/index.d.ts +1 -1
  76. package/dist/mcp/index.d.ts.map +1 -1
  77. package/dist/mcp/index.js +1 -1
  78. package/dist/mcp/index.js.map +1 -1
  79. package/dist/mcp/mpc.d.ts.map +1 -1
  80. package/dist/mcp/mpc.js +33 -2
  81. package/dist/mcp/mpc.js.map +1 -1
  82. package/dist/mcp/register.d.ts +1 -0
  83. package/dist/mcp/register.d.ts.map +1 -1
  84. package/dist/mcp/register.js +4 -0
  85. package/dist/mcp/register.js.map +1 -1
  86. package/dist/mcp/ta/register.d.ts +6 -0
  87. package/dist/mcp/ta/register.d.ts.map +1 -0
  88. package/dist/mcp/ta/register.js +51 -0
  89. package/dist/mcp/ta/register.js.map +1 -0
  90. package/dist/mcp/ta/resources/indicators.md +86 -0
  91. package/dist/mcp/ta-server/index.d.ts +2 -0
  92. package/dist/mcp/ta-server/index.d.ts.map +1 -0
  93. package/dist/mcp/ta-server/index.js +12 -0
  94. package/dist/mcp/ta-server/index.js.map +1 -0
  95. package/dist/mcp/vpn.d.ts +4 -0
  96. package/dist/mcp/vpn.d.ts.map +1 -0
  97. package/dist/mcp/vpn.js +107 -0
  98. package/dist/mcp/vpn.js.map +1 -0
  99. package/package.json +7 -1
@@ -0,0 +1,473 @@
1
+ import { createPublicClient, defineChain, formatUnits, getAddress, http, } from 'viem';
2
+ import { ERC20_ALLOWANCE_ABI, KEY_GEN_ADDRESS_KIND_ETHEREUM, MPA_WALLET_CONTRACT_CONFIG, MPA_WALLET_READ_ABI, } from '../../config/mpa-wallet.js';
3
+ import { MpaOveragePurchaseInputSchema, MpaSyncBillingInputSchema, MpaVpnDepositInputSchema, MpaVpnHostInputSchema, MpaVpnStatusInputSchema, } from './schemas.js';
4
+ import { fetchGlobalNonceByKeyGenId, fetchKeyGenResult } from '../keygen.js';
5
+ import { buildMultiSignProposal } from '../../evm/proposal-builder.js';
6
+ import { signAndSubmitMultiSignRequest } from './sign-request-body.js';
7
+ import { assertExecutorNativeSufficientForProposal } from './gas-preflight.js';
8
+ import { nodeId } from '../general.js';
9
+ import { computeVpnHostBinding } from '../vpn/vpn-host-binding.js';
10
+ const ERC20_SYMBOL_DECIMALS_ABI = [
11
+ {
12
+ inputs: [],
13
+ name: 'symbol',
14
+ outputs: [{ name: '', type: 'string', internalType: 'string' }],
15
+ stateMutability: 'view',
16
+ type: 'function',
17
+ },
18
+ {
19
+ inputs: [],
20
+ name: 'decimals',
21
+ outputs: [{ name: '', type: 'uint8', internalType: 'uint8' }],
22
+ stateMutability: 'view',
23
+ type: 'function',
24
+ },
25
+ ];
26
+ function getMpaPublicClient() {
27
+ const chain = defineChain({
28
+ id: MPA_WALLET_CONTRACT_CONFIG.chainId,
29
+ name: 'Linea Mainnet',
30
+ nativeCurrency: { decimals: 18, name: 'Ether', symbol: 'ETH' },
31
+ rpcUrls: { default: { http: [MPA_WALLET_CONTRACT_CONFIG.rpcUrl] } },
32
+ });
33
+ return createPublicClient({
34
+ chain,
35
+ transport: http(MPA_WALLET_CONTRACT_CONFIG.rpcUrl),
36
+ });
37
+ }
38
+ function billingAddressFromEth(eth) {
39
+ return getAddress(eth.startsWith('0x') ? eth : `0x${eth}`);
40
+ }
41
+ function isWithdrawAuthority(executor, authority) {
42
+ if (authority == null || String(authority).trim() === '')
43
+ return false;
44
+ try {
45
+ return executor.toLowerCase() === getAddress(String(authority)).toLowerCase();
46
+ }
47
+ catch {
48
+ return false;
49
+ }
50
+ }
51
+ async function resolveKeyGenExecutor(config, keyGenId) {
52
+ const kg = await fetchKeyGenResult(config, keyGenId);
53
+ if (!kg.ok)
54
+ return kg;
55
+ const eth = kg.data.ethereumaddress?.trim();
56
+ if (!eth) {
57
+ return { ok: false, reason: 'KeyGen has no ethereum address.' };
58
+ }
59
+ return { ok: true, data: { keyGenResult: kg.data, billingAddress: billingAddressFromEth(eth) } };
60
+ }
61
+ async function resolveGlobalNonce(config, keyGenId, billingAddress, explicit) {
62
+ if (explicit != null)
63
+ return { ok: true, data: explicit };
64
+ const fromNode = await fetchGlobalNonceByKeyGenId(config, keyGenId);
65
+ if (fromNode.ok)
66
+ return fromNode;
67
+ const client = getMpaPublicClient();
68
+ const nonce = await client.getTransactionCount({ address: billingAddress, blockTag: 'pending' });
69
+ return { ok: true, data: nonce };
70
+ }
71
+ async function resolveNodeKey(config) {
72
+ const self = await nodeId(config);
73
+ if (!self.ok)
74
+ return self;
75
+ return { ok: true, data: self.data.nodeId };
76
+ }
77
+ async function resolveVpnHost(config, hostIpAddress, nodeKeyOverride) {
78
+ let nodeKey = nodeKeyOverride?.trim();
79
+ if (!nodeKey) {
80
+ const self = await resolveNodeKey(config);
81
+ if (!self.ok)
82
+ return self;
83
+ nodeKey = self.data;
84
+ }
85
+ return {
86
+ ok: true,
87
+ data: { nodeKey, hostBinding: computeVpnHostBinding(nodeKey, hostIpAddress) },
88
+ };
89
+ }
90
+ async function fetchFeeTokenMeta(client) {
91
+ const mpa = MPA_WALLET_CONTRACT_CONFIG.contractAddress;
92
+ const feeToken = await client.readContract({
93
+ address: mpa,
94
+ abi: MPA_WALLET_READ_ABI,
95
+ functionName: 'FEE_TOKEN',
96
+ });
97
+ const [symbol, decimals] = await Promise.all([
98
+ client.readContract({
99
+ address: feeToken,
100
+ abi: ERC20_SYMBOL_DECIMALS_ABI,
101
+ functionName: 'symbol',
102
+ }),
103
+ client.readContract({
104
+ address: feeToken,
105
+ abi: ERC20_SYMBOL_DECIMALS_ABI,
106
+ functionName: 'decimals',
107
+ }),
108
+ ]);
109
+ return { feeToken, symbol: symbol ?? 'TOKEN', decimals: Number(decimals ?? 18) };
110
+ }
111
+ async function maybeAppendFeeTokenApprove(client, actions, billingAddress, amountWei) {
112
+ const mpa = MPA_WALLET_CONTRACT_CONFIG.contractAddress;
113
+ const { feeToken } = await fetchFeeTokenMeta(client);
114
+ const allowance = await client.readContract({
115
+ address: feeToken,
116
+ abi: ERC20_ALLOWANCE_ABI,
117
+ functionName: 'allowance',
118
+ args: [billingAddress, mpa],
119
+ });
120
+ if (allowance >= amountWei)
121
+ return;
122
+ actions.push({
123
+ signature: 'approve(address,uint256)',
124
+ contractAddress: feeToken,
125
+ args: [
126
+ { name: 'spender', type: 'address', value: mpa },
127
+ { name: 'amount', type: 'uint256', value: amountWei.toString() },
128
+ ],
129
+ });
130
+ }
131
+ async function submitMpaProposal(config, input) {
132
+ const built = await buildMultiSignProposal(config, {
133
+ keyGenResult: input.keyGenResult,
134
+ chainId: MPA_WALLET_CONTRACT_CONFIG.chainId,
135
+ purpose: input.purpose ?? 'MPA billing on Linea',
136
+ useCustomGas: input.useCustomGas,
137
+ startingNonce: input.startingNonce,
138
+ actions: input.actions,
139
+ });
140
+ if (!built.ok)
141
+ return built;
142
+ const preflight = await assertExecutorNativeSufficientForProposal(config, {
143
+ keyGenResult: input.keyGenResult,
144
+ chainId: MPA_WALLET_CONTRACT_CONFIG.chainId,
145
+ proposal: built.data,
146
+ });
147
+ if (!preflight.ok)
148
+ return preflight;
149
+ return signAndSubmitMultiSignRequest(config, built.data.unsignedBody);
150
+ }
151
+ export async function createMpaSyncBillingMultiSignRequest(config, input) {
152
+ const parsed = MpaSyncBillingInputSchema.safeParse(input);
153
+ if (!parsed.success) {
154
+ return { ok: false, reason: 'Invalid MPA sync billing input.' };
155
+ }
156
+ const exec = await resolveKeyGenExecutor(config, parsed.data.keyGenId);
157
+ if (!exec.ok)
158
+ return exec;
159
+ const client = getMpaPublicClient();
160
+ const mpa = MPA_WALLET_CONTRACT_CONFIG.contractAddress;
161
+ const keyGenId = parsed.data.keyGenId;
162
+ const registered = await client.readContract({
163
+ address: mpa,
164
+ abi: MPA_WALLET_READ_ABI,
165
+ functionName: 'isKeyGenRegistered',
166
+ args: [keyGenId, KEY_GEN_ADDRESS_KIND_ETHEREUM],
167
+ });
168
+ if (!registered) {
169
+ return { ok: false, reason: 'KeyGen is not registered with MPA wallet.' };
170
+ }
171
+ const sub = await client.readContract({
172
+ address: mpa,
173
+ abi: MPA_WALLET_READ_ABI,
174
+ functionName: 'getSubscriptionStatus',
175
+ args: [keyGenId, KEY_GEN_ADDRESS_KIND_ETHEREUM],
176
+ });
177
+ const [, , , nodeCreditBalance, monthlyFee, , , fundedForCurrentMonth] = sub;
178
+ if (fundedForCurrentMonth) {
179
+ return { ok: false, reason: 'KeyGen billing month is already active.' };
180
+ }
181
+ if (monthlyFee === 0n) {
182
+ return { ok: false, reason: 'Monthly fee is zero; sync billing is not applicable.' };
183
+ }
184
+ if (nodeCreditBalance < monthlyFee) {
185
+ return {
186
+ ok: false,
187
+ reason: 'Credit pool balance is below the monthly fee; deposit first.',
188
+ };
189
+ }
190
+ const globalNonce = await resolveGlobalNonce(config, keyGenId, exec.data.billingAddress, parsed.data.globalNonce);
191
+ if (!globalNonce.ok)
192
+ return globalNonce;
193
+ return submitMpaProposal(config, {
194
+ keyGenResult: exec.data.keyGenResult,
195
+ purpose: parsed.data.purpose ?? 'Activate KeyGen MPA billing month',
196
+ useCustomGas: parsed.data.useCustomGas,
197
+ startingNonce: parsed.data.startingNonce,
198
+ actions: [
199
+ {
200
+ signature: 'syncBilling(string,string,uint256)',
201
+ contractAddress: mpa,
202
+ args: [
203
+ { name: 'keyGenId', type: 'string', value: keyGenId },
204
+ { name: 'addressKind', type: 'string', value: KEY_GEN_ADDRESS_KIND_ETHEREUM },
205
+ { name: 'globalNonceAtActivation', type: 'uint256', value: String(globalNonce.data) },
206
+ ],
207
+ },
208
+ ],
209
+ });
210
+ }
211
+ export async function createMpaOveragePurchaseMultiSignRequest(config, input) {
212
+ const parsed = MpaOveragePurchaseInputSchema.safeParse(input);
213
+ if (!parsed.success) {
214
+ return { ok: false, reason: 'Invalid MPA overage purchase input.' };
215
+ }
216
+ const exec = await resolveKeyGenExecutor(config, parsed.data.keyGenId);
217
+ if (!exec.ok)
218
+ return exec;
219
+ const client = getMpaPublicClient();
220
+ const mpa = MPA_WALLET_CONTRACT_CONFIG.contractAddress;
221
+ const keyGenId = parsed.data.keyGenId;
222
+ const signatureCount = BigInt(parsed.data.signatureCount);
223
+ if (signatureCount <= 0n) {
224
+ return { ok: false, reason: 'signatureCount must be positive.' };
225
+ }
226
+ const registered = await client.readContract({
227
+ address: mpa,
228
+ abi: MPA_WALLET_READ_ABI,
229
+ functionName: 'isKeyGenRegistered',
230
+ args: [keyGenId, KEY_GEN_ADDRESS_KIND_ETHEREUM],
231
+ });
232
+ if (!registered) {
233
+ return { ok: false, reason: 'KeyGen is not registered with MPA wallet.' };
234
+ }
235
+ const sub = await client.readContract({
236
+ address: mpa,
237
+ abi: MPA_WALLET_READ_ABI,
238
+ functionName: 'getSubscriptionStatus',
239
+ args: [keyGenId, KEY_GEN_ADDRESS_KIND_ETHEREUM],
240
+ });
241
+ const [, , , nodeCreditBalance, , , overageFeePerSignature, fundedForCurrentMonth] = sub;
242
+ if (!fundedForCurrentMonth) {
243
+ return { ok: false, reason: 'Billing month must be active before purchasing overage.' };
244
+ }
245
+ const requiredTopUp = await client.readContract({
246
+ address: mpa,
247
+ abi: MPA_WALLET_READ_ABI,
248
+ functionName: 'getRequiredMinimumTopUp',
249
+ args: [keyGenId, KEY_GEN_ADDRESS_KIND_ETHEREUM],
250
+ });
251
+ if (requiredTopUp > 0n) {
252
+ return { ok: false, reason: 'Minimum top-up is still required before overage purchase.' };
253
+ }
254
+ const overageTotalWei = signatureCount * overageFeePerSignature;
255
+ if (overageTotalWei <= 0n) {
256
+ return { ok: false, reason: 'Overage fee is zero.' };
257
+ }
258
+ const withdrawAuthority = await client.readContract({
259
+ address: mpa,
260
+ abi: MPA_WALLET_READ_ABI,
261
+ functionName: 'getKeyGenWithdrawAuthority',
262
+ args: [keyGenId, KEY_GEN_ADDRESS_KIND_ETHEREUM],
263
+ });
264
+ const isAuthority = isWithdrawAuthority(exec.data.billingAddress, withdrawAuthority);
265
+ const actions = [];
266
+ if (isAuthority) {
267
+ if (nodeCreditBalance < overageTotalWei) {
268
+ return {
269
+ ok: false,
270
+ reason: 'Insufficient credit pool balance for overage purchase.',
271
+ };
272
+ }
273
+ }
274
+ else {
275
+ await maybeAppendFeeTokenApprove(client, actions, exec.data.billingAddress, overageTotalWei);
276
+ }
277
+ actions.push({
278
+ signature: 'purchaseOverageSignatures(string,string,uint256)',
279
+ contractAddress: mpa,
280
+ args: [
281
+ { name: 'keyGenId', type: 'string', value: keyGenId },
282
+ { name: 'addressKind', type: 'string', value: KEY_GEN_ADDRESS_KIND_ETHEREUM },
283
+ { name: 'signatureCount', type: 'uint256', value: signatureCount.toString() },
284
+ ],
285
+ });
286
+ return submitMpaProposal(config, {
287
+ keyGenResult: exec.data.keyGenResult,
288
+ purpose: parsed.data.purpose ?? `Purchase ${signatureCount.toString()} MPA overage signature(s)`,
289
+ useCustomGas: parsed.data.useCustomGas,
290
+ startingNonce: parsed.data.startingNonce,
291
+ actions,
292
+ });
293
+ }
294
+ export async function registerVpnOnLinea(config, input) {
295
+ const parsed = MpaVpnHostInputSchema.safeParse(input);
296
+ if (!parsed.success) {
297
+ return { ok: false, reason: 'Invalid VPN registration input.' };
298
+ }
299
+ const exec = await resolveKeyGenExecutor(config, parsed.data.keyGenId);
300
+ if (!exec.ok)
301
+ return exec;
302
+ const vpnHost = await resolveVpnHost(config, parsed.data.hostIpAddress, parsed.data.nodeKey);
303
+ if (!vpnHost.ok)
304
+ return vpnHost;
305
+ const mpa = MPA_WALLET_CONTRACT_CONFIG.contractAddress;
306
+ return submitMpaProposal(config, {
307
+ keyGenResult: exec.data.keyGenResult,
308
+ purpose: parsed.data.purpose ?? 'Register VPN billing account on Linea',
309
+ useCustomGas: parsed.data.useCustomGas,
310
+ startingNonce: parsed.data.startingNonce,
311
+ actions: [
312
+ {
313
+ signature: 'registerVpn(string,bytes32)',
314
+ contractAddress: mpa,
315
+ args: [
316
+ { name: 'nodeKey', type: 'string', value: vpnHost.data.nodeKey },
317
+ { name: 'hostBinding', type: 'bytes32', value: vpnHost.data.hostBinding },
318
+ ],
319
+ },
320
+ ],
321
+ });
322
+ }
323
+ export async function createMpaVpnDepositMultiSignRequest(config, input) {
324
+ const parsed = MpaVpnDepositInputSchema.safeParse(input);
325
+ if (!parsed.success) {
326
+ return { ok: false, reason: 'Invalid MPA VPN deposit input.' };
327
+ }
328
+ const exec = await resolveKeyGenExecutor(config, parsed.data.keyGenId);
329
+ if (!exec.ok)
330
+ return exec;
331
+ const vpnHost = await resolveVpnHost(config, parsed.data.hostIpAddress, parsed.data.nodeKey);
332
+ if (!vpnHost.ok)
333
+ return vpnHost;
334
+ const amountWei = BigInt(parsed.data.amountWei);
335
+ if (amountWei <= 0n) {
336
+ return { ok: false, reason: 'amountWei must be positive.' };
337
+ }
338
+ const client = getMpaPublicClient();
339
+ const mpa = MPA_WALLET_CONTRACT_CONFIG.contractAddress;
340
+ const actions = [];
341
+ await maybeAppendFeeTokenApprove(client, actions, exec.data.billingAddress, amountWei);
342
+ actions.push({
343
+ signature: 'depositVpn(string,bytes32,uint256,bool)',
344
+ contractAddress: mpa,
345
+ args: [
346
+ { name: 'nodeKey', type: 'string', value: vpnHost.data.nodeKey },
347
+ { name: 'hostBinding', type: 'bytes32', value: vpnHost.data.hostBinding },
348
+ { name: 'amount', type: 'uint256', value: amountWei.toString() },
349
+ { name: 'activate', type: 'bool', value: String(parsed.data.activateOnDeposit ?? false) },
350
+ ],
351
+ });
352
+ return submitMpaProposal(config, {
353
+ keyGenResult: exec.data.keyGenResult,
354
+ purpose: parsed.data.purpose ??
355
+ (parsed.data.activateOnDeposit
356
+ ? 'Deposit VPN credits and activate billing month'
357
+ : 'Deposit VPN credits'),
358
+ useCustomGas: parsed.data.useCustomGas,
359
+ startingNonce: parsed.data.startingNonce,
360
+ actions,
361
+ });
362
+ }
363
+ export async function createMpaSyncVpnBillingMultiSignRequest(config, input) {
364
+ const parsed = MpaVpnHostInputSchema.safeParse(input);
365
+ if (!parsed.success) {
366
+ return { ok: false, reason: 'Invalid MPA VPN sync billing input.' };
367
+ }
368
+ const exec = await resolveKeyGenExecutor(config, parsed.data.keyGenId);
369
+ if (!exec.ok)
370
+ return exec;
371
+ const vpnHost = await resolveVpnHost(config, parsed.data.hostIpAddress, parsed.data.nodeKey);
372
+ if (!vpnHost.ok)
373
+ return vpnHost;
374
+ const client = getMpaPublicClient();
375
+ const mpa = MPA_WALLET_CONTRACT_CONFIG.contractAddress;
376
+ const vpnSub = await client.readContract({
377
+ address: mpa,
378
+ abi: MPA_WALLET_READ_ABI,
379
+ functionName: 'getVpnSubscriptionStatus',
380
+ args: [vpnHost.data.nodeKey, vpnHost.data.hostBinding],
381
+ });
382
+ const [registered, , vpnCreditBalance, vpnMonthlyFee, fundedForCurrentMonth] = vpnSub;
383
+ if (!registered) {
384
+ return { ok: false, reason: 'VPN billing account is not registered.' };
385
+ }
386
+ if (fundedForCurrentMonth) {
387
+ return { ok: false, reason: 'VPN billing month is already active.' };
388
+ }
389
+ if (vpnMonthlyFee === 0n) {
390
+ return { ok: false, reason: 'VPN monthly fee is zero; sync billing is not applicable.' };
391
+ }
392
+ if (vpnCreditBalance < vpnMonthlyFee) {
393
+ return {
394
+ ok: false,
395
+ reason: 'VPN credit pool balance is below the monthly fee; deposit first.',
396
+ };
397
+ }
398
+ const withdrawAuthority = await client.readContract({
399
+ address: mpa,
400
+ abi: MPA_WALLET_READ_ABI,
401
+ functionName: 'getVpnWithdrawAuthority',
402
+ args: [vpnHost.data.nodeKey, vpnHost.data.hostBinding],
403
+ });
404
+ if (!isWithdrawAuthority(exec.data.billingAddress, withdrawAuthority)) {
405
+ return {
406
+ ok: false,
407
+ reason: 'KeyGen executor is not the VPN withdraw authority; sync requires authority.',
408
+ };
409
+ }
410
+ return submitMpaProposal(config, {
411
+ keyGenResult: exec.data.keyGenResult,
412
+ purpose: parsed.data.purpose ?? 'Activate VPN MPA billing month',
413
+ useCustomGas: parsed.data.useCustomGas,
414
+ startingNonce: parsed.data.startingNonce,
415
+ actions: [
416
+ {
417
+ signature: 'syncVpnBilling(string,bytes32)',
418
+ contractAddress: mpa,
419
+ args: [
420
+ { name: 'nodeKey', type: 'string', value: vpnHost.data.nodeKey },
421
+ { name: 'hostBinding', type: 'bytes32', value: vpnHost.data.hostBinding },
422
+ ],
423
+ },
424
+ ],
425
+ });
426
+ }
427
+ export async function getMpaVpnStatus(config, input) {
428
+ const parsed = MpaVpnStatusInputSchema.safeParse(input);
429
+ if (!parsed.success) {
430
+ return { ok: false, reason: 'Invalid MPA VPN status input.' };
431
+ }
432
+ const vpnHost = await resolveVpnHost(config, parsed.data.hostIpAddress, parsed.data.nodeKey);
433
+ if (!vpnHost.ok)
434
+ return vpnHost;
435
+ const client = getMpaPublicClient();
436
+ const mpa = MPA_WALLET_CONTRACT_CONFIG.contractAddress;
437
+ try {
438
+ const { feeToken, symbol, decimals } = await fetchFeeTokenMeta(client);
439
+ void feeToken;
440
+ const sub = await client.readContract({
441
+ address: mpa,
442
+ abi: MPA_WALLET_READ_ABI,
443
+ functionName: 'getVpnSubscriptionStatus',
444
+ args: [vpnHost.data.nodeKey, vpnHost.data.hostBinding],
445
+ });
446
+ const [registered, paidThroughMonth, vpnCreditBalance, vpnMonthlyFee, fundedForCurrentMonth] = sub;
447
+ return {
448
+ ok: true,
449
+ data: {
450
+ registered,
451
+ nodeKey: vpnHost.data.nodeKey,
452
+ hostBinding: vpnHost.data.hostBinding,
453
+ fundedForCurrentMonth,
454
+ paidThroughMonth: Number(paidThroughMonth),
455
+ vpnCreditBalance: formatUnits(vpnCreditBalance, decimals),
456
+ vpnMonthlyFee: formatUnits(vpnMonthlyFee, decimals),
457
+ feeTokenSymbol: symbol,
458
+ },
459
+ };
460
+ }
461
+ catch (e) {
462
+ return {
463
+ ok: true,
464
+ data: {
465
+ registered: false,
466
+ nodeKey: vpnHost.data.nodeKey,
467
+ hostBinding: vpnHost.data.hostBinding,
468
+ error: e instanceof Error ? e.message : 'Failed to load VPN billing status',
469
+ },
470
+ };
471
+ }
472
+ }
473
+ //# sourceMappingURL=mpa-billing-ops.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mpa-billing-ops.js","sourceRoot":"","sources":["../../../src/core/mpc/mpa-billing-ops.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"mpa-top-up.d.ts","sourceRoot":"","sources":["../../../src/core/mpc/mpa-top-up.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,wBAAwB,CAAC;AAO1D,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAsC5C,wBAAsB,kBAAkB,CACvC,MAAM,EAAE,aAAa,EACrB,KAAK,EAAE,OAAO,GACZ,OAAO,CACT,SAAS,CAAC;IACT,UAAU,EAAE,OAAO,CAAC;IACpB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CACf,CAAC,CACF,CA8GA;AAED,wBAAsB,8BAA8B,CACnD,MAAM,EAAE,aAAa,EACrB,KAAK,EAAE,OAAO,GACZ,OAAO,CAAC,SAAS,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAC,CAAC,CAAC,CAkHzC"}
1
+ {"version":3,"file":"mpa-top-up.d.ts","sourceRoot":"","sources":["../../../src/core/mpc/mpa-top-up.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,wBAAwB,CAAC;AAQ1D,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,cAAc,CAAC;AAqC5C,wBAAsB,kBAAkB,CACvC,MAAM,EAAE,aAAa,EACrB,KAAK,EAAE,OAAO,GACZ,OAAO,CACT,SAAS,CAAC;IACT,UAAU,EAAE,OAAO,CAAC;IACpB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CACf,CAAC,CACF,CA+GA;AAED,wBAAsB,8BAA8B,CACnD,MAAM,EAAE,aAAa,EACrB,KAAK,EAAE,OAAO,GACZ,OAAO,CAAC,SAAS,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAC,CAAC,CAAC,CA2GzC"}
@@ -1,8 +1,7 @@
1
1
  import { createPublicClient, defineChain, formatUnits, getAddress, http, } from 'viem';
2
- import { ERC20_ALLOWANCE_ABI, KEY_GEN_ADDRESS_KIND_ETHEREUM, MPA_WALLET_CONTRACT_CONFIG, MPA_WALLET_READ_ABI, } from '../../config/mpa-wallet.js';
2
+ import { ERC20_ALLOWANCE_ABI, KEY_GEN_ADDRESS_KIND_ETHEREUM, MPA_DEPOSIT_ONLY_NONCE, MPA_WALLET_CONTRACT_CONFIG, MPA_WALLET_READ_ABI, } from '../../config/mpa-wallet.js';
3
3
  import { MpaTopUpInputSchema, MpaWalletStatusInputSchema } from './schemas.js';
4
4
  import { fetchGlobalNonceByKeyGenId, fetchKeyGenResult } from '../keygen.js';
5
- import { nodeId } from '../general.js';
6
5
  import { buildMultiSignProposal } from '../../evm/proposal-builder.js';
7
6
  import { signAndSubmitMultiSignRequest } from './sign-request-body.js';
8
7
  import { assertExecutorNativeSufficientForProposal } from './gas-preflight.js';
@@ -60,7 +59,7 @@ export async function getMpaWalletStatus(config, input) {
60
59
  address: contractAddress,
61
60
  abi: MPA_WALLET_READ_ABI,
62
61
  functionName: 'isKeyGenRegistered',
63
- args: [keyGenId, KEY_GEN_ADDRESS_KIND_ETHEREUM, billingAddress],
62
+ args: [keyGenId, KEY_GEN_ADDRESS_KIND_ETHEREUM],
64
63
  });
65
64
  if (!registered) {
66
65
  return { ok: true, data: { registered: false, globalNonce } };
@@ -69,9 +68,9 @@ export async function getMpaWalletStatus(config, input) {
69
68
  address: contractAddress,
70
69
  abi: MPA_WALLET_READ_ABI,
71
70
  functionName: 'getSubscriptionStatus',
72
- args: [keyGenId, KEY_GEN_ADDRESS_KIND_ETHEREUM, billingAddress],
71
+ args: [keyGenId, KEY_GEN_ADDRESS_KIND_ETHEREUM],
73
72
  });
74
- const [, , , signatureCountAtMonthStart, nodeCreditBalance, monthlyFee, freeSignaturesPerMonth, , fundedForCurrentMonth] = sub;
73
+ const [, , signatureCountAtMonthStart, nodeCreditBalance, monthlyFee, freeSignaturesPerMonth, , fundedForCurrentMonth] = sub;
75
74
  const currentNonce = globalNonce ??
76
75
  (await client.getTransactionCount({ address: billingAddress, blockTag: 'pending' }));
77
76
  const [remainingNonces, requiredTopUp] = await Promise.all([
@@ -79,13 +78,13 @@ export async function getMpaWalletStatus(config, input) {
79
78
  address: contractAddress,
80
79
  abi: MPA_WALLET_READ_ABI,
81
80
  functionName: 'getRemainingNonces',
82
- args: [keyGenId, KEY_GEN_ADDRESS_KIND_ETHEREUM, billingAddress, BigInt(currentNonce)],
81
+ args: [keyGenId, KEY_GEN_ADDRESS_KIND_ETHEREUM, BigInt(currentNonce)],
83
82
  }),
84
83
  client.readContract({
85
84
  address: contractAddress,
86
85
  abi: MPA_WALLET_READ_ABI,
87
86
  functionName: 'getRequiredMinimumTopUp',
88
- args: [keyGenId, KEY_GEN_ADDRESS_KIND_ETHEREUM, billingAddress],
87
+ args: [keyGenId, KEY_GEN_ADDRESS_KIND_ETHEREUM],
89
88
  }),
90
89
  ]);
91
90
  const feeToken = await client.readContract({
@@ -148,9 +147,6 @@ export async function createMpaTopUpMultiSignRequest(config, input) {
148
147
  if (!eth) {
149
148
  return { ok: false, reason: 'KeyGen has no ethereum address.' };
150
149
  }
151
- const nk = await nodeId(config);
152
- if (!nk.ok)
153
- return nk;
154
150
  const client = getMpaPublicClient();
155
151
  const billingAddress = getAddress(eth.startsWith('0x') ? eth : `0x${eth}`);
156
152
  const mpa = MPA_WALLET_CONTRACT_CONFIG.contractAddress;
@@ -159,18 +155,15 @@ export async function createMpaTopUpMultiSignRequest(config, input) {
159
155
  address: mpa,
160
156
  abi: MPA_WALLET_READ_ABI,
161
157
  functionName: 'getSubscriptionStatus',
162
- args: [keyGenId, KEY_GEN_ADDRESS_KIND_ETHEREUM, billingAddress],
158
+ args: [keyGenId, KEY_GEN_ADDRESS_KIND_ETHEREUM],
159
+ });
160
+ const monthlyFee = sub[4];
161
+ const requiredTopUp = await client.readContract({
162
+ address: mpa,
163
+ abi: MPA_WALLET_READ_ABI,
164
+ functionName: 'getRequiredMinimumTopUp',
165
+ args: [keyGenId, KEY_GEN_ADDRESS_KIND_ETHEREUM],
163
166
  });
164
- const monthlyFee = sub[5];
165
- const [requiredTopUp, globalNonceResult] = await Promise.all([
166
- client.readContract({
167
- address: mpa,
168
- abi: MPA_WALLET_READ_ABI,
169
- functionName: 'getRequiredMinimumTopUp',
170
- args: [keyGenId, KEY_GEN_ADDRESS_KIND_ETHEREUM, billingAddress],
171
- }),
172
- fetchGlobalNonceByKeyGenId(config, keyGenId),
173
- ]);
174
167
  const feeToken = await client.readContract({
175
168
  address: mpa,
176
169
  abi: MPA_WALLET_READ_ABI,
@@ -189,7 +182,7 @@ export async function createMpaTopUpMultiSignRequest(config, input) {
189
182
  reason: `Amount below required minimum top-up (${formatUnits(minWei, Number(decimals ?? 18))}).`,
190
183
  };
191
184
  }
192
- const globalNonceAtActivation = globalNonceResult.ok ? globalNonceResult.data : 0;
185
+ const globalNonceAtActivation = MPA_DEPOSIT_ONLY_NONCE;
193
186
  const allowance = await client.readContract({
194
187
  address: feeToken,
195
188
  abi: ERC20_ALLOWANCE_ABI,
@@ -208,14 +201,13 @@ export async function createMpaTopUpMultiSignRequest(config, input) {
208
201
  });
209
202
  }
210
203
  actions.push({
211
- signature: 'deposit(string,string,string,uint256,uint256)',
204
+ signature: 'deposit(string,string,uint256,uint256)',
212
205
  contractAddress: mpa,
213
206
  args: [
214
207
  { name: 'keyGenId', type: 'string', value: keyGenId },
215
208
  { name: 'addressKind', type: 'string', value: KEY_GEN_ADDRESS_KIND_ETHEREUM },
216
- { name: 'nodeKey', type: 'string', value: nk.data.nodeId },
217
209
  { name: 'amount', type: 'uint256', value: amountWei.toString() },
218
- { name: 'globalNonceAtActivation', type: 'uint256', value: String(globalNonceAtActivation) },
210
+ { name: 'globalNonceAtActivation', type: 'uint256', value: globalNonceAtActivation },
219
211
  ],
220
212
  });
221
213
  const built = await buildMultiSignProposal(config, {
@@ -1 +1 @@
1
- {"version":3,"file":"mpa-top-up.js","sourceRoot":"","sources":["../../../src/core/mpc/mpa-top-up.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,kBAAkB,EAClB,WAAW,EACX,WAAW,EACX,UAAU,EACV,IAAI,GAEJ,MAAM,MAAM,CAAC;AAEd,OAAO,EACN,mBAAmB,EACnB,6BAA6B,EAC7B,0BAA0B,EAC1B,mBAAmB,GACnB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAC,mBAAmB,EAAE,0BAA0B,EAAC,MAAM,cAAc,CAAC;AAC7E,OAAO,EAAC,0BAA0B,EAAE,iBAAiB,EAAC,MAAM,cAAc,CAAC;AAC3E,OAAO,EAAC,MAAM,EAAC,MAAM,eAAe,CAAC;AACrC,OAAO,EAAC,sBAAsB,EAAC,MAAM,+BAA+B,CAAC;AACrE,OAAO,EAAC,6BAA6B,EAAC,MAAM,wBAAwB,CAAC;AACrE,OAAO,EAAC,yCAAyC,EAAC,MAAM,oBAAoB,CAAC;AAE7E,MAAM,yBAAyB,GAAG;IACjC;QACC,MAAM,EAAE,EAAE;QACV,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,CAAC,EAAC,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAC,CAAC;QAC7D,eAAe,EAAE,MAAM;QACvB,IAAI,EAAE,UAAU;KAChB;IACD;QACC,MAAM,EAAE,EAAE;QACV,IAAI,EAAE,UAAU;QAChB,OAAO,EAAE,CAAC,EAAC,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,EAAC,CAAC;QAC3D,eAAe,EAAE,MAAM;QACvB,IAAI,EAAE,UAAU;KAChB;CACQ,CAAC;AAEX,SAAS,kBAAkB;IAC1B,MAAM,KAAK,GAAG,WAAW,CAAC;QACzB,EAAE,EAAE,0BAA0B,CAAC,OAAO;QACtC,IAAI,EAAE,eAAe;QACrB,cAAc,EAAE,EAAC,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAC;QAC5D,OAAO,EAAE,EAAC,OAAO,EAAE,EAAC,IAAI,EAAE,CAAC,0BAA0B,CAAC,MAAM,CAAC,EAAC,EAAC;KAC/D,CAAC,CAAC;IACH,OAAO,kBAAkB,CAAC;QACzB,KAAK;QACL,SAAS,EAAE,IAAI,CAAC,0BAA0B,CAAC,MAAM,CAAC;KAClD,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACvC,MAAqB,EACrB,KAAc;IAed,MAAM,MAAM,GAAG,0BAA0B,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAC3D,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACrB,OAAO;YACN,EAAE,EAAE,KAAK;YACT,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,IAAI,kCAAkC;SAC7E,CAAC;IACH,CAAC;IAED,MAAM,EAAE,GAAG,MAAM,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACjE,IAAI,CAAC,EAAE,CAAC,EAAE;QAAE,OAAO,EAAE,CAAC;IACtB,MAAM,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,EAAE,CAAC;IAC5C,IAAI,CAAC,GAAG,EAAE,CAAC;QACV,OAAO,EAAC,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,iCAAiC,EAAC,CAAC;IAC/D,CAAC;IAED,MAAM,iBAAiB,GAAG,MAAM,0BAA0B,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACzF,MAAM,WAAW,GAAG,iBAAiB,CAAC,EAAE,CAAC,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;IAE9E,MAAM,MAAM,GAAG,kBAAkB,EAAE,CAAC;IACpC,MAAM,cAAc,GAAG,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAY,CAAC;IACtF,MAAM,eAAe,GAAG,0BAA0B,CAAC,eAA0B,CAAC;IAC9E,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC;IAEtC,IAAI,CAAC;QACJ,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC;YAC5C,OAAO,EAAE,eAAe;YACxB,GAAG,EAAE,mBAAmB;YACxB,YAAY,EAAE,oBAAoB;YAClC,IAAI,EAAE,CAAC,QAAQ,EAAE,6BAA6B,EAAE,cAAc,CAAC;SAC/D,CAAC,CAAC;QACH,IAAI,CAAC,UAAU,EAAE,CAAC;YACjB,OAAO,EAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EAAC,UAAU,EAAE,KAAK,EAAE,WAAW,EAAC,EAAC,CAAC;QAC3D,CAAC;QAED,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC;YACrC,OAAO,EAAE,eAAe;YACxB,GAAG,EAAE,mBAAmB;YACxB,YAAY,EAAE,uBAAuB;YACrC,IAAI,EAAE,CAAC,QAAQ,EAAE,6BAA6B,EAAE,cAAc,CAAC;SAC/D,CAAC,CAAC;QACH,MAAM,CAAC,EAAE,AAAD,EAAG,AAAD,EAAG,0BAA0B,EAAE,iBAAiB,EAAE,UAAU,EAAE,sBAAsB,EAAE,AAAD,EAAG,qBAAqB,CAAC,GAAG,GAAG,CAAC;QAE/H,MAAM,YAAY,GACjB,WAAW;YACX,CAAC,MAAM,MAAM,CAAC,mBAAmB,CAAC,EAAC,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,SAAS,EAAC,CAAC,CAAC,CAAC;QAEpF,MAAM,CAAC,eAAe,EAAE,aAAa,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YAC1D,MAAM,CAAC,YAAY,CAAC;gBACnB,OAAO,EAAE,eAAe;gBACxB,GAAG,EAAE,mBAAmB;gBACxB,YAAY,EAAE,oBAAoB;gBAClC,IAAI,EAAE,CAAC,QAAQ,EAAE,6BAA6B,EAAE,cAAc,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;aACrF,CAAC;YACF,MAAM,CAAC,YAAY,CAAC;gBACnB,OAAO,EAAE,eAAe;gBACxB,GAAG,EAAE,mBAAmB;gBACxB,YAAY,EAAE,yBAAyB;gBACvC,IAAI,EAAE,CAAC,QAAQ,EAAE,6BAA6B,EAAE,cAAc,CAAC;aAC/D,CAAC;SACF,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC;YAC1C,OAAO,EAAE,eAAe;YACxB,GAAG,EAAE,mBAAmB;YACxB,YAAY,EAAE,WAAW;SACzB,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YAC5C,MAAM,CAAC,YAAY,CAAC;gBACnB,OAAO,EAAE,QAAQ;gBACjB,GAAG,EAAE,yBAAyB;gBAC9B,YAAY,EAAE,QAAQ;aACtB,CAAC;YACF,MAAM,CAAC,YAAY,CAAC;gBACnB,OAAO,EAAE,QAAQ;gBACjB,GAAG,EAAE,yBAAyB;gBAC9B,YAAY,EAAE,UAAU;aACxB,CAAC;SACF,CAAC,CAAC;QACH,MAAM,CAAC,GAAG,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC;QAEjC,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,YAAY,GAAG,MAAM,CAAC,0BAA0B,CAAC,CAAC,CAAC;QACrF,MAAM,QAAQ,GAAG,qBAAqB;YACrC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,sBAAsB,CAAC,GAAG,aAAa,CAAC;YAC7D,CAAC,CAAC,CAAC,CAAC;QAEL,OAAO;YACN,EAAE,EAAE,IAAI;YACR,IAAI,EAAE;gBACL,UAAU,EAAE,IAAI;gBAChB,oBAAoB,EAAE,QAAQ;gBAC9B,gBAAgB,EAAE,WAAW,CAAC,iBAAiB,EAAE,CAAC,CAAC;gBACnD,cAAc,EAAE,MAAM,IAAI,OAAO;gBACjC,eAAe,EAAE,MAAM,CAAC,eAAe,CAAC;gBACxC,WAAW,EAAE,YAAY;gBACzB,uBAAuB,EAAE,aAAa,CAAC,QAAQ,EAAE;gBACjD,UAAU,EAAE,WAAW,CAAC,UAAU,EAAE,CAAC,CAAC;gBACtC,gBAAgB,EAAE,iBAAiB,GAAG,EAAE;aACxC;SACD,CAAC;IACH,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACZ,OAAO;YACN,EAAE,EAAE,IAAI;YACR,IAAI,EAAE;gBACL,UAAU,EAAE,KAAK;gBACjB,KAAK,EAAE,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,kCAAkC;gBAC1E,WAAW;aACX;SACD,CAAC;IACH,CAAC;AACF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,8BAA8B,CACnD,MAAqB,EACrB,KAAc;IAEd,MAAM,MAAM,GAAG,mBAAmB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACpD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACrB,OAAO,EAAC,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,2BAA2B,EAAC,CAAC;IACzD,CAAC;IAED,MAAM,EAAE,GAAG,MAAM,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACjE,IAAI,CAAC,EAAE,CAAC,EAAE;QAAE,OAAO,EAAE,CAAC;IACtB,MAAM,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,EAAE,CAAC;IAC5C,IAAI,CAAC,GAAG,EAAE,CAAC;QACV,OAAO,EAAC,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,iCAAiC,EAAC,CAAC;IAC/D,CAAC;IAED,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC;IAChC,IAAI,CAAC,EAAE,CAAC,EAAE;QAAE,OAAO,EAAE,CAAC;IAEtB,MAAM,MAAM,GAAG,kBAAkB,EAAE,CAAC;IACpC,MAAM,cAAc,GAAG,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAY,CAAC;IACtF,MAAM,GAAG,GAAG,0BAA0B,CAAC,eAA0B,CAAC;IAClE,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC;IAEtC,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC;QACrC,OAAO,EAAE,GAAG;QACZ,GAAG,EAAE,mBAAmB;QACxB,YAAY,EAAE,uBAAuB;QACrC,IAAI,EAAE,CAAC,QAAQ,EAAE,6BAA6B,EAAE,cAAc,CAAC;KAC/D,CAAC,CAAC;IACH,MAAM,UAAU,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;IAE1B,MAAM,CAAC,aAAa,EAAE,iBAAiB,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAC5D,MAAM,CAAC,YAAY,CAAC;YACnB,OAAO,EAAE,GAAG;YACZ,GAAG,EAAE,mBAAmB;YACxB,YAAY,EAAE,yBAAyB;YACvC,IAAI,EAAE,CAAC,QAAQ,EAAE,6BAA6B,EAAE,cAAc,CAAC;SAC/D,CAAC;QACF,0BAA0B,CAAC,MAAM,EAAE,QAAQ,CAAC;KAC5C,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC;QAC1C,OAAO,EAAE,GAAG;QACZ,GAAG,EAAE,mBAAmB;QACxB,YAAY,EAAE,WAAW;KACzB,CAAC,CAAC;IACH,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC;QAC1C,OAAO,EAAE,QAAQ;QACjB,GAAG,EAAE,yBAAyB;QAC9B,YAAY,EAAE,UAAU;KACxB,CAAC,CAAC;IACH,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAChD,MAAM,MAAM,GAAG,aAAa,GAAG,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,UAAU,CAAC;IAC/D,IAAI,SAAS,GAAG,MAAM,EAAE,CAAC;QACxB,OAAO;YACN,EAAE,EAAE,KAAK;YACT,MAAM,EAAE,yCAAyC,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,IAAI;SAChG,CAAC;IACH,CAAC;IAED,MAAM,uBAAuB,GAAG,iBAAiB,CAAC,EAAE,CAAC,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAElF,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC;QAC3C,OAAO,EAAE,QAAQ;QACjB,GAAG,EAAE,mBAAmB;QACxB,YAAY,EAAE,WAAW;QACzB,IAAI,EAAE,CAAC,cAAc,EAAE,GAAG,CAAC;KAC3B,CAAC,CAAC;IAEH,MAAM,OAAO,GAIP,EAAE,CAAC;IAET,IAAI,SAAS,GAAG,SAAS,EAAE,CAAC;QAC3B,OAAO,CAAC,IAAI,CAAC;YACZ,SAAS,EAAE,0BAA0B;YACrC,eAAe,EAAE,QAAQ;YACzB,IAAI,EAAE;gBACL,EAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAC;gBAC9C,EAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,CAAC,QAAQ,EAAE,EAAC;aAC9D;SACD,CAAC,CAAC;IACJ,CAAC;IAED,OAAO,CAAC,IAAI,CAAC;QACZ,SAAS,EAAE,+CAA+C;QAC1D,eAAe,EAAE,GAAG;QACpB,IAAI,EAAE;YACL,EAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAC;YACnD,EAAC,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,6BAA6B,EAAC;YAC3E,EAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,EAAC;YACxD,EAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,CAAC,QAAQ,EAAE,EAAC;YAC9D,EAAC,IAAI,EAAE,yBAAyB,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,CAAC,uBAAuB,CAAC,EAAC;SAC1F;KACD,CAAC,CAAC;IAEH,MAAM,KAAK,GAAG,MAAM,sBAAsB,CAAC,MAAM,EAAE;QAClD,YAAY,EAAE,EAAE,CAAC,IAAI;QACrB,OAAO,EAAE,0BAA0B,CAAC,OAAO;QAC3C,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,IAAI,4BAA4B;QAC5D,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,YAAY;QACtC,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,aAAa;QACxC,OAAO;KACP,CAAC,CAAC;IACH,IAAI,CAAC,KAAK,CAAC,EAAE;QAAE,OAAO,KAAK,CAAC;IAE5B,MAAM,SAAS,GAAG,MAAM,yCAAyC,CAAC,MAAM,EAAE;QACzE,YAAY,EAAE,EAAE,CAAC,IAAI;QACrB,OAAO,EAAE,0BAA0B,CAAC,OAAO;QAC3C,QAAQ,EAAE,KAAK,CAAC,IAAI;KACpB,CAAC,CAAC;IACH,IAAI,CAAC,SAAS,CAAC,EAAE;QAAE,OAAO,SAAS,CAAC;IAEpC,OAAO,6BAA6B,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACvE,CAAC"}
1
+ {"version":3,"file":"mpa-top-up.js","sourceRoot":"","sources":["../../../src/core/mpc/mpa-top-up.ts"],"names":[],"mappings":"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"}