@aastar/sdk 0.24.1 → 0.24.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/UserClient-4MRK2D7W.cjs +15 -0
- package/dist/{UserClient-S6LS3CB6.cjs.map → UserClient-4MRK2D7W.cjs.map} +1 -1
- package/dist/UserClient-DPJ6E2XL.js +6 -0
- package/dist/{UserClient-KYDCMAIU.js.map → UserClient-DPJ6E2XL.js.map} +1 -1
- package/dist/account.cjs +7 -7
- package/dist/account.js +2 -2
- package/dist/admin.cjs +3 -3
- package/dist/admin.js +2 -2
- package/dist/airaccount.cjs +102 -102
- package/dist/airaccount.js +2 -2
- package/dist/channel.cjs +6 -6
- package/dist/channel.js +2 -2
- package/dist/{chunk-BOVDJSMK.cjs → chunk-3FRNYRWI.cjs} +26 -26
- package/dist/{chunk-BOVDJSMK.cjs.map → chunk-3FRNYRWI.cjs.map} +1 -1
- package/dist/{chunk-VEAYV52I.cjs → chunk-4Q6FADF6.cjs} +9 -9
- package/dist/{chunk-VEAYV52I.cjs.map → chunk-4Q6FADF6.cjs.map} +1 -1
- package/dist/{chunk-654GQ7G7.js → chunk-7FLPD3V4.js} +3 -3
- package/dist/{chunk-654GQ7G7.js.map → chunk-7FLPD3V4.js.map} +1 -1
- package/dist/{chunk-2UC7UPHV.js → chunk-BPAAWQQA.js} +3 -3
- package/dist/{chunk-2UC7UPHV.js.map → chunk-BPAAWQQA.js.map} +1 -1
- package/dist/{chunk-BYVG7MO7.js → chunk-EEWLL7GE.js} +2 -2
- package/dist/{chunk-BYVG7MO7.js.map → chunk-EEWLL7GE.js.map} +1 -1
- package/dist/{chunk-D667CUUS.cjs → chunk-FUY4MHPM.cjs} +9 -9
- package/dist/{chunk-D667CUUS.cjs.map → chunk-FUY4MHPM.cjs.map} +1 -1
- package/dist/{chunk-HNJBQR5U.cjs → chunk-HP44S5U5.cjs} +5 -5
- package/dist/{chunk-HNJBQR5U.cjs.map → chunk-HP44S5U5.cjs.map} +1 -1
- package/dist/{chunk-MOJJ7QF6.cjs → chunk-IB3KOSHW.cjs} +2 -2
- package/dist/{chunk-MOJJ7QF6.cjs.map → chunk-IB3KOSHW.cjs.map} +1 -1
- package/dist/{chunk-VHY6R2PI.cjs → chunk-KYXXIKEI.cjs} +32 -32
- package/dist/{chunk-VHY6R2PI.cjs.map → chunk-KYXXIKEI.cjs.map} +1 -1
- package/dist/{chunk-A4ICWCHR.cjs → chunk-MANVOQY7.cjs} +5 -5
- package/dist/{chunk-A4ICWCHR.cjs.map → chunk-MANVOQY7.cjs.map} +1 -1
- package/dist/{chunk-NVYVTCHJ.cjs → chunk-MCDFQ5JH.cjs} +11 -11
- package/dist/{chunk-NVYVTCHJ.cjs.map → chunk-MCDFQ5JH.cjs.map} +1 -1
- package/dist/{chunk-7RVONA2R.js → chunk-O2CN77MV.js} +8 -8
- package/dist/{chunk-7RVONA2R.js.map → chunk-O2CN77MV.js.map} +1 -1
- package/dist/{chunk-DAMWXGKD.js → chunk-P3B6UTED.js} +3 -3
- package/dist/{chunk-DAMWXGKD.js.map → chunk-P3B6UTED.js.map} +1 -1
- package/dist/{chunk-WVJ4LQVB.js → chunk-PTVXBXZX.js} +3 -3
- package/dist/{chunk-WVJ4LQVB.js.map → chunk-PTVXBXZX.js.map} +1 -1
- package/dist/{chunk-RZ2M2RVP.js → chunk-PUE5GEKK.js} +3 -3
- package/dist/{chunk-RZ2M2RVP.js.map → chunk-PUE5GEKK.js.map} +1 -1
- package/dist/{chunk-72JZKARR.cjs → chunk-S7IUUQ5E.cjs} +6 -6
- package/dist/{chunk-72JZKARR.cjs.map → chunk-S7IUUQ5E.cjs.map} +1 -1
- package/dist/{chunk-JMW5AHLC.js → chunk-SX5GUCTF.js} +9 -9
- package/dist/{chunk-JMW5AHLC.js.map → chunk-SX5GUCTF.js.map} +1 -1
- package/dist/{chunk-5PH5CSM7.cjs → chunk-TGEVD7OR.cjs} +16 -16
- package/dist/{chunk-5PH5CSM7.cjs.map → chunk-TGEVD7OR.cjs.map} +1 -1
- package/dist/{chunk-WVOJV4Q5.cjs → chunk-TQIRRSGL.cjs} +4 -4
- package/dist/{chunk-WVOJV4Q5.cjs.map → chunk-TQIRRSGL.cjs.map} +1 -1
- package/dist/{chunk-PNBK2CLK.js → chunk-UJPW54CK.js} +3 -3
- package/dist/{chunk-PNBK2CLK.js.map → chunk-UJPW54CK.js.map} +1 -1
- package/dist/{chunk-GDH4DSVM.cjs → chunk-V23XPVHO.cjs} +12 -12
- package/dist/{chunk-GDH4DSVM.cjs.map → chunk-V23XPVHO.cjs.map} +1 -1
- package/dist/{chunk-PXQDAFXD.js → chunk-W73Y6JWZ.js} +6 -6
- package/dist/{chunk-PXQDAFXD.js.map → chunk-W73Y6JWZ.js.map} +1 -1
- package/dist/{chunk-LDARLWS3.js → chunk-XBZGVJ5K.js} +3 -3
- package/dist/{chunk-LDARLWS3.js.map → chunk-XBZGVJ5K.js.map} +1 -1
- package/dist/{chunk-WC25H5VG.js → chunk-Y5QM4LI4.js} +4 -4
- package/dist/{chunk-WC25H5VG.js.map → chunk-Y5QM4LI4.js.map} +1 -1
- package/dist/core.cjs +208 -208
- package/dist/core.js +1 -1
- package/dist/dapp.cjs +5 -5
- package/dist/dapp.js +2 -2
- package/dist/email.cjs +91 -0
- package/dist/email.cjs.map +1 -0
- package/dist/email.d.cts +115 -0
- package/dist/email.d.ts +115 -0
- package/dist/email.js +88 -0
- package/dist/email.js.map +1 -0
- package/dist/enduser.cjs +6 -6
- package/dist/enduser.js +3 -3
- package/dist/identity.cjs +5 -5
- package/dist/identity.js +2 -2
- package/dist/index.cjs +309 -309
- package/dist/index.js +15 -15
- package/dist/kms.cjs +102 -102
- package/dist/kms.js +2 -2
- package/dist/operator.cjs +6 -6
- package/dist/operator.js +2 -2
- package/dist/paymaster.cjs +15 -15
- package/dist/paymaster.js +2 -2
- package/dist/{src-UNS5B7FX.js → src-HKOFZ4V3.js} +4 -4
- package/dist/src-HKOFZ4V3.js.map +1 -0
- package/dist/{src-5URXSFKD.js → src-L2BLX34S.js} +3 -3
- package/dist/src-L2BLX34S.js.map +1 -0
- package/dist/{src-72GWEAPA.cjs → src-RM6DDR7K.cjs} +17 -17
- package/dist/src-RM6DDR7K.cjs.map +1 -0
- package/dist/{src-N72HAQXS.cjs → src-VO7TXJPG.cjs} +210 -210
- package/dist/src-VO7TXJPG.cjs.map +1 -0
- package/dist/tokens.cjs +3 -3
- package/dist/tokens.js +2 -2
- package/dist/x402.cjs +25 -25
- package/dist/x402.js +2 -2
- package/package.json +17 -2
- package/dist/UserClient-KYDCMAIU.js +0 -6
- package/dist/UserClient-S6LS3CB6.cjs +0 -15
- package/dist/src-5URXSFKD.js.map +0 -1
- package/dist/src-72GWEAPA.cjs.map +0 -1
- package/dist/src-N72HAQXS.cjs.map +0 -1
- package/dist/src-UNS5B7FX.js.map +0 -1
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkIB3KOSHW_cjs = require('./chunk-IB3KOSHW.cjs');
|
|
4
4
|
var viem = require('viem');
|
|
5
5
|
|
|
6
|
-
var PaymasterOperatorClient = class extends
|
|
6
|
+
var PaymasterOperatorClient = class extends chunkIB3KOSHW_cjs.BaseClient {
|
|
7
7
|
superPaymasterAddress;
|
|
8
8
|
tokenAddress;
|
|
9
9
|
ethUsdPriceFeed;
|
|
@@ -35,8 +35,8 @@ var PaymasterOperatorClient = class extends chunkMOJJ7QF6_cjs.BaseClient {
|
|
|
35
35
|
const registryAddr = this.requireRegistry();
|
|
36
36
|
const gTokenAddr = this.requireGToken();
|
|
37
37
|
const gTokenStakingAddr = this.requireGTokenStaking();
|
|
38
|
-
const registry =
|
|
39
|
-
const gToken =
|
|
38
|
+
const registry = chunkIB3KOSHW_cjs.registryActions(registryAddr);
|
|
39
|
+
const gToken = chunkIB3KOSHW_cjs.tokenActions();
|
|
40
40
|
const publicClient = this.getStartPublicClient();
|
|
41
41
|
const ROLE_COMMUNITY = await registry(publicClient).ROLE_COMMUNITY();
|
|
42
42
|
const hasCommunity = await registry(publicClient).hasRole({
|
|
@@ -106,9 +106,9 @@ var PaymasterOperatorClient = class extends chunkMOJJ7QF6_cjs.BaseClient {
|
|
|
106
106
|
const gTokenAddr = this.requireGToken();
|
|
107
107
|
const gTokenStakingAddr = this.requireGTokenStaking();
|
|
108
108
|
const factoryAddr = this.requirePaymasterFactory();
|
|
109
|
-
const registry =
|
|
110
|
-
const gToken =
|
|
111
|
-
const factory =
|
|
109
|
+
const registry = chunkIB3KOSHW_cjs.registryActions(registryAddr);
|
|
110
|
+
const gToken = chunkIB3KOSHW_cjs.tokenActions();
|
|
111
|
+
const factory = chunkIB3KOSHW_cjs.paymasterFactoryActions(factoryAddr);
|
|
112
112
|
const publicClient = this.getStartPublicClient();
|
|
113
113
|
const account = options?.account || this.client.account || this.getAddress();
|
|
114
114
|
const accountAddr = typeof account === "string" ? account : account.address;
|
|
@@ -135,7 +135,7 @@ var PaymasterOperatorClient = class extends chunkMOJJ7QF6_cjs.BaseClient {
|
|
|
135
135
|
});
|
|
136
136
|
const { encodeFunctionData } = await import('viem');
|
|
137
137
|
const initData = encodeFunctionData({
|
|
138
|
-
abi:
|
|
138
|
+
abi: chunkIB3KOSHW_cjs.PaymasterABI,
|
|
139
139
|
functionName: "initialize",
|
|
140
140
|
args: [
|
|
141
141
|
this.requireEntryPoint(),
|
|
@@ -215,10 +215,10 @@ var PaymasterOperatorClient = class extends chunkMOJJ7QF6_cjs.BaseClient {
|
|
|
215
215
|
*/
|
|
216
216
|
async depositCollateral(amount, options) {
|
|
217
217
|
try {
|
|
218
|
-
const pm =
|
|
218
|
+
const pm = chunkIB3KOSHW_cjs.superPaymasterActions(this.superPaymasterAddress);
|
|
219
219
|
const publicClient = this.getStartPublicClient();
|
|
220
220
|
const depositToken = await pm(publicClient).APNTS_TOKEN();
|
|
221
|
-
const token =
|
|
221
|
+
const token = chunkIB3KOSHW_cjs.tokenActions();
|
|
222
222
|
const allowance = await token(publicClient).allowance({
|
|
223
223
|
token: depositToken,
|
|
224
224
|
owner: this.getAddress(),
|
|
@@ -248,7 +248,7 @@ var PaymasterOperatorClient = class extends chunkMOJJ7QF6_cjs.BaseClient {
|
|
|
248
248
|
*/
|
|
249
249
|
async configureOperator(xPNTsToken, treasury, options) {
|
|
250
250
|
try {
|
|
251
|
-
const sp =
|
|
251
|
+
const sp = chunkIB3KOSHW_cjs.superPaymasterActions(this.superPaymasterAddress);
|
|
252
252
|
const publicClient = this.getStartPublicClient();
|
|
253
253
|
const currentConfig = await sp(publicClient).operators({ operator: this.getAddress() });
|
|
254
254
|
const currentToken = currentConfig.xPNTsToken;
|
|
@@ -264,7 +264,7 @@ var PaymasterOperatorClient = class extends chunkMOJJ7QF6_cjs.BaseClient {
|
|
|
264
264
|
}
|
|
265
265
|
async withdrawCollateral(to, amount, options) {
|
|
266
266
|
try {
|
|
267
|
-
const sp =
|
|
267
|
+
const sp = chunkIB3KOSHW_cjs.superPaymasterActions(this.superPaymasterAddress);
|
|
268
268
|
return await sp(this.client).withdrawTo({
|
|
269
269
|
to,
|
|
270
270
|
amount,
|
|
@@ -276,7 +276,7 @@ var PaymasterOperatorClient = class extends chunkMOJJ7QF6_cjs.BaseClient {
|
|
|
276
276
|
}
|
|
277
277
|
async isOperator(operator) {
|
|
278
278
|
try {
|
|
279
|
-
const sp =
|
|
279
|
+
const sp = chunkIB3KOSHW_cjs.superPaymasterActions(this.superPaymasterAddress);
|
|
280
280
|
const config = await sp(this.getStartPublicClient()).operators({ operator });
|
|
281
281
|
return config.isConfigured;
|
|
282
282
|
} catch (error) {
|
|
@@ -286,7 +286,7 @@ var PaymasterOperatorClient = class extends chunkMOJJ7QF6_cjs.BaseClient {
|
|
|
286
286
|
async getOperatorDetails(operator) {
|
|
287
287
|
try {
|
|
288
288
|
const target = operator || this.getAddress();
|
|
289
|
-
const sp =
|
|
289
|
+
const sp = chunkIB3KOSHW_cjs.superPaymasterActions(this.superPaymasterAddress);
|
|
290
290
|
return await sp(this.getStartPublicClient()).operators({ operator: target });
|
|
291
291
|
} catch (error) {
|
|
292
292
|
throw error;
|
|
@@ -294,7 +294,7 @@ var PaymasterOperatorClient = class extends chunkMOJJ7QF6_cjs.BaseClient {
|
|
|
294
294
|
}
|
|
295
295
|
async initiateExit(options) {
|
|
296
296
|
try {
|
|
297
|
-
const sp =
|
|
297
|
+
const sp = chunkIB3KOSHW_cjs.superPaymasterActions(this.superPaymasterAddress);
|
|
298
298
|
return await sp(this.client).unlockStake({
|
|
299
299
|
account: options?.account
|
|
300
300
|
});
|
|
@@ -304,7 +304,7 @@ var PaymasterOperatorClient = class extends chunkMOJJ7QF6_cjs.BaseClient {
|
|
|
304
304
|
}
|
|
305
305
|
async withdrawStake(to, options) {
|
|
306
306
|
try {
|
|
307
|
-
const sp =
|
|
307
|
+
const sp = chunkIB3KOSHW_cjs.superPaymasterActions(this.superPaymasterAddress);
|
|
308
308
|
return await sp(this.client).withdrawStake({
|
|
309
309
|
to,
|
|
310
310
|
account: options?.account
|
|
@@ -318,7 +318,7 @@ var PaymasterOperatorClient = class extends chunkMOJJ7QF6_cjs.BaseClient {
|
|
|
318
318
|
// ========================================
|
|
319
319
|
async addGasToken(token, price, options) {
|
|
320
320
|
try {
|
|
321
|
-
const pm =
|
|
321
|
+
const pm = chunkIB3KOSHW_cjs.paymasterActions(this.superPaymasterAddress);
|
|
322
322
|
return await pm(this.client).setTokenPrice({
|
|
323
323
|
token,
|
|
324
324
|
price,
|
|
@@ -330,7 +330,7 @@ var PaymasterOperatorClient = class extends chunkMOJJ7QF6_cjs.BaseClient {
|
|
|
330
330
|
}
|
|
331
331
|
async getTokenPrice(token) {
|
|
332
332
|
try {
|
|
333
|
-
const pm =
|
|
333
|
+
const pm = chunkIB3KOSHW_cjs.paymasterActions(this.superPaymasterAddress);
|
|
334
334
|
return await pm(this.getStartPublicClient()).tokenPrices({ token });
|
|
335
335
|
} catch (error) {
|
|
336
336
|
throw error;
|
|
@@ -338,7 +338,7 @@ var PaymasterOperatorClient = class extends chunkMOJJ7QF6_cjs.BaseClient {
|
|
|
338
338
|
}
|
|
339
339
|
async setupPaymasterDeposit(params, options) {
|
|
340
340
|
try {
|
|
341
|
-
const pm =
|
|
341
|
+
const pm = chunkIB3KOSHW_cjs.paymasterActions(params.paymaster);
|
|
342
342
|
return await pm(this.client).depositFor({
|
|
343
343
|
user: params.user,
|
|
344
344
|
token: params.token,
|
|
@@ -363,7 +363,7 @@ var ProposalState = /* @__PURE__ */ ((ProposalState2) => {
|
|
|
363
363
|
ProposalState2[ProposalState2["Executed"] = 7] = "Executed";
|
|
364
364
|
return ProposalState2;
|
|
365
365
|
})(ProposalState || {});
|
|
366
|
-
var ProtocolClient = class extends
|
|
366
|
+
var ProtocolClient = class extends chunkIB3KOSHW_cjs.BaseClient {
|
|
367
367
|
dvtValidatorAddress;
|
|
368
368
|
blsAggregatorAddress;
|
|
369
369
|
superPaymasterAddress;
|
|
@@ -381,7 +381,7 @@ var ProtocolClient = class extends chunkMOJJ7QF6_cjs.BaseClient {
|
|
|
381
381
|
*/
|
|
382
382
|
async createProposal(target, calldata, description, options) {
|
|
383
383
|
try {
|
|
384
|
-
const dvt =
|
|
384
|
+
const dvt = chunkIB3KOSHW_cjs.dvtActions(this.dvtValidatorAddress)(this.client);
|
|
385
385
|
return await dvt.createSlashProposal({
|
|
386
386
|
operator: target,
|
|
387
387
|
level: 1,
|
|
@@ -395,7 +395,7 @@ var ProtocolClient = class extends chunkMOJJ7QF6_cjs.BaseClient {
|
|
|
395
395
|
}
|
|
396
396
|
async signProposal(proposalId, signature = "0x", options) {
|
|
397
397
|
try {
|
|
398
|
-
const dvt =
|
|
398
|
+
const dvt = chunkIB3KOSHW_cjs.dvtActions(this.dvtValidatorAddress)(this.client);
|
|
399
399
|
return await dvt.signSlashProposal({
|
|
400
400
|
proposalId,
|
|
401
401
|
signature,
|
|
@@ -411,7 +411,7 @@ var ProtocolClient = class extends chunkMOJJ7QF6_cjs.BaseClient {
|
|
|
411
411
|
async executeWithProof(proposalId, signatures, options) {
|
|
412
412
|
try {
|
|
413
413
|
const proof = "0x";
|
|
414
|
-
const dvt =
|
|
414
|
+
const dvt = chunkIB3KOSHW_cjs.dvtActions(this.dvtValidatorAddress)(this.client);
|
|
415
415
|
return await dvt.executeSlashWithProof({
|
|
416
416
|
proposalId,
|
|
417
417
|
repUsers: [],
|
|
@@ -433,7 +433,7 @@ var ProtocolClient = class extends chunkMOJJ7QF6_cjs.BaseClient {
|
|
|
433
433
|
if (!this.blsAggregatorAddress) {
|
|
434
434
|
throw new Error("BLS Aggregator address required for this client");
|
|
435
435
|
}
|
|
436
|
-
const agg =
|
|
436
|
+
const agg = chunkIB3KOSHW_cjs.aggregatorActions(this.blsAggregatorAddress)(this.client);
|
|
437
437
|
return await agg.registerBLSPublicKey({
|
|
438
438
|
validator: this.getAddress(),
|
|
439
439
|
publicKey,
|
|
@@ -451,7 +451,7 @@ var ProtocolClient = class extends chunkMOJJ7QF6_cjs.BaseClient {
|
|
|
451
451
|
if (!this.superPaymasterAddress) {
|
|
452
452
|
throw new Error("SuperPaymaster address required for this client");
|
|
453
453
|
}
|
|
454
|
-
const sp =
|
|
454
|
+
const sp = chunkIB3KOSHW_cjs.superPaymasterActions(this.superPaymasterAddress);
|
|
455
455
|
return await sp(this.client).setProtocolFee({
|
|
456
456
|
newFeeBPS: bps,
|
|
457
457
|
account: options?.account
|
|
@@ -465,7 +465,7 @@ var ProtocolClient = class extends chunkMOJJ7QF6_cjs.BaseClient {
|
|
|
465
465
|
if (!this.superPaymasterAddress) {
|
|
466
466
|
throw new Error("SuperPaymaster address required for this client");
|
|
467
467
|
}
|
|
468
|
-
const sp =
|
|
468
|
+
const sp = chunkIB3KOSHW_cjs.superPaymasterActions(this.superPaymasterAddress);
|
|
469
469
|
return await sp(this.client).setTreasury({
|
|
470
470
|
treasury,
|
|
471
471
|
account: options?.account
|
|
@@ -511,7 +511,7 @@ var OperatorLifecycle = class extends PaymasterOperatorClient {
|
|
|
511
511
|
depositAmount: params.depositAmount
|
|
512
512
|
}, options);
|
|
513
513
|
hashes.push(h);
|
|
514
|
-
const factory = await import('./src-
|
|
514
|
+
const factory = await import('./src-VO7TXJPG.cjs').then((m) => m.xPNTsFactoryActions(this.xpntsFactory)(this.getStartPublicClient()));
|
|
515
515
|
const token = await factory.getTokenAddress({ community: this.getAddress() });
|
|
516
516
|
if (token && token !== "0x0000000000000000000000000000000000000000") {
|
|
517
517
|
const hConfig = await this.configureOperator(
|
|
@@ -559,8 +559,8 @@ var OperatorLifecycle = class extends PaymasterOperatorClient {
|
|
|
559
559
|
hashes.push(hCol);
|
|
560
560
|
}
|
|
561
561
|
const client = this.getStartPublicClient();
|
|
562
|
-
const registry =
|
|
563
|
-
const registryWriter =
|
|
562
|
+
const registry = chunkIB3KOSHW_cjs.registryActions(this.registryAddress);
|
|
563
|
+
const registryWriter = chunkIB3KOSHW_cjs.registryActions(this.registryAddress)(this.client);
|
|
564
564
|
const ROLE_PAYMASTER_SUPER = await registry(client).ROLE_PAYMASTER_SUPER();
|
|
565
565
|
const hasRole = await registry(client).hasRole({ user: this.getAddress(), roleId: ROLE_PAYMASTER_SUPER });
|
|
566
566
|
if (hasRole) {
|
|
@@ -572,7 +572,7 @@ var OperatorLifecycle = class extends PaymasterOperatorClient {
|
|
|
572
572
|
// Helper: Get GToken Balance
|
|
573
573
|
async getTokenBalance() {
|
|
574
574
|
if (!this.tokenAddress) return 0n;
|
|
575
|
-
const token =
|
|
575
|
+
const token = chunkIB3KOSHW_cjs.tokenActions()(this.getStartPublicClient());
|
|
576
576
|
return await token.balanceOf({ token: this.tokenAddress, account: this.getAddress() });
|
|
577
577
|
}
|
|
578
578
|
};
|
|
@@ -581,5 +581,5 @@ exports.OperatorLifecycle = OperatorLifecycle;
|
|
|
581
581
|
exports.PaymasterOperatorClient = PaymasterOperatorClient;
|
|
582
582
|
exports.ProposalState = ProposalState;
|
|
583
583
|
exports.ProtocolClient = ProtocolClient;
|
|
584
|
-
//# sourceMappingURL=chunk-
|
|
585
|
-
//# sourceMappingURL=chunk-
|
|
584
|
+
//# sourceMappingURL=chunk-KYXXIKEI.cjs.map
|
|
585
|
+
//# sourceMappingURL=chunk-KYXXIKEI.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../operator/src/PaymasterOperatorClient.ts","../../operator/src/ProtocolClient.ts","../../operator/src/OperatorLifecycle.ts"],"names":["BaseClient","registryActions","tokenActions","parseEther","paymasterFactoryActions","PaymasterABI","superPaymasterActions","paymasterActions","ProposalState","dvtActions","aggregatorActions"],"mappings":"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","file":"chunk-VHY6R2PI.cjs","sourcesContent":["import { type Address, type Hash, parseEther } from 'viem';\nimport { BaseClient, type ClientConfig, type TransactionOptions, PaymasterABI } from '@aastar/core';\nimport { superPaymasterActions, tokenActions, paymasterActions, registryActions, paymasterFactoryActions } from '@aastar/core';\n\nexport interface OperatorClientConfig extends ClientConfig {\n superPaymasterAddress: Address;\n tokenAddress?: Address;\n}\n\nexport interface SponsorshipPolicy {\n globalLimit: bigint;\n userLimit: bigint;\n itemPrice: bigint;\n // ... logic for encoding this into bytes/storage\n}\n\n/**\n * Client for Paymaster Operators (ROLE_PAYMASTER_SUPER)\n */\nexport class PaymasterOperatorClient extends BaseClient {\n public superPaymasterAddress: Address;\n public tokenAddress?: Address;\n public ethUsdPriceFeed: Address;\n public xpntsFactory: Address;\n\n constructor(config: OperatorClientConfig) {\n super(config);\n this.superPaymasterAddress = config.superPaymasterAddress;\n this.tokenAddress = config.tokenAddress;\n this.ethUsdPriceFeed = config.ethUsdPriceFeedAddress || '0x694AA1769357215DE4FAC081bf1f309aDC325306'; // Default Sepolia\n this.xpntsFactory = config.xpntsFactoryAddress || '0x0000000000000000000000000000000000000000'; // Should be provided\n }\n\n // ========================================\n // 0. 注册与入驻 (One-Stop Registration)\n // ========================================\n\n /**\n * Register as SuperPaymaster Operator (one-stop API).\n * This method handles all necessary steps:\n * 1. Checks prerequisites (must have ROLE_COMMUNITY)\n * 2. Checks and approves GToken to GTokenStaking\n * 3. Registers ROLE_PAYMASTER_SUPER\n * 4. Optionally deposits collateral to SuperPaymaster\n * \n * @param params Registration parameters\n * @param options Transaction options\n * @returns Transaction hash of role registration\n */\n async registerAsSuperPaymasterOperator(params?: {\n stakeAmount?: bigint; // Optional, defaults to 50 GToken (Registry requirement)\n depositAmount?: bigint; // Optional initial deposit to SuperPaymaster\n }, options?: TransactionOptions): Promise<Hash> {\n try {\n const registryAddr = this.requireRegistry();\n const gTokenAddr = this.requireGToken();\n const gTokenStakingAddr = this.requireGTokenStaking();\n \n const registry = registryActions(registryAddr);\n const gToken = tokenActions();\n const publicClient = this.getStartPublicClient();\n \n // 1. Check prerequisites\n const ROLE_COMMUNITY = await registry(publicClient).ROLE_COMMUNITY();\n const hasCommunity = await registry(publicClient).hasRole({\n user: this.getAddress(),\n roleId: ROLE_COMMUNITY\n });\n \n if (!hasCommunity) {\n throw new Error('Must have ROLE_COMMUNITY before registering as SuperPaymaster operator');\n }\n \n // 2. Check if already has role\n const ROLE_PAYMASTER_SUPER = await registry(publicClient).ROLE_PAYMASTER_SUPER();\n const hasSuper = await registry(publicClient).hasRole({\n user: this.getAddress(),\n roleId: ROLE_PAYMASTER_SUPER\n });\n \n if (hasSuper) {\n // Still handle deposit if requested\n if (params?.depositAmount) {\n return this.depositCollateral(params.depositAmount, options);\n }\n throw new Error('Already registered as SuperPaymaster operator');\n }\n \n // 3. Prepare stake amount (default 50 GToken as per Registry config)\n const stakeAmount = params?.stakeAmount || parseEther('50');\n \n // 4. Check and approve GToken to GTokenStaking\n const allowance = await gToken(publicClient).allowance({\n token: gTokenAddr,\n owner: this.getAddress(),\n spender: gTokenStakingAddr\n });\n \n if (allowance < stakeAmount) {\n const approveHash = await gToken(this.client).approve({\n token: gTokenAddr,\n spender: gTokenStakingAddr,\n amount: stakeAmount * 2n, // Approve 2x for future use\n account: options?.account\n });\n await (publicClient as any).waitForTransactionReceipt({ hash: approveHash });\n }\n \n // 5. Register ROLE_PAYMASTER_SUPER\n const registerHash = await registry(this.client).registerRoleSelf({\n roleId: ROLE_PAYMASTER_SUPER,\n data: '0x', // SuperPaymaster role doesn't need special data\n account: options?.account\n });\n \n // Wait for registration to complete\n await (publicClient as any).waitForTransactionReceipt({ hash: registerHash });\n \n // 6. Optional: Deposit collateral to SuperPaymaster\n if (params?.depositAmount) {\n await this.depositCollateral(params.depositAmount, options);\n }\n \n return registerHash;\n } catch (error) {\n throw error;\n }\n }\n\n /**\n * Deploy a new Paymaster V4 and Register as AOA Operator (one-stop API).\n * This method handles:\n * 1. Checks prerequisites (ROLE_COMMUNITY)\n * 2. Predicts new Paymaster address\n * 3. Deploys Paymaster V4 via Factory\n * 4. Registers ROLE_PAYMASTER_AOA with staking\n * \n * @param params Deployment parameters\n * @param options Transaction options\n * @returns Object containing new paymaster address and transaction hashes\n */\n async deployAndRegisterPaymasterV4(params?: {\n stakeAmount?: bigint; // Optional, defaults to 30 GToken (Registry requirement for AOA)\n version?: string; // Optional, defaults to Factory default or V4.0.0\n salt?: bigint; // Optional, for deterministic deployment\n priceFeed?: Address;\n }, options?: TransactionOptions): Promise<{ \n paymasterAddress: Address; \n deployHash: Hash; \n registerHash: Hash;\n }> {\n try {\n const registryAddr = this.requireRegistry();\n const gTokenAddr = this.requireGToken();\n const gTokenStakingAddr = this.requireGTokenStaking();\n const factoryAddr = this.requirePaymasterFactory();\n \n const registry = registryActions(registryAddr);\n const gToken = tokenActions();\n const factory = paymasterFactoryActions(factoryAddr);\n const publicClient = this.getStartPublicClient();\n \n const account = options?.account || this.client.account || this.getAddress();\n const accountAddr = typeof account === 'string' ? account : account.address;\n\n // 1. Check prerequisites (ROLE_COMMUNITY)\n const ROLE_COMMUNITY = await registry(publicClient).ROLE_COMMUNITY();\n const hasCommunity = await registry(publicClient).hasRole({\n user: accountAddr,\n roleId: ROLE_COMMUNITY\n });\n \n if (!hasCommunity) {\n throw new Error('Must have ROLE_COMMUNITY before deploying Paymaster V4');\n }\n\n // 2. Deployment (Idempotent Check)\n const existingPaymaster = await factory(publicClient).getPaymaster({ owner: accountAddr });\n let deployHash: Hash = '0x0000000000000000000000000000000000000000000000000000000000000000';\n let paymasterAddress: Address;\n\n if (existingPaymaster && existingPaymaster !== '0x0000000000000000000000000000000000000000') {\n console.log(` ℹ️ Paymaster already deployed at: ${existingPaymaster}`);\n paymasterAddress = existingPaymaster;\n } else {\n console.log(' 🛠️ Deploying Paymaster V4 with args:', {\n entryPoint: this.requireEntryPoint(),\n owner: accountAddr,\n priceFeed: this.ethUsdPriceFeed,\n factory: factoryAddr\n });\n\n const { encodeFunctionData } = await import('viem');\n const initData = encodeFunctionData({\n abi: PaymasterABI,\n functionName: 'initialize',\n args: [\n this.requireEntryPoint(), // EntryPoint v0.7\n accountAddr,\n accountAddr, // Treasury defaults to owner\n this.ethUsdPriceFeed,\n 200n, // serviceFeeRate (2%)\n parseEther('0.1'), // maxGasCostCap\n 3600n // priceStalenessThreshold (1 hour)\n ]\n });\n\n deployHash = await factory(this.client).deployPaymaster({\n version: params?.version, \n initData,\n account\n });\n \n await (publicClient as any).waitForTransactionReceipt({ hash: deployHash });\n \n paymasterAddress = await factory(publicClient).getPaymaster({ owner: accountAddr });\n }\n \n if (!paymasterAddress || paymasterAddress === '0x0000000000000000000000000000000000000000') {\n throw new Error('Failed to retrieve Paymaster address from Factory');\n }\n\n // 3. Register ROLE_PAYMASTER_AOA\n const ROLE_PAYMASTER_AOA = await registry(publicClient).ROLE_PAYMASTER_AOA();\n const hasAOA = await registry(publicClient).hasRole({\n user: accountAddr,\n roleId: ROLE_PAYMASTER_AOA\n });\n\n if (hasAOA) {\n return { paymasterAddress, deployHash, registerHash: '0x0000000000000000000000000000000000000000000000000000000000000000' };\n }\n\n const stakeAmount = params?.stakeAmount || parseEther('30');\n \n const allowance = await gToken(publicClient).allowance({\n token: gTokenAddr,\n owner: accountAddr,\n spender: gTokenStakingAddr\n });\n \n if (allowance < stakeAmount) {\n const approveHash = await gToken(this.client).approve({\n token: gTokenAddr,\n spender: gTokenStakingAddr,\n amount: stakeAmount * 2n,\n account: account\n });\n await (publicClient as any).waitForTransactionReceipt({ hash: approveHash });\n }\n\n const { encodeAbiParameters, parseAbiParameters } = await import('viem');\n let roleData: Hash = '0x';\n if (stakeAmount > 0) {\n roleData = encodeAbiParameters(\n parseAbiParameters('uint256'),\n [stakeAmount]\n ) as Hash;\n }\n\n const registerHash = await registry(this.client).registerRoleSelf({\n roleId: ROLE_PAYMASTER_AOA,\n data: roleData,\n account: account\n });\n \n await (publicClient as any).waitForTransactionReceipt({ hash: registerHash });\n\n return {\n paymasterAddress,\n deployHash,\n registerHash\n };\n } catch (error) {\n throw error;\n }\n }\n\n /**\n * Deposit collateral (aPNTs/GToken) to SuperPaymaster.\n * This is a helper method used by registerAsSuperPaymasterOperator.\n */\n async depositCollateral(amount: bigint, options?: TransactionOptions): Promise<Hash> {\n try {\n const pm = superPaymasterActions(this.superPaymasterAddress);\n const publicClient = this.getStartPublicClient();\n \n // V3.7: Dynamically fetch the token expected by SuperPaymaster\n const depositToken = await pm(publicClient).APNTS_TOKEN();\n const token = tokenActions();\n \n // Approve SuperPaymaster to spend the token (usually aPNTs on Sepolia)\n const allowance = await token(publicClient).allowance({\n token: depositToken,\n owner: this.getAddress(),\n spender: this.superPaymasterAddress\n });\n \n if (allowance < amount) {\n const approveHash = await token(this.client).approve({\n token: depositToken,\n spender: this.superPaymasterAddress,\n amount,\n account: options?.account\n });\n await (publicClient as any).waitForTransactionReceipt({ hash: approveHash });\n }\n \n // Deposit to SuperPaymaster\n return pm(this.client).deposit({\n amount,\n account: options?.account\n });\n } catch (error) {\n throw error;\n }\n }\n\n /**\n * Configure operator parameters (Token, Treasury).\n * Exchange rate is now read live from xPNTsToken.exchangeRate() at runtime.\n * If parameters are undefined, existing values are preserved.\n */\n async configureOperator(\n xPNTsToken?: Address,\n treasury?: Address,\n options?: TransactionOptions\n ): Promise<Hash> {\n try {\n const sp = superPaymasterActions(this.superPaymasterAddress);\n const publicClient = this.getStartPublicClient();\n\n // Fetch current config to preserve missing values\n const currentConfig = await sp(publicClient).operators({ operator: this.getAddress() });\n\n const currentToken = currentConfig.xPNTsToken;\n const currentTreasury = currentConfig.treasury;\n\n return await sp(this.client).configureOperator({\n xPNTsToken: xPNTsToken || currentToken,\n opTreasury: treasury || currentTreasury,\n account: options?.account\n });\n } catch (error) {\n throw error;\n }\n }\n\n async withdrawCollateral(to: Address, amount: bigint, options?: TransactionOptions): Promise<Hash> {\n try {\n const sp = superPaymasterActions(this.superPaymasterAddress);\n return await sp(this.client).withdrawTo({\n to,\n amount,\n account: options?.account\n });\n } catch (error) {\n throw error;\n }\n }\n\n async isOperator(operator: Address): Promise<boolean> {\n try {\n const sp = superPaymasterActions(this.superPaymasterAddress);\n const config = await sp(this.getStartPublicClient()).operators({ operator });\n return config.isConfigured;\n } catch (error) {\n return false;\n }\n }\n\n async getOperatorDetails(operator?: Address): Promise<any> {\n try {\n const target = operator || this.getAddress();\n const sp = superPaymasterActions(this.superPaymasterAddress);\n return await sp(this.getStartPublicClient()).operators({ operator: target });\n } catch (error) {\n throw error;\n }\n }\n\n async initiateExit(options?: TransactionOptions): Promise<Hash> {\n try {\n const sp = superPaymasterActions(this.superPaymasterAddress);\n return await sp(this.client).unlockStake({\n account: options?.account\n });\n } catch (error) {\n throw error;\n }\n }\n\n async withdrawStake(to: Address, options?: TransactionOptions): Promise<Hash> {\n try {\n const sp = superPaymasterActions(this.superPaymasterAddress);\n return await sp(this.client).withdrawStake({\n to,\n account: options?.account\n });\n } catch (error) {\n throw error;\n }\n }\n\n // ========================================\n // 3. 支付代币管理 (基于 PaymasterActions)\n // ========================================\n\n async addGasToken(token: Address, price: bigint, options?: TransactionOptions): Promise<Hash> {\n try {\n const pm = paymasterActions(this.superPaymasterAddress);\n return await pm(this.client).setTokenPrice({\n token,\n price,\n account: options?.account\n });\n } catch (error) {\n throw error;\n }\n }\n\n async getTokenPrice(token: Address): Promise<bigint> {\n try {\n const pm = paymasterActions(this.superPaymasterAddress);\n return await pm(this.getStartPublicClient()).tokenPrices({ token });\n } catch (error) {\n throw error;\n }\n }\n\n async setupPaymasterDeposit(params: {\n paymaster: Address;\n user: Address;\n token: Address;\n amount: bigint;\n }, options?: TransactionOptions): Promise<Hash> {\n try {\n const pm = paymasterActions(params.paymaster);\n return await pm(this.client).depositFor({\n user: params.user,\n token: params.token,\n amount: params.amount,\n account: options?.account\n });\n } catch (error) {\n throw error;\n }\n }\n}\n","import { type Address, type Hash, type Hex } from 'viem';\nimport { BaseClient, type ClientConfig, type TransactionOptions } from '@aastar/core';\nimport { dvtActions, aggregatorActions, superPaymasterActions } from '@aastar/core';\n\nexport interface ProtocolClientConfig extends ClientConfig {\n dvtValidatorAddress: Address; // The DVT Validator contract (Governance)\n blsAggregatorAddress?: Address; // Optional BLS Aggregator\n superPaymasterAddress?: Address; // For Global Params\n}\n\nexport enum ProposalState {\n Pending = 0,\n Active = 1,\n Canceled = 2,\n Defeated = 3,\n Succeeded = 4,\n Queued = 5,\n Expired = 6,\n Executed = 7\n}\n\n/**\n * Client for Protocol Governors and Validators (Infrastructure)\n */\nexport class ProtocolClient extends BaseClient {\n public dvtValidatorAddress: Address;\n public blsAggregatorAddress?: Address;\n public superPaymasterAddress?: Address;\n\n constructor(config: ProtocolClientConfig) {\n super(config);\n this.dvtValidatorAddress = config.dvtValidatorAddress;\n this.blsAggregatorAddress = config.blsAggregatorAddress;\n this.superPaymasterAddress = config.superPaymasterAddress;\n }\n\n // ========================================\n // 1. 提案管理 (DVT)\n // ========================================\n\n /**\n * Create a new proposal\n */\n async createProposal(target: Address, calldata: Hex, description: string, options?: TransactionOptions): Promise<Hash> {\n try {\n const dvt = dvtActions(this.dvtValidatorAddress)(this.client);\n \n // Mapping general \"createProposal\" to \"createSlashProposal\" for now\n // Assuming Governance uses Validator logic or this Client is for Slash.\n // Using createSlashProposal as the available action.\n return await dvt.createSlashProposal({\n operator: target,\n level: 1, // Default level\n reason: description,\n account: options?.account\n });\n } catch (error) {\n throw error;\n }\n }\n\n async signProposal(proposalId: bigint, signature: Hex = '0x', options?: TransactionOptions): Promise<Hash> {\n try {\n const dvt = dvtActions(this.dvtValidatorAddress)(this.client);\n return await dvt.signSlashProposal({\n proposalId,\n signature,\n account: options?.account\n });\n } catch (error) {\n throw error;\n }\n }\n\n /**\n * Execute a proposal with collected signatures\n */\n async executeWithProof(proposalId: bigint, signatures: Hex[], options?: TransactionOptions): Promise<Hash> {\n try {\n // Mock proof generation logic or placeholder\n const proof = '0x' as Hex; \n const dvt = dvtActions(this.dvtValidatorAddress)(this.client);\n \n return await dvt.executeSlashWithProof({\n proposalId,\n repUsers: [], // Needs real data in production\n newScores: [],\n epoch: 0n,\n proof,\n account: options?.account\n });\n } catch (error) {\n throw error;\n }\n }\n\n // ========================================\n // 2. 验证器管理 / BLS\n // ========================================\n\n async registerBLSKey(publicKey: Hex, options?: TransactionOptions): Promise<Hash> {\n try {\n if (!this.blsAggregatorAddress) {\n throw new Error('BLS Aggregator address required for this client');\n }\n // Aggregator actions now handle the type internally or via mapping\n const agg = aggregatorActions(this.blsAggregatorAddress)(this.client);\n \n return await agg.registerBLSPublicKey({\n validator: this.getAddress(),\n publicKey,\n account: options?.account\n });\n } catch (error) {\n throw error;\n }\n }\n\n // ========================================\n // 3. 全局参数管理 (Admin)\n // ========================================\n\n async setProtocolFee(bps: bigint, options?: TransactionOptions): Promise<Hash> {\n try {\n if (!this.superPaymasterAddress) {\n throw new Error('SuperPaymaster address required for this client');\n }\n const sp = superPaymasterActions(this.superPaymasterAddress);\n \n return await sp(this.client).setProtocolFee({\n newFeeBPS: bps,\n account: options?.account\n });\n } catch (error) {\n throw error;\n }\n }\n\n async setTreasury(treasury: Address, options?: TransactionOptions): Promise<Hash> {\n try {\n if (!this.superPaymasterAddress) {\n throw new Error('SuperPaymaster address required for this client');\n }\n const sp = superPaymasterActions(this.superPaymasterAddress);\n \n return await sp(this.client).setTreasury({\n treasury,\n account: options?.account\n });\n } catch (error) {\n throw error;\n }\n }\n}\n","import { type Address, type Hash, type Hex, parseEther } from 'viem';\nimport { type TransactionOptions } from '@aastar/core';\nimport { PaymasterOperatorClient, type OperatorClientConfig } from './PaymasterOperatorClient.js';\nimport { tokenActions, registryActions } from '@aastar/core'; // L2/L1 Actions\n\nexport interface OperatorStatus {\n isConfigured: boolean;\n isActive: boolean;\n balance: bigint;\n}\n\n/**\n * OperatorLifecycle - L3 Pattern\n * \n * Responsibilities:\n * 1. Managing the complete lifecycle of a Paymaster Operator\n * 2. Unifying setup (onboard), operation (config), and exit (withdraw)\n */\nexport class OperatorLifecycle extends PaymasterOperatorClient {\n\n constructor(config: OperatorClientConfig) {\n super(config);\n }\n\n // ===========================================\n // 1. Setup Phase (Onboarding)\n // ===========================================\n\n /**\n * Check if the account is ready to become an operator\n * (e.g., has GToken, has ROLE_COMMUNITY, etc.)\n */\n async checkReadiness(): Promise<OperatorStatus> {\n const isOp = await this.isOperator(this.getAddress());\n // For SuperPaymaster, balance is 'aPNTsBalance' (Collateral)\n const details = await this.getOperatorDetails();\n const balance = details.aPNTsBalance || 0n;\n \n return {\n isConfigured: isOp,\n isActive: isOp, // Simplification\n balance\n };\n }\n\n /**\n * One-click Setup: Register + Deposit + Deploy Node\n * Wraps existing registerAsSuperPaymasterOperator or deployAndRegisterPaymasterV4\n */\n async setupNode(params: {\n type: 'V4' | 'SUPER';\n stakeAmount?: bigint;\n depositAmount?: bigint;\n }, options?: TransactionOptions): Promise<Hash[]> {\n const hashes: Hash[] = [];\n\n if (params.type === 'SUPER') {\n const h = await this.registerAsSuperPaymasterOperator({\n stakeAmount: params.stakeAmount,\n depositAmount: params.depositAmount\n }, options);\n hashes.push(h);\n\n // Fetch Token Address and Configure\n const factory = await import('@aastar/core').then(m => m.xPNTsFactoryActions(this.xpntsFactory!)(this.getStartPublicClient()));\n const token = await factory.getTokenAddress({ community: this.getAddress() });\n \n if (token && token !== '0x0000000000000000000000000000000000000000') {\n const hConfig = await this.configureOperator(\n token,\n this.getAddress(), // Default treasury to self\n options\n );\n hashes.push(hConfig);\n }\n } else {\n const result = await this.deployAndRegisterPaymasterV4({\n stakeAmount: params.stakeAmount\n }, options);\n hashes.push(result.deployHash);\n hashes.push(result.registerHash);\n }\n\n return hashes;\n }\n\n // ===========================================\n // 2. Operational Phase (Config & Funds)\n // ===========================================\n\n // Inherits: addGasToken, configureOperator, depositCollateral from PaymasterOperatorClient\n\n async getOperatorStats(): Promise<any> {\n return await this.getOperatorDetails();\n }\n\n // ===========================================\n // 3. Exit Phase (Withdraw & Leave)\n // ===========================================\n\n /**\n * Start the exit process: Unstake from Registry/SuperPaymaster and Unlock funds\n */\n async initiateExit(options?: TransactionOptions): Promise<Hash> {\n // 1. Unlock Stake from SuperPaymaster (if applicable)\n return await super.initiateExit(options);\n }\n\n /**\n * Finalize exit: Withdraw all funds (Collateral + Rewards)\n */\n async withdrawAllFunds(to?: Address, options?: TransactionOptions): Promise<Hash[]> {\n const recipient = to || this.getAddress();\n const hashes: Hash[] = [];\n\n // 1. Withdraw Collateral from SuperPaymaster (if any)\n // Note: We need to know the balance to withdraw exact amount.\n // For current L3 pattern, we assume the user tracks it or we fetch it.\n const stats = await this.checkReadiness();\n if (stats.balance > 0n) {\n const hCol = await this.withdrawCollateral(recipient, stats.balance, options);\n hashes.push(hCol);\n }\n\n // 2. Exit Role in Registry (Unstake GToken)\n // This will fail if lock duration > 0 and not yet cooldown.\n // Or it will initiate cooldown.\n const client = this.getStartPublicClient();\n const registry = registryActions(this.registryAddress as Address); // Use local registry address\n const registryWriter = registryActions(this.registryAddress as Address)(this.client);\n \n // Check if we have the role\n // For Super Operator\n const ROLE_PAYMASTER_SUPER = await registry(client).ROLE_PAYMASTER_SUPER();\n const hasRole = await registry(client).hasRole({ user: this.getAddress(), roleId: ROLE_PAYMASTER_SUPER });\n \n if (hasRole) {\n const hExit = await registryWriter.exitRole({ roleId: ROLE_PAYMASTER_SUPER, account: options?.account });\n hashes.push(hExit);\n }\n\n return hashes;\n }\n\n // Helper: Get GToken Balance\n private async getTokenBalance(): Promise<bigint> {\n if (!this.tokenAddress) return 0n;\n const token = tokenActions()(this.getStartPublicClient());\n return await token.balanceOf({ token: this.tokenAddress, account: this.getAddress() });\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../../operator/src/PaymasterOperatorClient.ts","../../operator/src/ProtocolClient.ts","../../operator/src/OperatorLifecycle.ts"],"names":["BaseClient","registryActions","tokenActions","parseEther","paymasterFactoryActions","PaymasterABI","superPaymasterActions","paymasterActions","ProposalState","dvtActions","aggregatorActions"],"mappings":"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","file":"chunk-KYXXIKEI.cjs","sourcesContent":["import { type Address, type Hash, parseEther } from 'viem';\nimport { BaseClient, type ClientConfig, type TransactionOptions, PaymasterABI } from '@aastar/core';\nimport { superPaymasterActions, tokenActions, paymasterActions, registryActions, paymasterFactoryActions } from '@aastar/core';\n\nexport interface OperatorClientConfig extends ClientConfig {\n superPaymasterAddress: Address;\n tokenAddress?: Address;\n}\n\nexport interface SponsorshipPolicy {\n globalLimit: bigint;\n userLimit: bigint;\n itemPrice: bigint;\n // ... logic for encoding this into bytes/storage\n}\n\n/**\n * Client for Paymaster Operators (ROLE_PAYMASTER_SUPER)\n */\nexport class PaymasterOperatorClient extends BaseClient {\n public superPaymasterAddress: Address;\n public tokenAddress?: Address;\n public ethUsdPriceFeed: Address;\n public xpntsFactory: Address;\n\n constructor(config: OperatorClientConfig) {\n super(config);\n this.superPaymasterAddress = config.superPaymasterAddress;\n this.tokenAddress = config.tokenAddress;\n this.ethUsdPriceFeed = config.ethUsdPriceFeedAddress || '0x694AA1769357215DE4FAC081bf1f309aDC325306'; // Default Sepolia\n this.xpntsFactory = config.xpntsFactoryAddress || '0x0000000000000000000000000000000000000000'; // Should be provided\n }\n\n // ========================================\n // 0. 注册与入驻 (One-Stop Registration)\n // ========================================\n\n /**\n * Register as SuperPaymaster Operator (one-stop API).\n * This method handles all necessary steps:\n * 1. Checks prerequisites (must have ROLE_COMMUNITY)\n * 2. Checks and approves GToken to GTokenStaking\n * 3. Registers ROLE_PAYMASTER_SUPER\n * 4. Optionally deposits collateral to SuperPaymaster\n * \n * @param params Registration parameters\n * @param options Transaction options\n * @returns Transaction hash of role registration\n */\n async registerAsSuperPaymasterOperator(params?: {\n stakeAmount?: bigint; // Optional, defaults to 50 GToken (Registry requirement)\n depositAmount?: bigint; // Optional initial deposit to SuperPaymaster\n }, options?: TransactionOptions): Promise<Hash> {\n try {\n const registryAddr = this.requireRegistry();\n const gTokenAddr = this.requireGToken();\n const gTokenStakingAddr = this.requireGTokenStaking();\n \n const registry = registryActions(registryAddr);\n const gToken = tokenActions();\n const publicClient = this.getStartPublicClient();\n \n // 1. Check prerequisites\n const ROLE_COMMUNITY = await registry(publicClient).ROLE_COMMUNITY();\n const hasCommunity = await registry(publicClient).hasRole({\n user: this.getAddress(),\n roleId: ROLE_COMMUNITY\n });\n \n if (!hasCommunity) {\n throw new Error('Must have ROLE_COMMUNITY before registering as SuperPaymaster operator');\n }\n \n // 2. Check if already has role\n const ROLE_PAYMASTER_SUPER = await registry(publicClient).ROLE_PAYMASTER_SUPER();\n const hasSuper = await registry(publicClient).hasRole({\n user: this.getAddress(),\n roleId: ROLE_PAYMASTER_SUPER\n });\n \n if (hasSuper) {\n // Still handle deposit if requested\n if (params?.depositAmount) {\n return this.depositCollateral(params.depositAmount, options);\n }\n throw new Error('Already registered as SuperPaymaster operator');\n }\n \n // 3. Prepare stake amount (default 50 GToken as per Registry config)\n const stakeAmount = params?.stakeAmount || parseEther('50');\n \n // 4. Check and approve GToken to GTokenStaking\n const allowance = await gToken(publicClient).allowance({\n token: gTokenAddr,\n owner: this.getAddress(),\n spender: gTokenStakingAddr\n });\n \n if (allowance < stakeAmount) {\n const approveHash = await gToken(this.client).approve({\n token: gTokenAddr,\n spender: gTokenStakingAddr,\n amount: stakeAmount * 2n, // Approve 2x for future use\n account: options?.account\n });\n await (publicClient as any).waitForTransactionReceipt({ hash: approveHash });\n }\n \n // 5. Register ROLE_PAYMASTER_SUPER\n const registerHash = await registry(this.client).registerRoleSelf({\n roleId: ROLE_PAYMASTER_SUPER,\n data: '0x', // SuperPaymaster role doesn't need special data\n account: options?.account\n });\n \n // Wait for registration to complete\n await (publicClient as any).waitForTransactionReceipt({ hash: registerHash });\n \n // 6. Optional: Deposit collateral to SuperPaymaster\n if (params?.depositAmount) {\n await this.depositCollateral(params.depositAmount, options);\n }\n \n return registerHash;\n } catch (error) {\n throw error;\n }\n }\n\n /**\n * Deploy a new Paymaster V4 and Register as AOA Operator (one-stop API).\n * This method handles:\n * 1. Checks prerequisites (ROLE_COMMUNITY)\n * 2. Predicts new Paymaster address\n * 3. Deploys Paymaster V4 via Factory\n * 4. Registers ROLE_PAYMASTER_AOA with staking\n * \n * @param params Deployment parameters\n * @param options Transaction options\n * @returns Object containing new paymaster address and transaction hashes\n */\n async deployAndRegisterPaymasterV4(params?: {\n stakeAmount?: bigint; // Optional, defaults to 30 GToken (Registry requirement for AOA)\n version?: string; // Optional, defaults to Factory default or V4.0.0\n salt?: bigint; // Optional, for deterministic deployment\n priceFeed?: Address;\n }, options?: TransactionOptions): Promise<{ \n paymasterAddress: Address; \n deployHash: Hash; \n registerHash: Hash;\n }> {\n try {\n const registryAddr = this.requireRegistry();\n const gTokenAddr = this.requireGToken();\n const gTokenStakingAddr = this.requireGTokenStaking();\n const factoryAddr = this.requirePaymasterFactory();\n \n const registry = registryActions(registryAddr);\n const gToken = tokenActions();\n const factory = paymasterFactoryActions(factoryAddr);\n const publicClient = this.getStartPublicClient();\n \n const account = options?.account || this.client.account || this.getAddress();\n const accountAddr = typeof account === 'string' ? account : account.address;\n\n // 1. Check prerequisites (ROLE_COMMUNITY)\n const ROLE_COMMUNITY = await registry(publicClient).ROLE_COMMUNITY();\n const hasCommunity = await registry(publicClient).hasRole({\n user: accountAddr,\n roleId: ROLE_COMMUNITY\n });\n \n if (!hasCommunity) {\n throw new Error('Must have ROLE_COMMUNITY before deploying Paymaster V4');\n }\n\n // 2. Deployment (Idempotent Check)\n const existingPaymaster = await factory(publicClient).getPaymaster({ owner: accountAddr });\n let deployHash: Hash = '0x0000000000000000000000000000000000000000000000000000000000000000';\n let paymasterAddress: Address;\n\n if (existingPaymaster && existingPaymaster !== '0x0000000000000000000000000000000000000000') {\n console.log(` ℹ️ Paymaster already deployed at: ${existingPaymaster}`);\n paymasterAddress = existingPaymaster;\n } else {\n console.log(' 🛠️ Deploying Paymaster V4 with args:', {\n entryPoint: this.requireEntryPoint(),\n owner: accountAddr,\n priceFeed: this.ethUsdPriceFeed,\n factory: factoryAddr\n });\n\n const { encodeFunctionData } = await import('viem');\n const initData = encodeFunctionData({\n abi: PaymasterABI,\n functionName: 'initialize',\n args: [\n this.requireEntryPoint(), // EntryPoint v0.7\n accountAddr,\n accountAddr, // Treasury defaults to owner\n this.ethUsdPriceFeed,\n 200n, // serviceFeeRate (2%)\n parseEther('0.1'), // maxGasCostCap\n 3600n // priceStalenessThreshold (1 hour)\n ]\n });\n\n deployHash = await factory(this.client).deployPaymaster({\n version: params?.version, \n initData,\n account\n });\n \n await (publicClient as any).waitForTransactionReceipt({ hash: deployHash });\n \n paymasterAddress = await factory(publicClient).getPaymaster({ owner: accountAddr });\n }\n \n if (!paymasterAddress || paymasterAddress === '0x0000000000000000000000000000000000000000') {\n throw new Error('Failed to retrieve Paymaster address from Factory');\n }\n\n // 3. Register ROLE_PAYMASTER_AOA\n const ROLE_PAYMASTER_AOA = await registry(publicClient).ROLE_PAYMASTER_AOA();\n const hasAOA = await registry(publicClient).hasRole({\n user: accountAddr,\n roleId: ROLE_PAYMASTER_AOA\n });\n\n if (hasAOA) {\n return { paymasterAddress, deployHash, registerHash: '0x0000000000000000000000000000000000000000000000000000000000000000' };\n }\n\n const stakeAmount = params?.stakeAmount || parseEther('30');\n \n const allowance = await gToken(publicClient).allowance({\n token: gTokenAddr,\n owner: accountAddr,\n spender: gTokenStakingAddr\n });\n \n if (allowance < stakeAmount) {\n const approveHash = await gToken(this.client).approve({\n token: gTokenAddr,\n spender: gTokenStakingAddr,\n amount: stakeAmount * 2n,\n account: account\n });\n await (publicClient as any).waitForTransactionReceipt({ hash: approveHash });\n }\n\n const { encodeAbiParameters, parseAbiParameters } = await import('viem');\n let roleData: Hash = '0x';\n if (stakeAmount > 0) {\n roleData = encodeAbiParameters(\n parseAbiParameters('uint256'),\n [stakeAmount]\n ) as Hash;\n }\n\n const registerHash = await registry(this.client).registerRoleSelf({\n roleId: ROLE_PAYMASTER_AOA,\n data: roleData,\n account: account\n });\n \n await (publicClient as any).waitForTransactionReceipt({ hash: registerHash });\n\n return {\n paymasterAddress,\n deployHash,\n registerHash\n };\n } catch (error) {\n throw error;\n }\n }\n\n /**\n * Deposit collateral (aPNTs/GToken) to SuperPaymaster.\n * This is a helper method used by registerAsSuperPaymasterOperator.\n */\n async depositCollateral(amount: bigint, options?: TransactionOptions): Promise<Hash> {\n try {\n const pm = superPaymasterActions(this.superPaymasterAddress);\n const publicClient = this.getStartPublicClient();\n \n // V3.7: Dynamically fetch the token expected by SuperPaymaster\n const depositToken = await pm(publicClient).APNTS_TOKEN();\n const token = tokenActions();\n \n // Approve SuperPaymaster to spend the token (usually aPNTs on Sepolia)\n const allowance = await token(publicClient).allowance({\n token: depositToken,\n owner: this.getAddress(),\n spender: this.superPaymasterAddress\n });\n \n if (allowance < amount) {\n const approveHash = await token(this.client).approve({\n token: depositToken,\n spender: this.superPaymasterAddress,\n amount,\n account: options?.account\n });\n await (publicClient as any).waitForTransactionReceipt({ hash: approveHash });\n }\n \n // Deposit to SuperPaymaster\n return pm(this.client).deposit({\n amount,\n account: options?.account\n });\n } catch (error) {\n throw error;\n }\n }\n\n /**\n * Configure operator parameters (Token, Treasury).\n * Exchange rate is now read live from xPNTsToken.exchangeRate() at runtime.\n * If parameters are undefined, existing values are preserved.\n */\n async configureOperator(\n xPNTsToken?: Address,\n treasury?: Address,\n options?: TransactionOptions\n ): Promise<Hash> {\n try {\n const sp = superPaymasterActions(this.superPaymasterAddress);\n const publicClient = this.getStartPublicClient();\n\n // Fetch current config to preserve missing values\n const currentConfig = await sp(publicClient).operators({ operator: this.getAddress() });\n\n const currentToken = currentConfig.xPNTsToken;\n const currentTreasury = currentConfig.treasury;\n\n return await sp(this.client).configureOperator({\n xPNTsToken: xPNTsToken || currentToken,\n opTreasury: treasury || currentTreasury,\n account: options?.account\n });\n } catch (error) {\n throw error;\n }\n }\n\n async withdrawCollateral(to: Address, amount: bigint, options?: TransactionOptions): Promise<Hash> {\n try {\n const sp = superPaymasterActions(this.superPaymasterAddress);\n return await sp(this.client).withdrawTo({\n to,\n amount,\n account: options?.account\n });\n } catch (error) {\n throw error;\n }\n }\n\n async isOperator(operator: Address): Promise<boolean> {\n try {\n const sp = superPaymasterActions(this.superPaymasterAddress);\n const config = await sp(this.getStartPublicClient()).operators({ operator });\n return config.isConfigured;\n } catch (error) {\n return false;\n }\n }\n\n async getOperatorDetails(operator?: Address): Promise<any> {\n try {\n const target = operator || this.getAddress();\n const sp = superPaymasterActions(this.superPaymasterAddress);\n return await sp(this.getStartPublicClient()).operators({ operator: target });\n } catch (error) {\n throw error;\n }\n }\n\n async initiateExit(options?: TransactionOptions): Promise<Hash> {\n try {\n const sp = superPaymasterActions(this.superPaymasterAddress);\n return await sp(this.client).unlockStake({\n account: options?.account\n });\n } catch (error) {\n throw error;\n }\n }\n\n async withdrawStake(to: Address, options?: TransactionOptions): Promise<Hash> {\n try {\n const sp = superPaymasterActions(this.superPaymasterAddress);\n return await sp(this.client).withdrawStake({\n to,\n account: options?.account\n });\n } catch (error) {\n throw error;\n }\n }\n\n // ========================================\n // 3. 支付代币管理 (基于 PaymasterActions)\n // ========================================\n\n async addGasToken(token: Address, price: bigint, options?: TransactionOptions): Promise<Hash> {\n try {\n const pm = paymasterActions(this.superPaymasterAddress);\n return await pm(this.client).setTokenPrice({\n token,\n price,\n account: options?.account\n });\n } catch (error) {\n throw error;\n }\n }\n\n async getTokenPrice(token: Address): Promise<bigint> {\n try {\n const pm = paymasterActions(this.superPaymasterAddress);\n return await pm(this.getStartPublicClient()).tokenPrices({ token });\n } catch (error) {\n throw error;\n }\n }\n\n async setupPaymasterDeposit(params: {\n paymaster: Address;\n user: Address;\n token: Address;\n amount: bigint;\n }, options?: TransactionOptions): Promise<Hash> {\n try {\n const pm = paymasterActions(params.paymaster);\n return await pm(this.client).depositFor({\n user: params.user,\n token: params.token,\n amount: params.amount,\n account: options?.account\n });\n } catch (error) {\n throw error;\n }\n }\n}\n","import { type Address, type Hash, type Hex } from 'viem';\nimport { BaseClient, type ClientConfig, type TransactionOptions } from '@aastar/core';\nimport { dvtActions, aggregatorActions, superPaymasterActions } from '@aastar/core';\n\nexport interface ProtocolClientConfig extends ClientConfig {\n dvtValidatorAddress: Address; // The DVT Validator contract (Governance)\n blsAggregatorAddress?: Address; // Optional BLS Aggregator\n superPaymasterAddress?: Address; // For Global Params\n}\n\nexport enum ProposalState {\n Pending = 0,\n Active = 1,\n Canceled = 2,\n Defeated = 3,\n Succeeded = 4,\n Queued = 5,\n Expired = 6,\n Executed = 7\n}\n\n/**\n * Client for Protocol Governors and Validators (Infrastructure)\n */\nexport class ProtocolClient extends BaseClient {\n public dvtValidatorAddress: Address;\n public blsAggregatorAddress?: Address;\n public superPaymasterAddress?: Address;\n\n constructor(config: ProtocolClientConfig) {\n super(config);\n this.dvtValidatorAddress = config.dvtValidatorAddress;\n this.blsAggregatorAddress = config.blsAggregatorAddress;\n this.superPaymasterAddress = config.superPaymasterAddress;\n }\n\n // ========================================\n // 1. 提案管理 (DVT)\n // ========================================\n\n /**\n * Create a new proposal\n */\n async createProposal(target: Address, calldata: Hex, description: string, options?: TransactionOptions): Promise<Hash> {\n try {\n const dvt = dvtActions(this.dvtValidatorAddress)(this.client);\n \n // Mapping general \"createProposal\" to \"createSlashProposal\" for now\n // Assuming Governance uses Validator logic or this Client is for Slash.\n // Using createSlashProposal as the available action.\n return await dvt.createSlashProposal({\n operator: target,\n level: 1, // Default level\n reason: description,\n account: options?.account\n });\n } catch (error) {\n throw error;\n }\n }\n\n async signProposal(proposalId: bigint, signature: Hex = '0x', options?: TransactionOptions): Promise<Hash> {\n try {\n const dvt = dvtActions(this.dvtValidatorAddress)(this.client);\n return await dvt.signSlashProposal({\n proposalId,\n signature,\n account: options?.account\n });\n } catch (error) {\n throw error;\n }\n }\n\n /**\n * Execute a proposal with collected signatures\n */\n async executeWithProof(proposalId: bigint, signatures: Hex[], options?: TransactionOptions): Promise<Hash> {\n try {\n // Mock proof generation logic or placeholder\n const proof = '0x' as Hex; \n const dvt = dvtActions(this.dvtValidatorAddress)(this.client);\n \n return await dvt.executeSlashWithProof({\n proposalId,\n repUsers: [], // Needs real data in production\n newScores: [],\n epoch: 0n,\n proof,\n account: options?.account\n });\n } catch (error) {\n throw error;\n }\n }\n\n // ========================================\n // 2. 验证器管理 / BLS\n // ========================================\n\n async registerBLSKey(publicKey: Hex, options?: TransactionOptions): Promise<Hash> {\n try {\n if (!this.blsAggregatorAddress) {\n throw new Error('BLS Aggregator address required for this client');\n }\n // Aggregator actions now handle the type internally or via mapping\n const agg = aggregatorActions(this.blsAggregatorAddress)(this.client);\n \n return await agg.registerBLSPublicKey({\n validator: this.getAddress(),\n publicKey,\n account: options?.account\n });\n } catch (error) {\n throw error;\n }\n }\n\n // ========================================\n // 3. 全局参数管理 (Admin)\n // ========================================\n\n async setProtocolFee(bps: bigint, options?: TransactionOptions): Promise<Hash> {\n try {\n if (!this.superPaymasterAddress) {\n throw new Error('SuperPaymaster address required for this client');\n }\n const sp = superPaymasterActions(this.superPaymasterAddress);\n \n return await sp(this.client).setProtocolFee({\n newFeeBPS: bps,\n account: options?.account\n });\n } catch (error) {\n throw error;\n }\n }\n\n async setTreasury(treasury: Address, options?: TransactionOptions): Promise<Hash> {\n try {\n if (!this.superPaymasterAddress) {\n throw new Error('SuperPaymaster address required for this client');\n }\n const sp = superPaymasterActions(this.superPaymasterAddress);\n \n return await sp(this.client).setTreasury({\n treasury,\n account: options?.account\n });\n } catch (error) {\n throw error;\n }\n }\n}\n","import { type Address, type Hash, type Hex, parseEther } from 'viem';\nimport { type TransactionOptions } from '@aastar/core';\nimport { PaymasterOperatorClient, type OperatorClientConfig } from './PaymasterOperatorClient.js';\nimport { tokenActions, registryActions } from '@aastar/core'; // L2/L1 Actions\n\nexport interface OperatorStatus {\n isConfigured: boolean;\n isActive: boolean;\n balance: bigint;\n}\n\n/**\n * OperatorLifecycle - L3 Pattern\n * \n * Responsibilities:\n * 1. Managing the complete lifecycle of a Paymaster Operator\n * 2. Unifying setup (onboard), operation (config), and exit (withdraw)\n */\nexport class OperatorLifecycle extends PaymasterOperatorClient {\n\n constructor(config: OperatorClientConfig) {\n super(config);\n }\n\n // ===========================================\n // 1. Setup Phase (Onboarding)\n // ===========================================\n\n /**\n * Check if the account is ready to become an operator\n * (e.g., has GToken, has ROLE_COMMUNITY, etc.)\n */\n async checkReadiness(): Promise<OperatorStatus> {\n const isOp = await this.isOperator(this.getAddress());\n // For SuperPaymaster, balance is 'aPNTsBalance' (Collateral)\n const details = await this.getOperatorDetails();\n const balance = details.aPNTsBalance || 0n;\n \n return {\n isConfigured: isOp,\n isActive: isOp, // Simplification\n balance\n };\n }\n\n /**\n * One-click Setup: Register + Deposit + Deploy Node\n * Wraps existing registerAsSuperPaymasterOperator or deployAndRegisterPaymasterV4\n */\n async setupNode(params: {\n type: 'V4' | 'SUPER';\n stakeAmount?: bigint;\n depositAmount?: bigint;\n }, options?: TransactionOptions): Promise<Hash[]> {\n const hashes: Hash[] = [];\n\n if (params.type === 'SUPER') {\n const h = await this.registerAsSuperPaymasterOperator({\n stakeAmount: params.stakeAmount,\n depositAmount: params.depositAmount\n }, options);\n hashes.push(h);\n\n // Fetch Token Address and Configure\n const factory = await import('@aastar/core').then(m => m.xPNTsFactoryActions(this.xpntsFactory!)(this.getStartPublicClient()));\n const token = await factory.getTokenAddress({ community: this.getAddress() });\n \n if (token && token !== '0x0000000000000000000000000000000000000000') {\n const hConfig = await this.configureOperator(\n token,\n this.getAddress(), // Default treasury to self\n options\n );\n hashes.push(hConfig);\n }\n } else {\n const result = await this.deployAndRegisterPaymasterV4({\n stakeAmount: params.stakeAmount\n }, options);\n hashes.push(result.deployHash);\n hashes.push(result.registerHash);\n }\n\n return hashes;\n }\n\n // ===========================================\n // 2. Operational Phase (Config & Funds)\n // ===========================================\n\n // Inherits: addGasToken, configureOperator, depositCollateral from PaymasterOperatorClient\n\n async getOperatorStats(): Promise<any> {\n return await this.getOperatorDetails();\n }\n\n // ===========================================\n // 3. Exit Phase (Withdraw & Leave)\n // ===========================================\n\n /**\n * Start the exit process: Unstake from Registry/SuperPaymaster and Unlock funds\n */\n async initiateExit(options?: TransactionOptions): Promise<Hash> {\n // 1. Unlock Stake from SuperPaymaster (if applicable)\n return await super.initiateExit(options);\n }\n\n /**\n * Finalize exit: Withdraw all funds (Collateral + Rewards)\n */\n async withdrawAllFunds(to?: Address, options?: TransactionOptions): Promise<Hash[]> {\n const recipient = to || this.getAddress();\n const hashes: Hash[] = [];\n\n // 1. Withdraw Collateral from SuperPaymaster (if any)\n // Note: We need to know the balance to withdraw exact amount.\n // For current L3 pattern, we assume the user tracks it or we fetch it.\n const stats = await this.checkReadiness();\n if (stats.balance > 0n) {\n const hCol = await this.withdrawCollateral(recipient, stats.balance, options);\n hashes.push(hCol);\n }\n\n // 2. Exit Role in Registry (Unstake GToken)\n // This will fail if lock duration > 0 and not yet cooldown.\n // Or it will initiate cooldown.\n const client = this.getStartPublicClient();\n const registry = registryActions(this.registryAddress as Address); // Use local registry address\n const registryWriter = registryActions(this.registryAddress as Address)(this.client);\n \n // Check if we have the role\n // For Super Operator\n const ROLE_PAYMASTER_SUPER = await registry(client).ROLE_PAYMASTER_SUPER();\n const hasRole = await registry(client).hasRole({ user: this.getAddress(), roleId: ROLE_PAYMASTER_SUPER });\n \n if (hasRole) {\n const hExit = await registryWriter.exitRole({ roleId: ROLE_PAYMASTER_SUPER, account: options?.account });\n hashes.push(hExit);\n }\n\n return hashes;\n }\n\n // Helper: Get GToken Balance\n private async getTokenBalance(): Promise<bigint> {\n if (!this.tokenAddress) return 0n;\n const token = tokenActions()(this.getStartPublicClient());\n return await token.balanceOf({ token: this.tokenAddress, account: this.getAddress() });\n }\n}\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkIB3KOSHW_cjs = require('./chunk-IB3KOSHW.cjs');
|
|
4
4
|
|
|
5
5
|
// ../channel/src/voucher.ts
|
|
6
6
|
var VOUCHER_TYPES = {
|
|
@@ -42,8 +42,8 @@ var ChannelClient = class {
|
|
|
42
42
|
config;
|
|
43
43
|
constructor(config) {
|
|
44
44
|
this.config = config;
|
|
45
|
-
this.readActions =
|
|
46
|
-
this.writeActions =
|
|
45
|
+
this.readActions = chunkIB3KOSHW_cjs.channelActions(config.channelAddress)(config.publicClient);
|
|
46
|
+
this.writeActions = chunkIB3KOSHW_cjs.channelActions(config.channelAddress)(config.walletClient);
|
|
47
47
|
}
|
|
48
48
|
async openChannel(channelConfig) {
|
|
49
49
|
return this.writeActions.openChannel({
|
|
@@ -114,5 +114,5 @@ exports.ChannelClient = ChannelClient;
|
|
|
114
114
|
exports.VOUCHER_TYPES = VOUCHER_TYPES;
|
|
115
115
|
exports.getVoucherDomain = getVoucherDomain;
|
|
116
116
|
exports.signVoucher = signVoucher;
|
|
117
|
-
//# sourceMappingURL=chunk-
|
|
118
|
-
//# sourceMappingURL=chunk-
|
|
117
|
+
//# sourceMappingURL=chunk-MANVOQY7.cjs.map
|
|
118
|
+
//# sourceMappingURL=chunk-MANVOQY7.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../channel/src/voucher.ts","../../channel/src/ChannelClient.ts"],"names":["channelActions"],"mappings":";;;;;AAEO,IAAM,aAAA,GAAgB;AAAA,EACzB,OAAA,EAAS;AAAA,IACL,EAAE,IAAA,EAAM,WAAA,EAAa,IAAA,EAAM,SAAA,EAAU;AAAA,IACrC,EAAE,IAAA,EAAM,kBAAA,EAAoB,IAAA,EAAM,SAAA;AAAU;AAEpD;AAEO,SAAS,gBAAA,CAAiB,SAAiB,iBAAA,EAA4B;AAC1E,EAAA,OAAO;AAAA,IACH,IAAA,EAAM,qBAAA;AAAA,IACN,OAAA,EAAS,OAAA;AAAA,IACT,OAAA;AAAA,IACA;AAAA,GACJ;AACJ;AAEA,eAAsB,WAAA,CAClB,cACA,MAAA,EAMY;AACZ,EAAA,MAAM,MAAA,GAAS,gBAAA,CAAiB,MAAA,CAAO,OAAA,EAAS,OAAO,iBAAiB,CAAA;AAExE,EAAA,MAAM,UAAU,YAAA,CAAa,OAAA;AAC7B,EAAA,IAAI,CAAC,OAAA,EAAS;AACV,IAAA,MAAM,IAAI,MAAM,mCAAmC,CAAA;AAAA,EACvD;AAEA,EAAA,OAAO,aAAa,aAAA,CAAc;AAAA,IAC9B,OAAA;AAAA,IACA,MAAA;AAAA,IACA,KAAA,EAAO,aAAA;AAAA,IACP,WAAA,EAAa,SAAA;AAAA,IACb,OAAA,EAAS;AAAA,MACL,WAAW,MAAA,CAAO,SAAA;AAAA,MAClB,kBAAkB,MAAA,CAAO;AAAA;AAC7B,GACH,CAAA;AACL;;;AChCO,IAAM,gBAAN,MAAoB;AAAA,EACN,WAAA;AAAA,EACA,YAAA;AAAA,EACA,MAAA;AAAA,EAEjB,YAAY,MAAA,EAA6B;AACrC,IAAA,IAAA,CAAK,MAAA,GAAS,MAAA;AAKd,IAAA,IAAA,CAAK,cAAcA,gCAAA,CAAe,MAAA,CAAO,cAAc,CAAA,CAAE,OAAO,YAAY,CAAA;AAC5E,IAAA,IAAA,CAAK,eAAeA,gCAAA,CAAe,MAAA,CAAO,cAAc,CAAA,CAAE,OAAO,YAAY,CAAA;AAAA,EACjF;AAAA,EAEA,MAAM,YAAY,aAAA,EAA6C;AAC3D,IAAA,OAAO,IAAA,CAAK,aAAa,WAAA,CAAY;AAAA,MACjC,OAAO,aAAA,CAAc,KAAA;AAAA,MACrB,OAAO,aAAA,CAAc,KAAA;AAAA,MACrB,SAAS,aAAA,CAAc,OAAA;AAAA,MACvB,MAAM,aAAA,CAAc,IAAA;AAAA,MACpB,kBAAkB,aAAA,CAAc,gBAAA;AAAA,MAChC,OAAA,EAAS,IAAA,CAAK,MAAA,CAAO,YAAA,CAAa;AAAA,KACrC,CAAA;AAAA,EACL;AAAA,EAEA,MAAM,kBAAA,CAAmB,SAAA,EAAgB,gBAAA,EAAkD;AACvF,IAAA,MAAM,SAAA,GAAY,MAAM,WAAA,CAAY,IAAA,CAAK,OAAO,YAAA,EAAc;AAAA,MAC1D,SAAA;AAAA,MACA,gBAAA;AAAA,MACA,OAAA,EAAS,KAAK,MAAA,CAAO,OAAA;AAAA,MACrB,iBAAA,EAAmB,KAAK,MAAA,CAAO;AAAA,KAClC,CAAA;AAED,IAAA,OAAO,EAAE,SAAA,EAAW,gBAAA,EAAkB,SAAA,EAAU;AAAA,EACpD;AAAA,EAEA,MAAM,cAAc,OAAA,EAAuC;AACvD,IAAA,OAAO,IAAA,CAAK,aAAa,aAAA,CAAc;AAAA,MACnC,WAAW,OAAA,CAAQ,SAAA;AAAA,MACnB,kBAAkB,OAAA,CAAQ,gBAAA;AAAA,MAC1B,WAAW,OAAA,CAAQ,SAAA;AAAA,MACnB,OAAA,EAAS,IAAA,CAAK,MAAA,CAAO,YAAA,CAAa;AAAA,KACrC,CAAA;AAAA,EACL;AAAA,EAEA,MAAM,aAAa,OAAA,EAAuC;AACtD,IAAA,OAAO,IAAA,CAAK,aAAa,YAAA,CAAa;AAAA,MAClC,WAAW,OAAA,CAAQ,SAAA;AAAA,MACnB,kBAAkB,OAAA,CAAQ,gBAAA;AAAA,MAC1B,WAAW,OAAA,CAAQ,SAAA;AAAA,MACnB,OAAA,EAAS,IAAA,CAAK,MAAA,CAAO,YAAA,CAAa;AAAA,KACrC,CAAA;AAAA,EACL;AAAA,EAEA,MAAM,YAAA,CAAa,SAAA,EAAgB,MAAA,EAA+B;AAC9D,IAAA,OAAO,IAAA,CAAK,aAAa,YAAA,CAAa;AAAA,MAClC,SAAA;AAAA,MACA,MAAA;AAAA,MACA,OAAA,EAAS,IAAA,CAAK,MAAA,CAAO,YAAA,CAAa;AAAA,KACrC,CAAA;AAAA,EACL;AAAA,EAEA,MAAM,aAAa,SAAA,EAA+B;AAC9C,IAAA,OAAO,IAAA,CAAK,aAAa,mBAAA,CAAoB;AAAA,MACzC,SAAA;AAAA,MACA,OAAA,EAAS,IAAA,CAAK,MAAA,CAAO,YAAA,CAAa;AAAA,KACrC,CAAA;AAAA,EACL;AAAA,EAEA,MAAM,SAAS,SAAA,EAA+B;AAC1C,IAAA,OAAO,IAAA,CAAK,aAAa,eAAA,CAAgB;AAAA,MACrC,SAAA;AAAA,MACA,OAAA,EAAS,IAAA,CAAK,MAAA,CAAO,YAAA,CAAa;AAAA,KACrC,CAAA;AAAA,EACL;AAAA,EAEA,MAAM,gBAAgB,SAAA,EAAuC;AACzD,IAAA,OAAO,IAAA,CAAK,WAAA,CAAY,UAAA,CAAW,EAAE,WAAW,CAAA;AAAA,EACpD;AAAA,EAEA,MAAM,eAAA,GAAmC;AACrC,IAAA,OAAO,IAAA,CAAK,YAAY,aAAA,EAAc;AAAA,EAC1C;AAAA,EAEA,MAAM,UAAA,GAA8B;AAChC,IAAA,OAAO,IAAA,CAAK,YAAY,OAAA,EAAQ;AAAA,EACpC;AACJ","file":"chunk-
|
|
1
|
+
{"version":3,"sources":["../../channel/src/voucher.ts","../../channel/src/ChannelClient.ts"],"names":["channelActions"],"mappings":"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","file":"chunk-MANVOQY7.cjs","sourcesContent":["import { type Address, type Hex, type WalletClient } from 'viem';\n\nexport const VOUCHER_TYPES = {\n Voucher: [\n { name: 'channelId', type: 'bytes32' },\n { name: 'cumulativeAmount', type: 'uint128' },\n ],\n} as const;\n\nexport function getVoucherDomain(chainId: number, verifyingContract: Address) {\n return {\n name: 'MicroPaymentChannel',\n version: '1.0.0',\n chainId,\n verifyingContract,\n };\n}\n\nexport async function signVoucher(\n walletClient: WalletClient,\n params: {\n channelId: Hex;\n cumulativeAmount: bigint;\n chainId: number;\n verifyingContract: Address;\n }\n): Promise<Hex> {\n const domain = getVoucherDomain(params.chainId, params.verifyingContract);\n\n const account = walletClient.account;\n if (!account) {\n throw new Error('WalletClient must have an account');\n }\n\n return walletClient.signTypedData({\n account,\n domain,\n types: VOUCHER_TYPES,\n primaryType: 'Voucher',\n message: {\n channelId: params.channelId,\n cumulativeAmount: params.cumulativeAmount,\n },\n });\n}\n","import { type Address, type Hex, type Hash, type PublicClient, type WalletClient } from 'viem';\nimport { channelActions, type ChannelState } from '@aastar/core';\nimport type { SignedVoucher, ChannelConfig } from './types.js';\nimport { signVoucher } from './voucher.js';\n\nexport type ChannelClientConfig = {\n publicClient: PublicClient;\n walletClient: WalletClient;\n channelAddress: Address;\n chainId: number;\n};\n\nexport class ChannelClient {\n private readonly readActions;\n private readonly writeActions;\n private readonly config: ChannelClientConfig;\n\n constructor(config: ChannelClientConfig) {\n this.config = config;\n // Separate clients: publicClient for reads (no account required),\n // walletClient for writes. Unlike X402Client which is always write-first,\n // ChannelClient exposes read-heavy helpers (getChannel, verifyVoucher) that\n // callers may invoke without a wallet configured.\n this.readActions = channelActions(config.channelAddress)(config.publicClient);\n this.writeActions = channelActions(config.channelAddress)(config.walletClient);\n }\n\n async openChannel(channelConfig: ChannelConfig): Promise<Hash> {\n return this.writeActions.openChannel({\n payee: channelConfig.payee,\n token: channelConfig.token,\n deposit: channelConfig.deposit,\n salt: channelConfig.salt,\n authorizedSigner: channelConfig.authorizedSigner,\n account: this.config.walletClient.account!,\n });\n }\n\n async signVoucherOffline(channelId: Hex, cumulativeAmount: bigint): Promise<SignedVoucher> {\n const signature = await signVoucher(this.config.walletClient, {\n channelId,\n cumulativeAmount,\n chainId: this.config.chainId,\n verifyingContract: this.config.channelAddress,\n });\n\n return { channelId, cumulativeAmount, signature };\n }\n\n async settleChannel(voucher: SignedVoucher): Promise<Hash> {\n return this.writeActions.settleChannel({\n channelId: voucher.channelId,\n cumulativeAmount: voucher.cumulativeAmount,\n signature: voucher.signature,\n account: this.config.walletClient.account!,\n });\n }\n\n async closeChannel(voucher: SignedVoucher): Promise<Hash> {\n return this.writeActions.closeChannel({\n channelId: voucher.channelId,\n cumulativeAmount: voucher.cumulativeAmount,\n signature: voucher.signature,\n account: this.config.walletClient.account!,\n });\n }\n\n async topUpChannel(channelId: Hex, amount: bigint): Promise<Hash> {\n return this.writeActions.topUpChannel({\n channelId,\n amount,\n account: this.config.walletClient.account!,\n });\n }\n\n async requestClose(channelId: Hex): Promise<Hash> {\n return this.writeActions.requestCloseChannel({\n channelId,\n account: this.config.walletClient.account!,\n });\n }\n\n async withdraw(channelId: Hex): Promise<Hash> {\n return this.writeActions.withdrawChannel({\n channelId,\n account: this.config.walletClient.account!,\n });\n }\n\n async getChannelState(channelId: Hex): Promise<ChannelState> {\n return this.readActions.getChannel({ channelId });\n }\n\n async getCloseTimeout(): Promise<bigint> {\n return this.readActions.CLOSE_TIMEOUT();\n }\n\n async getVersion(): Promise<string> {\n return this.readActions.version();\n }\n}\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkIB3KOSHW_cjs = require('./chunk-IB3KOSHW.cjs');
|
|
4
4
|
var viem = require('viem');
|
|
5
5
|
|
|
6
6
|
var DEFAULT_VERIFICATION_GAS = 160000n;
|
|
@@ -30,7 +30,7 @@ async function checkEligibility(client, paymaster, user, operator) {
|
|
|
30
30
|
try {
|
|
31
31
|
const operatorData = await client.readContract({
|
|
32
32
|
address: paymaster,
|
|
33
|
-
abi:
|
|
33
|
+
abi: chunkIB3KOSHW_cjs.SuperPaymasterABI,
|
|
34
34
|
functionName: "operators",
|
|
35
35
|
args: [operator]
|
|
36
36
|
});
|
|
@@ -42,7 +42,7 @@ async function checkEligibility(client, paymaster, user, operator) {
|
|
|
42
42
|
}
|
|
43
43
|
const credit = await client.readContract({
|
|
44
44
|
address: paymaster,
|
|
45
|
-
abi:
|
|
45
|
+
abi: chunkIB3KOSHW_cjs.SuperPaymasterABI,
|
|
46
46
|
functionName: "getAvailableCredit",
|
|
47
47
|
args: [user, token]
|
|
48
48
|
});
|
|
@@ -66,7 +66,7 @@ var SuperPaymasterAdminClient = class {
|
|
|
66
66
|
async getOperator(operator) {
|
|
67
67
|
return this.client.readContract({
|
|
68
68
|
address: this.paymasterAddress,
|
|
69
|
-
abi:
|
|
69
|
+
abi: chunkIB3KOSHW_cjs.SuperPaymasterABI,
|
|
70
70
|
functionName: "operators",
|
|
71
71
|
args: [operator]
|
|
72
72
|
});
|
|
@@ -74,7 +74,7 @@ var SuperPaymasterAdminClient = class {
|
|
|
74
74
|
static async configureOperator(wallet, paymaster, token, treasury) {
|
|
75
75
|
return wallet.writeContract({
|
|
76
76
|
address: paymaster,
|
|
77
|
-
abi:
|
|
77
|
+
abi: chunkIB3KOSHW_cjs.SuperPaymasterABI,
|
|
78
78
|
functionName: "configureOperator",
|
|
79
79
|
args: [token, treasury],
|
|
80
80
|
chain: wallet.chain
|
|
@@ -83,7 +83,7 @@ var SuperPaymasterAdminClient = class {
|
|
|
83
83
|
static async setOperatorPaused(wallet, paymaster, operator, paused) {
|
|
84
84
|
return wallet.writeContract({
|
|
85
85
|
address: paymaster,
|
|
86
|
-
abi:
|
|
86
|
+
abi: chunkIB3KOSHW_cjs.SuperPaymasterABI,
|
|
87
87
|
functionName: "setOperatorPaused",
|
|
88
88
|
args: [operator, paused],
|
|
89
89
|
chain: wallet.chain
|
|
@@ -92,7 +92,7 @@ var SuperPaymasterAdminClient = class {
|
|
|
92
92
|
static async updateReputation(wallet, paymaster, operator, score) {
|
|
93
93
|
return wallet.writeContract({
|
|
94
94
|
address: paymaster,
|
|
95
|
-
abi:
|
|
95
|
+
abi: chunkIB3KOSHW_cjs.SuperPaymasterABI,
|
|
96
96
|
functionName: "updateReputation",
|
|
97
97
|
args: [operator, score],
|
|
98
98
|
chain: wallet.chain
|
|
@@ -101,7 +101,7 @@ var SuperPaymasterAdminClient = class {
|
|
|
101
101
|
static async setAPNTsToken(wallet, paymaster, token) {
|
|
102
102
|
return wallet.writeContract({
|
|
103
103
|
address: paymaster,
|
|
104
|
-
abi:
|
|
104
|
+
abi: chunkIB3KOSHW_cjs.SuperPaymasterABI,
|
|
105
105
|
functionName: "setAPNTsToken",
|
|
106
106
|
args: [token],
|
|
107
107
|
chain: wallet.chain
|
|
@@ -110,7 +110,7 @@ var SuperPaymasterAdminClient = class {
|
|
|
110
110
|
static async setXPNTsFactory(wallet, paymaster, factory) {
|
|
111
111
|
return wallet.writeContract({
|
|
112
112
|
address: paymaster,
|
|
113
|
-
abi:
|
|
113
|
+
abi: chunkIB3KOSHW_cjs.SuperPaymasterABI,
|
|
114
114
|
functionName: "setXPNTsFactory",
|
|
115
115
|
args: [factory],
|
|
116
116
|
chain: wallet.chain
|
|
@@ -1180,5 +1180,5 @@ exports.getPaymasterV4Middleware = getPaymasterV4Middleware;
|
|
|
1180
1180
|
exports.getSuperPaymasterMiddleware = getSuperPaymasterMiddleware;
|
|
1181
1181
|
exports.getUserOpHashV07 = getUserOpHashV07;
|
|
1182
1182
|
exports.tuneGasLimit = tuneGasLimit;
|
|
1183
|
-
//# sourceMappingURL=chunk-
|
|
1184
|
-
//# sourceMappingURL=chunk-
|
|
1183
|
+
//# sourceMappingURL=chunk-MCDFQ5JH.cjs.map
|
|
1184
|
+
//# sourceMappingURL=chunk-MCDFQ5JH.cjs.map
|