Defined in: enduser/src/UserLifecycle.ts:40
UserLifecycle - L3 Pattern
Responsibilities:
- Managing the complete lifecycle of an End User (Onboard -> Operate -> Exit)
- Providing a unified interface for Gasless operations
- Abstracting underlying contract interactions via L2 Actions
new UserLifecycle(
config):UserLifecycle
Defined in: enduser/src/UserLifecycle.ts:51
| Parameter | Type |
|---|---|
config |
UserLifecycleConfig |
UserLifecycle
accountAddress:
`0x${string}`
Defined in: enduser/src/UserLifecycle.ts:41
client:
WalletClient
Defined in: core/dist/clients/BaseClient.d.ts:5
config:
UserLifecycleConfig
Defined in: enduser/src/UserLifecycle.ts:49
entryPointAddress:
`0x${string}`
Defined in: enduser/src/UserLifecycle.ts:46
optionalgaslessConfig:GaslessConfig
Defined in: enduser/src/UserLifecycle.ts:47
gTokenAddress:
`0x${string}`
Defined in: enduser/src/UserLifecycle.ts:44
gTokenStakingAddress:
`0x${string}`
Defined in: enduser/src/UserLifecycle.ts:45
BaseClient.gTokenStakingAddress
protectedoptionalpaymasterFactoryAddress:`0x${string}`
Defined in: core/dist/clients/BaseClient.d.ts:10
BaseClient.paymasterFactoryAddress
optionalpublicClient:PublicClient
Defined in: core/dist/clients/BaseClient.d.ts:6
registryAddress:
`0x${string}`
Defined in: enduser/src/UserLifecycle.ts:42
sbtAddress:
`0x${string}`
Defined in: enduser/src/UserLifecycle.ts:43
checkEligibility(
community):Promise<boolean>
Defined in: enduser/src/UserLifecycle.ts:71
Check if user is eligible to join a community
| Parameter | Type | Description |
|---|---|---|
community |
`0x${string}` |
Address of the community |
Promise<boolean>
claimSBT(
roleId,options?):Promise<`0x${string}`>
Defined in: enduser/src/UserLifecycle.ts:170
| Parameter | Type |
|---|---|
roleId |
`0x${string}` |
options? |
TransactionOptions |
Promise<`0x${string}`>
enableGasless(
config):Promise<void>
Defined in: enduser/src/UserLifecycle.ts:123
Enable or update Gasless configuration
| Parameter | Type |
|---|---|
config |
GaslessConfig |
Promise<void>
executeGaslessTx(
params):Promise<`0x${string}`>
Defined in: enduser/src/UserLifecycle.ts:135
Execute a transaction effectively using Gasless configuration if available
| 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 |
Promise<`0x${string}`>
exitRole(
roleId,options?):Promise<`0x${string}`>
Defined in: enduser/src/UserLifecycle.ts:217
| Parameter | Type |
|---|---|
roleId |
`0x${string}` |
options? |
TransactionOptions |
Promise<`0x${string}`>
getAddress():
`0x${string}`
Defined in: core/dist/clients/BaseClient.d.ts:16
Get the account address of the connected wallet
`0x${string}`
getCreditLimit():
Promise<bigint>
Defined in: enduser/src/UserLifecycle.ts:199
Promise<bigint>
getMyReputation():
Promise<ReputationData>
Defined in: enduser/src/UserLifecycle.ts:183
Promise<ReputationData>
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)
WalletClient<Transport, Chain | undefined, Account | undefined> | PublicClient
BaseClient.getStartPublicClient
leaveCommunity(
community,options?):Promise<`0x${string}`>
Defined in: enduser/src/UserLifecycle.ts:208
| Parameter | Type |
|---|---|
community |
`0x${string}` |
options? |
TransactionOptions |
Promise<`0x${string}`>
onboard(
community,stakeAmount):Promise<OnboardResult>
Defined in: enduser/src/UserLifecycle.ts:84
One-click Onboarding: Approve -> Stake -> Register -> Mint SBT
| Parameter | Type | Description |
|---|---|---|
community |
`0x${string}` |
Address of the community to join |
stakeAmount |
bigint |
Amount of GToken to stake (default 0.4 GT) |
Promise<OnboardResult>
protectedrequireEntryPoint():`0x${string}`
Defined in: core/dist/clients/BaseClient.d.ts:25
`0x${string}`
protectedrequireGToken():`0x${string}`
Defined in: core/dist/clients/BaseClient.d.ts:22
`0x${string}`
protectedrequireGTokenStaking():`0x${string}`
Defined in: core/dist/clients/BaseClient.d.ts:23
`0x${string}`
BaseClient.requireGTokenStaking
protectedrequirePaymasterFactory():`0x${string}`
Defined in: core/dist/clients/BaseClient.d.ts:24
`0x${string}`
BaseClient.requirePaymasterFactory
protectedrequireRegistry():`0x${string}`
Defined in: core/dist/clients/BaseClient.d.ts:21
`0x${string}`
unstakeAll(
roleId,options?):Promise<`0x${string}`>
Defined in: enduser/src/UserLifecycle.ts:226
| Parameter | Type |
|---|---|
roleId |
`0x${string}` |
options? |
TransactionOptions |
Promise<`0x${string}`>