Skip to content

Latest commit

 

History

History
583 lines (324 loc) · 16.8 KB

File metadata and controls

583 lines (324 loc) · 16.8 KB

Defined in: packages/enduser/src/UserClient.ts:17

Extends

Constructors

Constructor

new UserClient(config): UserClient

Defined in: packages/enduser/src/UserClient.ts:26

Parameters

Parameter Type
config UserClientConfig

Returns

UserClient

Overrides

BaseClient.constructor

Properties

accountAddress

accountAddress: `0x${string}`

Defined in: packages/enduser/src/UserClient.ts:18


bundlerClient?

optional bundlerClient: any

Defined in: packages/enduser/src/UserClient.ts:24


client

client: WalletClient

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

Inherited from

BaseClient.client


entryPointAddress?

optional entryPointAddress: `0x${string}`

Defined in: packages/enduser/src/UserClient.ts:20

Overrides

BaseClient.entryPointAddress


gTokenAddress?

optional gTokenAddress: `0x${string}`

Defined in: packages/enduser/src/UserClient.ts:23

Overrides

BaseClient.gTokenAddress


gTokenStakingAddress?

optional gTokenStakingAddress: `0x${string}`

Defined in: packages/enduser/src/UserClient.ts:21

Overrides

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?

optional registryAddress: `0x${string}`

Defined in: packages/enduser/src/UserClient.ts:22

Overrides

BaseClient.registryAddress


sbtAddress?

optional sbtAddress: `0x${string}`

Defined in: packages/enduser/src/UserClient.ts:19

Methods

execute()

execute(target, value, data, options?): Promise<`0x${string}`>

Defined in: packages/enduser/src/UserClient.ts:155

Execute a transaction from the AA account

Parameters

Parameter Type
target `0x${string}`
value bigint
data `0x${string}`
options? TransactionOptions

Returns

Promise<`0x${string}`>


executeBatch()

executeBatch(targets, values, datas, options?): Promise<`0x${string}`>

Defined in: packages/enduser/src/UserClient.ts:174

Execute a batch of transactions

Parameters

Parameter Type
targets `0x${string}`[]
values bigint[]
datas `0x${string}`[]
options? TransactionOptions

Returns

Promise<`0x${string}`>


executeGasless()

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

Defined in: packages/enduser/src/UserClient.ts:441

Execute a transaction with Gasless Sponsorship

Parameters

Parameter Type
params { data: `0x${string}`; maxRate?: bigint; operator?: `0x${string}`; paymaster: `0x${string}`; paymasterType: "V4" | "Super"; target: `0x${string}`; value: bigint; }
params.data `0x${string}`
params.maxRate? bigint
params.operator? `0x${string}`
params.paymaster? `0x${string}`
params.paymasterType? "V4" | "Super"
params.target? `0x${string}`
params.value? bigint
options? TransactionOptions

Returns

Promise<`0x${string}`>


exitRole()

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

Defined in: packages/enduser/src/UserClient.ts:320

Parameters

Parameter Type
roleId `0x${string}`
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


getNonce()

getNonce(key): Promise<bigint>

Defined in: packages/enduser/src/UserClient.ts:125

Get the nonce of the account from EntryPoint (more reliable for 4337)

Parameters

Parameter Type Default value
key bigint 0n

Returns

Promise<bigint>


getOwner()

getOwner(): Promise<`0x${string}`>

Defined in: packages/enduser/src/UserClient.ts:143

Get the owner of the AA account

Returns

Promise<`0x${string}`>


getSBTBalance()

getSBTBalance(): Promise<bigint>

Defined in: packages/enduser/src/UserClient.ts:196

Get user's SBT balance

Returns

Promise<bigint>


getStakedBalance()

getStakedBalance(roleId): Promise<bigint>

Defined in: packages/enduser/src/UserClient.ts:302

Get staked balance for a specific role

Parameters

Parameter Type
roleId `0x${string}`

Returns

Promise<bigint>


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


getTokenBalance()

getTokenBalance(token): Promise<bigint>

Defined in: packages/enduser/src/UserClient.ts:248

Get Token Balance

Parameters

Parameter Type
token `0x${string}`

Returns

Promise<bigint>


leaveCommunity()

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

Defined in: packages/enduser/src/UserClient.ts:337

Parameters

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

Returns

Promise<`0x${string}`>


mintSBT()

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

Defined in: packages/enduser/src/UserClient.ts:209

Parameters

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

Returns

Promise<`0x${string}`>


registerAsEndUser()

registerAsEndUser(communityAddress, stakeAmount, options?): Promise<`0x${string}`>

Defined in: packages/enduser/src/UserClient.ts:358

Register as EndUser (One-click: Approve + Register) Handles GToken approval to Staking contract and Role registration.

Parameters

Parameter Type
communityAddress `0x${string}`
stakeAmount bigint
options? TransactionOptions

Returns

Promise<`0x${string}`>


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


stakeForRole()

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

Defined in: packages/enduser/src/UserClient.ts:265

Parameters

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

Returns

Promise<`0x${string}`>


transferToken()

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

Defined in: packages/enduser/src/UserClient.ts:230

Parameters

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

Returns

Promise<`0x${string}`>


unstakeFromRole()

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

Defined in: packages/enduser/src/UserClient.ts:282

Parameters

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

Returns

Promise<`0x${string}`>


deployAccount()

static deployAccount(client, params): Promise<{ accountAddress: `0x${string}`; hash: `0x${string}`; }>

Defined in: packages/enduser/src/UserClient.ts:45

Deploy a new Smart Account (Supports multiple factory types) Static helper to facilitate onboarding before instantiating the UserClient.

Parameters

Parameter Type Description
client any WalletClient to sign the deployment transaction
params { accountType?: string; customAbi?: any; factoryAddress?: `0x${string}`; owner: `0x${string}`; publicClient?: any; salt?: bigint; } Deployment parameters
params.accountType? string -
params.customAbi? any -
params.factoryAddress? `0x${string}` -
params.owner `0x${string}` -
params.publicClient? any -
params.salt? bigint -

Returns

Promise<{ accountAddress: `0x${string}`; hash: `0x${string}`; }>

Object containing the deployed account address and transaction hash