Skip to content

Latest commit

 

History

History
527 lines (294 loc) · 16.3 KB

File metadata and controls

527 lines (294 loc) · 16.3 KB

Defined in: packages/operator/src/PaymasterOperatorClient.ts:20

Client for Paymaster Operators (ROLE_PAYMASTER_SUPER)

Extends

Extended by

Constructors

Constructor

new PaymasterOperatorClient(config): PaymasterOperatorClient

Defined in: packages/operator/src/PaymasterOperatorClient.ts:26

Parameters

Parameter Type
config OperatorClientConfig

Returns

PaymasterOperatorClient

Overrides

BaseClient.constructor

Properties

client

client: WalletClient

Defined in: packages/core/src/clients/BaseClient.ts:6

Inherited from

BaseClient.client


entryPointAddress?

protected optional entryPointAddress: `0x${string}`

Defined in: packages/core/src/clients/BaseClient.ts:12

Inherited from

BaseClient.entryPointAddress


ethUsdPriceFeed

ethUsdPriceFeed: `0x${string}`

Defined in: packages/operator/src/PaymasterOperatorClient.ts:23


gTokenAddress?

protected optional gTokenAddress: `0x${string}`

Defined in: packages/core/src/clients/BaseClient.ts:9

Inherited from

BaseClient.gTokenAddress


gTokenStakingAddress?

protected optional gTokenStakingAddress: `0x${string}`

Defined in: packages/core/src/clients/BaseClient.ts:10

Inherited from

BaseClient.gTokenStakingAddress


paymasterFactoryAddress?

protected optional paymasterFactoryAddress: `0x${string}`

Defined in: packages/core/src/clients/BaseClient.ts:11

Inherited from

BaseClient.paymasterFactoryAddress


publicClient?

optional publicClient: PublicClient

Defined in: packages/core/src/clients/BaseClient.ts:7

Inherited from

BaseClient.publicClient


registryAddress?

protected optional registryAddress: `0x${string}`

Defined in: packages/core/src/clients/BaseClient.ts:8

Inherited from

BaseClient.registryAddress


superPaymasterAddress

superPaymasterAddress: `0x${string}`

Defined in: packages/operator/src/PaymasterOperatorClient.ts:21


tokenAddress?

optional tokenAddress: `0x${string}`

Defined in: packages/operator/src/PaymasterOperatorClient.ts:22


xpntsFactory

xpntsFactory: `0x${string}`

Defined in: packages/operator/src/PaymasterOperatorClient.ts:24

Methods

addGasToken()

addGasToken(token, price, options?): Promise<`0x${string}`>

Defined in: packages/operator/src/PaymasterOperatorClient.ts:409

Parameters

Parameter Type
token `0x${string}`
price bigint
options? TransactionOptions

Returns

Promise<`0x${string}`>


configureOperator()

configureOperator(xPNTsToken?, treasury?, options?): Promise<`0x${string}`>

Defined in: packages/operator/src/PaymasterOperatorClient.ts:324

Configure operator parameters (Token, Treasury). Exchange rate is now read live from xPNTsToken.exchangeRate() at runtime. If parameters are undefined, existing values are preserved.

Parameters

Parameter Type
xPNTsToken? `0x${string}`
treasury? `0x${string}`
options? TransactionOptions

Returns

Promise<`0x${string}`>


deployAndRegisterPaymasterV4()

deployAndRegisterPaymasterV4(params?, options?): Promise<{ deployHash: `0x${string}`; paymasterAddress: `0x${string}`; registerHash: `0x${string}`; }>

Defined in: packages/operator/src/PaymasterOperatorClient.ts:142

Deploy a new Paymaster V4 and Register as AOA Operator (one-stop API). This method handles:

  1. Checks prerequisites (ROLE_COMMUNITY)
  2. Predicts new Paymaster address
  3. Deploys Paymaster V4 via Factory
  4. Registers ROLE_PAYMASTER_AOA with staking

Parameters

Parameter Type Description
params? { priceFeed?: `0x${string}`; salt?: bigint; stakeAmount?: bigint; version?: string; } Deployment parameters
params.priceFeed? `0x${string}` -
params.salt? bigint -
params.stakeAmount? bigint -
params.version? string -
options? TransactionOptions Transaction options

Returns

Promise<{ deployHash: `0x${string}`; paymasterAddress: `0x${string}`; registerHash: `0x${string}`; }>

Object containing new paymaster address and transaction hashes


depositCollateral()

depositCollateral(amount, options?): Promise<`0x${string}`>

Defined in: packages/operator/src/PaymasterOperatorClient.ts:283

Deposit collateral (aPNTs/GToken) to SuperPaymaster. This is a helper method used by registerAsSuperPaymasterOperator.

Parameters

Parameter Type
amount bigint
options? TransactionOptions

Returns

Promise<`0x${string}`>


getAddress()

getAddress(): `0x${string}`

Defined in: packages/core/src/clients/BaseClient.ts:34

Get the account address of the connected wallet

Returns

`0x${string}`

Inherited from

BaseClient.getAddress


getOperatorDetails()

getOperatorDetails(operator?): Promise<any>

Defined in: packages/operator/src/PaymasterOperatorClient.ts:372

Parameters

Parameter Type
operator? `0x${string}`

Returns

Promise<any>


getStartPublicClient()

getStartPublicClient(): PublicClient | WalletClient<Transport, Chain | undefined, Account | undefined>

Defined in: packages/core/src/clients/BaseClient.ts:41

Helper to ensure public client exists or fallback to wallet client (if it supports read)

Returns

PublicClient | WalletClient<Transport, Chain | undefined, Account | undefined>

Inherited from

BaseClient.getStartPublicClient


getTokenPrice()

getTokenPrice(token): Promise<bigint>

Defined in: packages/operator/src/PaymasterOperatorClient.ts:422

Parameters

Parameter Type
token `0x${string}`

Returns

Promise<bigint>


initiateExit()

initiateExit(options?): Promise<`0x${string}`>

Defined in: packages/operator/src/PaymasterOperatorClient.ts:382

Parameters

Parameter Type
options? TransactionOptions

Returns

Promise<`0x${string}`>


isOperator()

isOperator(operator): Promise<boolean>

Defined in: packages/operator/src/PaymasterOperatorClient.ts:362

Parameters

Parameter Type
operator `0x${string}`

Returns

Promise<boolean>


registerAsSuperPaymasterOperator()

registerAsSuperPaymasterOperator(params?, options?): Promise<`0x${string}`>

Defined in: packages/operator/src/PaymasterOperatorClient.ts:50

Register as SuperPaymaster Operator (one-stop API). This method handles all necessary steps:

  1. Checks prerequisites (must have ROLE_COMMUNITY)
  2. Checks and approves GToken to GTokenStaking
  3. Registers ROLE_PAYMASTER_SUPER
  4. Optionally deposits collateral to SuperPaymaster

Parameters

Parameter Type Description
params? { depositAmount?: bigint; stakeAmount?: bigint; } Registration parameters
params.depositAmount? bigint -
params.stakeAmount? bigint -
options? TransactionOptions Transaction options

Returns

Promise<`0x${string}`>

Transaction hash of role registration


requireEntryPoint()

protected requireEntryPoint(): `0x${string}`

Defined in: packages/core/src/clients/BaseClient.ts:73

Returns

`0x${string}`

Inherited from

BaseClient.requireEntryPoint


requireGToken()

protected requireGToken(): `0x${string}`

Defined in: packages/core/src/clients/BaseClient.ts:52

Returns

`0x${string}`

Inherited from

BaseClient.requireGToken


requireGTokenStaking()

protected requireGTokenStaking(): `0x${string}`

Defined in: packages/core/src/clients/BaseClient.ts:59

Returns

`0x${string}`

Inherited from

BaseClient.requireGTokenStaking


requirePaymasterFactory()

protected requirePaymasterFactory(): `0x${string}`

Defined in: packages/core/src/clients/BaseClient.ts:66

Returns

`0x${string}`

Inherited from

BaseClient.requirePaymasterFactory


requireRegistry()

protected requireRegistry(): `0x${string}`

Defined in: packages/core/src/clients/BaseClient.ts:45

Returns

`0x${string}`

Inherited from

BaseClient.requireRegistry


setupPaymasterDeposit()

setupPaymasterDeposit(params, options?): Promise<`0x${string}`>

Defined in: packages/operator/src/PaymasterOperatorClient.ts:431

Parameters

Parameter Type
params { amount: bigint; paymaster: `0x${string}`; token: `0x${string}`; user: `0x${string}`; }
params.amount bigint
params.paymaster? `0x${string}`
params.token? `0x${string}`
params.user? `0x${string}`
options? TransactionOptions

Returns

Promise<`0x${string}`>


withdrawCollateral()

withdrawCollateral(to, amount, options?): Promise<`0x${string}`>

Defined in: packages/operator/src/PaymasterOperatorClient.ts:349

Parameters

Parameter Type
to `0x${string}`
amount bigint
options? TransactionOptions

Returns

Promise<`0x${string}`>


withdrawStake()

withdrawStake(to, options?): Promise<`0x${string}`>

Defined in: packages/operator/src/PaymasterOperatorClient.ts:393

Parameters

Parameter Type
to `0x${string}`
options? TransactionOptions

Returns

Promise<`0x${string}`>