@continuumdao/continuum-node-sdk 1.2.27 → 1.2.29

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 (71) hide show
  1. package/dist/config/mpa-wallet.d.ts +141 -29
  2. package/dist/config/mpa-wallet.d.ts.map +1 -1
  3. package/dist/config/mpa-wallet.js +75 -17
  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 +2 -0
  14. package/dist/core/mpc/mpa-top-up.d.ts.map +1 -1
  15. package/dist/core/mpc/mpa-top-up.js +55 -43
  16. package/dist/core/mpc/mpa-top-up.js.map +1 -1
  17. package/dist/core/mpc/register-keygen.d.ts.map +1 -1
  18. package/dist/core/mpc/register-keygen.js +6 -3
  19. package/dist/core/mpc/register-keygen.js.map +1 -1
  20. package/dist/core/mpc/schemas.d.ts +47 -0
  21. package/dist/core/mpc/schemas.d.ts.map +1 -1
  22. package/dist/core/mpc/schemas.js +35 -0
  23. package/dist/core/mpc/schemas.js.map +1 -1
  24. package/dist/core/vpn/schemas.d.ts +181 -0
  25. package/dist/core/vpn/schemas.d.ts.map +1 -0
  26. package/dist/core/vpn/schemas.js +112 -0
  27. package/dist/core/vpn/schemas.js.map +1 -0
  28. package/dist/core/vpn/vpn-admin.d.ts +22 -0
  29. package/dist/core/vpn/vpn-admin.d.ts.map +1 -0
  30. package/dist/core/vpn/vpn-admin.js +88 -0
  31. package/dist/core/vpn/vpn-admin.js.map +1 -0
  32. package/dist/core/vpn/vpn-egress.d.ts +30 -0
  33. package/dist/core/vpn/vpn-egress.d.ts.map +1 -0
  34. package/dist/core/vpn/vpn-egress.js +91 -0
  35. package/dist/core/vpn/vpn-egress.js.map +1 -0
  36. package/dist/core/vpn/vpn-files.d.ts +14 -0
  37. package/dist/core/vpn/vpn-files.d.ts.map +1 -0
  38. package/dist/core/vpn/vpn-files.js +32 -0
  39. package/dist/core/vpn/vpn-files.js.map +1 -0
  40. package/dist/core/vpn/vpn-host-binding.d.ts +4 -0
  41. package/dist/core/vpn/vpn-host-binding.d.ts.map +1 -0
  42. package/dist/core/vpn/vpn-host-binding.js +6 -0
  43. package/dist/core/vpn/vpn-host-binding.js.map +1 -0
  44. package/dist/core/vpn/vpn-parse.d.ts +115 -0
  45. package/dist/core/vpn/vpn-parse.d.ts.map +1 -0
  46. package/dist/core/vpn/vpn-parse.js +238 -0
  47. package/dist/core/vpn/vpn-parse.js.map +1 -0
  48. package/dist/core/vpn/vpn-signed.d.ts +13 -0
  49. package/dist/core/vpn/vpn-signed.d.ts.map +1 -0
  50. package/dist/core/vpn/vpn-signed.js +39 -0
  51. package/dist/core/vpn/vpn-signed.js.map +1 -0
  52. package/dist/index.d.ts +5 -0
  53. package/dist/index.d.ts.map +1 -1
  54. package/dist/index.js +5 -0
  55. package/dist/index.js.map +1 -1
  56. package/dist/mcp/index.d.ts +1 -1
  57. package/dist/mcp/index.d.ts.map +1 -1
  58. package/dist/mcp/index.js +1 -1
  59. package/dist/mcp/index.js.map +1 -1
  60. package/dist/mcp/mpc.d.ts.map +1 -1
  61. package/dist/mcp/mpc.js +33 -2
  62. package/dist/mcp/mpc.js.map +1 -1
  63. package/dist/mcp/register.d.ts +1 -0
  64. package/dist/mcp/register.d.ts.map +1 -1
  65. package/dist/mcp/register.js +4 -0
  66. package/dist/mcp/register.js.map +1 -1
  67. package/dist/mcp/vpn.d.ts +4 -0
  68. package/dist/mcp/vpn.d.ts.map +1 -0
  69. package/dist/mcp/vpn.js +107 -0
  70. package/dist/mcp/vpn.js.map +1 -0
  71. package/package.json +1 -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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"}
@@ -8,6 +8,8 @@ export declare function getMpaWalletStatus(config: NodeSdkConfig, input: unknown
8
8
  feeTokenSymbol?: string;
9
9
  remainingNonces?: number;
10
10
  globalNonce?: number;
11
+ requiredMinimumTopUpWei?: string;
12
+ monthlyFee?: string;
11
13
  error?: string;
12
14
  }>>;
13
15
  export declare function createMpaTopUpMultiSignRequest(config: NodeSdkConfig, input: unknown): Promise<SdkResult<{
@@ -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;AAM1D,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,KAAK,CAAC,EAAE,MAAM,CAAC;CACf,CAAC,CACF,CAmHA;AAED,wBAAsB,8BAA8B,CACnD,MAAM,EAAE,aAAa,EACrB,KAAK,EAAE,OAAO,GACZ,OAAO,CAAC,SAAS,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAC,CAAC,CAAC,CAuFzC"}
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"}