Skip to content

Latest commit

 

History

History
451 lines (241 loc) · 12.2 KB

File metadata and controls

451 lines (241 loc) · 12.2 KB

Defined in: enduser/src/UserLifecycle.ts:40

UserLifecycle - L3 Pattern

Responsibilities:

  1. Managing the complete lifecycle of an End User (Onboard -> Operate -> Exit)
  2. Providing a unified interface for Gasless operations
  3. Abstracting underlying contract interactions via L2 Actions

Extends

Constructors

Constructor

new UserLifecycle(config): UserLifecycle

Defined in: enduser/src/UserLifecycle.ts:51

Parameters

Parameter Type
config UserLifecycleConfig

Returns

UserLifecycle

Overrides

BaseClient.constructor

Properties

accountAddress

accountAddress: `0x${string}`

Defined in: enduser/src/UserLifecycle.ts:41


client

client: WalletClient

Defined in: core/dist/clients/BaseClient.d.ts:5

Inherited from

BaseClient.client


config

config: UserLifecycleConfig

Defined in: enduser/src/UserLifecycle.ts:49


entryPointAddress

entryPointAddress: `0x${string}`

Defined in: enduser/src/UserLifecycle.ts:46

Overrides

BaseClient.entryPointAddress


gaslessConfig?

optional gaslessConfig: GaslessConfig

Defined in: enduser/src/UserLifecycle.ts:47


gTokenAddress

gTokenAddress: `0x${string}`

Defined in: enduser/src/UserLifecycle.ts:44

Overrides

BaseClient.gTokenAddress


gTokenStakingAddress

gTokenStakingAddress: `0x${string}`

Defined in: enduser/src/UserLifecycle.ts:45

Overrides

BaseClient.gTokenStakingAddress


paymasterFactoryAddress?

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

Defined in: core/dist/clients/BaseClient.d.ts:10

Inherited from

BaseClient.paymasterFactoryAddress


publicClient?

optional publicClient: PublicClient

Defined in: core/dist/clients/BaseClient.d.ts:6

Inherited from

BaseClient.publicClient


registryAddress

registryAddress: `0x${string}`

Defined in: enduser/src/UserLifecycle.ts:42

Overrides

BaseClient.registryAddress


sbtAddress

sbtAddress: `0x${string}`

Defined in: enduser/src/UserLifecycle.ts:43

Methods

checkEligibility()

checkEligibility(community): Promise<boolean>

Defined in: enduser/src/UserLifecycle.ts:71

Check if user is eligible to join a community

Parameters

Parameter Type Description
community `0x${string}` Address of the community

Returns

Promise<boolean>


claimSBT()

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

Defined in: enduser/src/UserLifecycle.ts:170

Parameters

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

Returns

Promise<`0x${string}`>


enableGasless()

enableGasless(config): Promise<void>

Defined in: enduser/src/UserLifecycle.ts:123

Enable or update Gasless configuration

Parameters

Parameter Type
config GaslessConfig

Returns

Promise<void>


executeGaslessTx()

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

Defined in: enduser/src/UserLifecycle.ts:135

Execute a transaction effectively using Gasless configuration if available

Parameters

Parameter Type
params { data: `0x${string}`; operator?: `0x${string}`; target: `0x${string}`; value: bigint; }
params.data `0x${string}`
params.operator? `0x${string}`
params.target `0x${string}`
params.value bigint

Returns

Promise<`0x${string}`>


exitRole()

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

Defined in: enduser/src/UserLifecycle.ts:217

Parameters

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

Returns

Promise<`0x${string}`>


getAddress()

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

Defined in: core/dist/clients/BaseClient.d.ts:16

Get the account address of the connected wallet

Returns

`0x${string}`

Inherited from

BaseClient.getAddress


getCreditLimit()

getCreditLimit(): Promise<bigint>

Defined in: enduser/src/UserLifecycle.ts:199

Returns

Promise<bigint>


getMyReputation()

getMyReputation(): Promise<ReputationData>

Defined in: enduser/src/UserLifecycle.ts:183

Returns

Promise<ReputationData>


getStartPublicClient()

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

Defined in: core/dist/clients/BaseClient.d.ts:20

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

Returns

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

Inherited from

BaseClient.getStartPublicClient


leaveCommunity()

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

Defined in: enduser/src/UserLifecycle.ts:208

Parameters

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

Returns

Promise<`0x${string}`>


onboard()

onboard(community, stakeAmount): Promise<OnboardResult>

Defined in: enduser/src/UserLifecycle.ts:84

One-click Onboarding: Approve -> Stake -> Register -> Mint SBT

Parameters

Parameter Type Description
community `0x${string}` Address of the community to join
stakeAmount bigint Amount of GToken to stake (default 0.4 GT)

Returns

Promise<OnboardResult>


requireEntryPoint()

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

Defined in: core/dist/clients/BaseClient.d.ts:25

Returns

`0x${string}`

Inherited from

BaseClient.requireEntryPoint


requireGToken()

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

Defined in: core/dist/clients/BaseClient.d.ts:22

Returns

`0x${string}`

Inherited from

BaseClient.requireGToken


requireGTokenStaking()

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

Defined in: core/dist/clients/BaseClient.d.ts:23

Returns

`0x${string}`

Inherited from

BaseClient.requireGTokenStaking


requirePaymasterFactory()

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

Defined in: core/dist/clients/BaseClient.d.ts:24

Returns

`0x${string}`

Inherited from

BaseClient.requirePaymasterFactory


requireRegistry()

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

Defined in: core/dist/clients/BaseClient.d.ts:21

Returns

`0x${string}`

Inherited from

BaseClient.requireRegistry


unstakeAll()

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

Defined in: enduser/src/UserLifecycle.ts:226

Parameters

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

Returns

Promise<`0x${string}`>