L3 Complete Lifecycle Patterns Design (完整版) Overview 基于 USER_CASE_DESIGN.md 和用户补充需求,实现所有角色完整生命周期 + 管理功能的 L3 Patterns。
🎯 核心原则 完整生命周期: 注册 → 配置 → 运营 → 退出 管理能力: 每个角色都有增删改查 (CRUD) 能力 业务聚类: 按职责分组(治理、运营、用户) Gasless原生: 所有Pattern支持Gasless配置 角色完整映射 📱 1. 终端用户 (End User) - UserLifecycle 职责: 参与社区、交易、积累信誉
完整生命周期:
未注册 → 加入社区(质押+SBT) → Gasless交易 → 更新信誉 → 绑定NFT → 退出社区 L3 Methods:
class UserLifecycle {
// 注册阶段
checkEligibility(community): Promise<boolean>
onboard(community, stakeAmount): Promise<OnboardResult>
enableGasless(config: GaslessConfig): Promise<void>
// 运营阶段
executeGaslessTx(tx): Promise<Hash>
claimSBT(roleId): Promise<Hash>
bindNFT(nftAddress, tokenId): Promise<Hash>
updateReputation(): Promise<ReputationScore>
// 查询能力
getMyReputation(): Promise<ReputationData>
getMySBTs(): Promise<SBT[]>
getMyNFTs(): Promise<NFT[]>
getCreditLimit(): Promise<bigint>
// 退出阶段
leaveCommunity(community): Promise<Hash>
exitRole(roleId): Promise<Hash>
unstakeAll(): Promise<Hash>
}🏛️ 2. 社区管理员 (Community Admin) - CommunityManager 职责: 启动社区、治理规则、成员管理
完整生命周期:
EOA → 注册社区 → 发行Token → 设置治理 → 管理成员 → 移交多签 L3 Methods:
class CommunityManager {
// 启动阶段 (已有 CommunityLaunchpad)
launch(params): Promise<LaunchResult>
// 成员管理
airdropSBT(users: Address[], roleId: Hex): Promise<Hash>
revokeSBT(tokenId: bigint): Promise<Hash>
batchMintNFT(users: Address[]): Promise<Hash>
// Reputation规则管理 ⭐ (新增)
addReputationRule(rule: ReputationRule): Promise<Hash>
updateReputationRule(ruleId: Hex, rule): Promise<Hash>
removeReputationRule(ruleId: Hex): Promise<Hash>
getActiveRules(): Promise<ReputationRule[]>
// 治理配置
setVotingPeriod(period: bigint): Promise<Hash>
setQuorum(quorum: number): Promise<Hash>
updateTreasury(newTreasury: Address): Promise<Hash>
// 移交阶段 ⭐ (新增)
transferToMultisig(multisig: Address): Promise<Hash>
// 查询能力
getCommunityStats(): Promise<CommunityStats>
getMembers(): Promise<Member[]>
getTreasuryBalance(): Promise<bigint>
}🚀 3. Paymaster 运营商 (PM Operator) - PaymasterOperator 职责: 部署节点、配置Gas、管理流动性
完整生命周期: ⭐ (需补充退出)
EOA → 资源检查 → 质押注册 → 部署节点 → 配置Token → 运营管理 → 退出/撤资 L3 Methods:
class PaymasterOperator {
// 启动阶段 (已有 OperatorLifecycle)
checkReadiness(): Promise<OperatorStatus>
setupNode(params): Promise<Hash[]>
// 配置管理
addGasToken(token, priceFeed): Promise<Hash>
removeGasToken(token): Promise<Hash>
updateFeeStrategy(strategy): Promise<Hash>
setExchangeRate(rate: bigint): Promise<Hash>
// 流动性管理
depositCollateral(amount: bigint): Promise<Hash>
withdrawCollateral(amount: bigint): Promise<Hash>
// 运营监控
getOperatorStats(): Promise<OperatorStats>
getSponsoredTxCount(): Promise<bigint>
getRevenue(): Promise<bigint>
// 退出阶段 ⭐ (新增)
initiateExit(): Promise<Hash>
completeExit(): Promise<Hash>
withdrawAllFunds(): Promise<Hash>
}⚡ 4. SuperPaymaster 运营商 - SuperPaymasterOperator ⭐ (新增) 职责: 管理全局Gas池、设置协议参数
完整生命周期:
协议批准 → 质押注册 → 配置国库 → 设置费率 → 管理流动性 → 退出 L3 Methods:
class SuperPaymasterOperator {
// 注册阶段 ⭐ (新增)
registerAsOperator(collateral: bigint): Promise<Hash>
stakeForRole(amount: bigint): Promise<Hash>
// 配置阶段 ⭐ (新增)
configureTreasury(treasury: Address): Promise<Hash>
setProtocolFee(feeBps: bigint): Promise<Hash>
setExchangeRate(token: Address, rate: bigint): Promise<Hash>
// 流动性管理
addLiquidity(amount: bigint): Promise<Hash>
removeLiquidity(amount: bigint): Promise<Hash>
// 运营监控
getPoolStats(): Promise<PoolStats>
getTotalSponsored(): Promise<bigint>
getOperatorRevenue(): Promise<bigint>
// 退出阶段 ⭐ (新增)
initiateOperatorExit(): Promise<Hash>
unstakeOperator(): Promise<Hash>
withdrawAllRewards(): Promise<Hash>
}🏛️ 5. 协议管理员 (Protocol Admin) - ProtocolGovernance ⭐ (增强) 职责: 全局参数治理、合约升级
完整生命周期:
部署EOA → 初始配置 → 日常治理 → 移交DAO多签 L3 Methods:
class ProtocolGovernance {
// 全局参数管理 ⭐ (增强)
setGlobalMinStake(amount: bigint): Promise<Hash>
setProtocolFee(recipient: Address, bps: bigint): Promise<Hash>
setTreasury(treasury: Address): Promise<Hash>
updateEntryPoint(entryPoint: Address): Promise<Hash>
// SuperPaymaster管理 ⭐ (新增)
approveSuperPaymasterOperator(operator: Address): Promise<Hash>
revokeSuperPaymasterOperator(operator: Address): Promise<Hash>
updateSPTreasury(treasury: Address): Promise<Hash>
setSPFeeRate(feeBps: bigint): Promise<Hash>
// 提案治理
createProposal(proposal: Proposal): Promise<Hash>
voteOnProposal(proposalId: Hex, support: boolean): Promise<Hash>
executeProposal(proposalId: Hex): Promise<Hash>
// 紧急控制
pauseProtocol(): Promise<Hash>
unpauseProtocol(): Promise<Hash>
// 移交阶段
transferToDAO(daoMultisig: Address): Promise<Hash>
// 查询能力
getProtocolParams(): Promise<ProtocolParams>
getAllOperators(): Promise<Operator[]>
getProposals(): Promise<Proposal[]>
}🔐 6. DVT 验证器 (DVT Operator) - DVTNodeManager ⭐ (新增) 职责: 分布式验证、BLS签名、治理投票
完整生命周期:
生成BLS密钥 → 注册验证器 → 加入验证集 → 签名验证 → 退出验证集 L3 Methods:
class DVTNodeManager {
// 注册阶段
generateBLSKeyPair(): Promise<BLSKeyPair>
registerBLSKey(pubkey: Hex): Promise<Hash>
joinValidatorSet(stake: bigint): Promise<Hash>
// 验证运营
signMessage(message: Hex): Promise<Signature>
aggregateSignatures(sigs: Signature[]): Promise<AggregatedSig>
submitValidation(data: ValidationData): Promise<Hash>
// 治理参与
proposeSlash(target: Address, reason: string): Promise<Hash>
voteOnSlash(proposalId: Hex, support: boolean): Promise<Hash>
// 查询能力
getValidatorStatus(): Promise<ValidatorStatus>
getSigningHistory(): Promise<SigningRecord[]>
getRewards(): Promise<bigint>
// 退出阶段
leaveValidatorSet(): Promise<Hash>
withdrawStake(): Promise<Hash>
}🔑 7. KMS 节点 (KMS Node) - KMSNodeManager ⭐ (新增) 职责: 密钥管理、签名服务
完整生命周期:
初始化节点 → 注册到Registry → 提供签名服务 → 密钥轮换 → 退出 L3 Methods:
class KMSNodeManager {
// 初始化
initializeNode(config: KMSConfig): Promise<Hash>
registerNode(nodeId: Hex): Promise<Hash>
// 密钥管理
generateKey(keyType: string): Promise<KeyInfo>
rotateKey(oldKeyId: Hex): Promise<KeyInfo>
revokeKey(keyId: Hex): Promise<Hash>
// 签名服务
signRequest(request: SignRequest): Promise<Signature>
batchSign(requests: SignRequest[]): Promise<Signature[]>
// 监控
getNodeHealth(): Promise<HealthStatus>
getSigningStats(): Promise<Stats>
// 退出
deactivateNode(): Promise<Hash>
exportKeys(backup: boolean): Promise<KeyBackup>
}🎨 Reputation 管理增强 ⭐ ReputationManager (新增)
class ReputationManager {
// 规则管理
addRule(community: Address, rule: ReputationRule): Promise<Hash>
updateRule(ruleId: Hex, newParams): Promise<Hash>
removeRule(ruleId: Hex): Promise<Hash>
activateRule(ruleId: Hex): Promise<Hash>
deactivateRule(ruleId: Hex): Promise<Hash>
// 积分更新
recordActivity(user: Address, activityType: string): Promise<Hash>
batchUpdateScores(users: Address[]): Promise<Hash>
// 查询
getUserReputation(user: Address): Promise<ReputationData>
getCommunityRules(community: Address): Promise<ReputationRule[]>
getTopUsers(limit: number): Promise<User[]>
}🎯 NFT 绑定增强 ⭐ NFTManager (新增)
class NFTManager {
// NFT绑定
bindNFTToSBT(sbtId: bigint, nftAddr: Address, nftId: bigint): Promise<Hash>
unbindNFT(sbtId: bigint, nftAddr: Address): Promise<Hash>
// 查询
getBoundNFTs(sbtId: bigint): Promise<NFTBinding[]>
verifiyNFTOwnership(user: Address, nftAddr: Address): Promise<boolean>
// 批量操作
batchBindNFTs(bindings: NFTBinding[]): Promise<Hash>
}📋 实现优先级 (修订) P0 - 核心生命周期 (立即实现) ✅ CommunityLaunchpad (已完成) ✅ StakingManager (已完成) ✅ OperatorLifecycle (已完成,需补充退出) 🔄 UserLifecycle (完整版,含Gasless) 🔄 SuperPaymasterOperator (新增) 🔄 ProtocolGovernance (增强版) P1 - 管理增强 (下一阶段) ReputationManager NFTManager DVTNodeManager KMSNodeManager P2 - 工具函数 GaslessHelper - Paymaster配置工具 RoleHelper - 角色权限检查工具 🧪 验证计划 Scenario完整测试 // examples/l3-complete-lifecycle-demo.ts async function fullEcosystemDemo() { // 1. 协议启动 const protocol = new ProtocolGovernance(config); await protocol.setGlobalMinStake(...);
// 2. 社区启动 const community = new CommunityManager(config); await community.launch({ name: "TestDAO", ... }); await community.addReputationRule(...);
// 3. 运营商部署 const spOperator = new SuperPaymasterOperator(config); await spOperator.registerAsOperator(1000n); await spOperator.configureTreasury(...);
const pmOperator = new PaymasterOperator(config); await pmOperator.setupNode({ collateral: 500n, ... });
// 4. 用户Gasless入驻 const user = new UserLifecycle({ ...config, gasless: { paymasterUrl: "..." } }); await user.onboard("TestDAO", 100n); await user.executeGaslessTx(...); await user.updateReputation();
// 5. DVT验证器 const dvt = new DVTNodeManager(config); await dvt.registerBLSKey(...); await dvt.joinValidatorSet(200n);
// 6. 生命周期退出 await user.leaveCommunity("TestDAO"); await pmOperator.initiateExit(); await spOperator.unstakeOperator(); } Next Steps (执行计划) Phase 1: 核心Pattern实现 (本次) 补充 OperatorLifecycle 的退出机制 实现 UserLifecycle (完整版 + Gasless) 实现 SuperPaymasterOperator 增强 ProtocolGovernance Phase 2: 管理Pattern (后续) 实现 ReputationManager 实现 NFTManager 实现 DVTNodeManager 实现 KMSNodeManager Phase 3: 集成测试 创建 l3-complete-lifecycle-demo.ts 回归测试所有Use Cases 更新文档和使用指南 角色与生命周期映射
- 终端用户 (End User) - 🎫 UserOnboarding Use Cases: 3 (SBT & Reputation) + 4 (Gasless UX)
Lifecycle:
未注册 → 选择社区 → 质押GToken → 铸造SBT → 激活Gasless → 开始交易 L3 Methods:
checkEligibility(community): 检查是否可以加入社区 onboard(community, params) : 一键入驻 自动质押 0.4 GT (if required) 铸造 MySBT 配置 Gasless (if paymasterUrl provided) getReputation(): 查询信誉分 enableGasless(paymasterConfig): 启用Gasless交易 Value:
消除"Approve → Stake → Mint"的多步骤摩擦 Gasless配置透明化 2. 社区管理员 (Community Admin) - 🏛️ CommunityLaunchpad (已实现) Use Case: 1 (DAO Launchpad)
Lifecycle:
EOA → 质押注册 → 部署Token → 设置治理 → 移交多签 L3 Methods (已实现):
launch(params) : 一键启动社区 Register Community Role Deploy xPNTs Token Setup Reputation Rules Enhancement (待补充):
transferToMultisig(multisig): 移交控制权给Safe多签 3. Paymaster 运营商 (PM Operator) - 🚀 OperatorLifecycle (已实现) Use Case: 2 (Operator Wizard)
Lifecycle:
EOA → 资源检查 → 质押充值 → 配置节点 → 启动服务 L3 Methods (已实现):
checkReadiness() : 资源自检 setupNode(params) : 一键部署 Deposit Collateral Add Gas Tokens Configure Operator Enhancement (待补充):
updateFeeStrategy(strategy): 动态费率调整 withdrawRewards(): 提取收益 4. SuperPaymaster 运营商 - ⚡ SuperPaymasterManager (新增) Scope: 全局Gas代付池管理
Lifecycle:
协议批准 → 质押注册 → 配置国库 → 管理流动性 L3 Methods:
registerAsOperator(collateral): 注册为SP运营商 configureTreasury(treasury, exchangeRate): 配置国库 managePoolLiquidity(): 管理流动性池 5. 协议管理员 (Protocol Admin) - 🏛️ ProtocolGovernance (新增) Scope: 全局参数治理
Lifecycle:
部署期EOA → 配置参数 → 移交多签 → 提案投票治理 L3 Methods:
setGlobalParameters(params): 设置全局参数 Protocol Fee Treasury Address Min Stake Amount createProposal(proposal) : 创建治理提案 transferToDAO(multisig): 移交给DAO 6. DVT 验证器 (DVT Operator) - 🔐 DVTNodeManager (新增) Scope: 分布式验证节点管理
Lifecycle:
注册BLS密钥 → 加入验证集 → 签名验证 → 治理投票 L3 Methods:
registerBLSKey(pubkey) : 注册BLS公钥 joinValidatorSet(): 加入验证集 proposeSlash(target): 提出惩罚提案 🎯 Gasless 集成策略 方案: Gasless作为L3的"配置选项" 所有需要Gasless的Pattern都接受 GaslessConfig:
interface GaslessConfig { paymasterUrl: string; // e.g. Pimlico/Alchemy URL policy?: 'CREDIT' | 'TOKEN' | 'SPONSORED'; } 实现方式:
L3 Pattern 接受 gaslessConfig?: GaslessConfig 内部逻辑: 如果提供,则使用 createSmartAccountClient with Paymaster middleware 透明化: 用户无需手动构建 paymasterAndData 📋 实现优先级 P0 - 核心生命周期 (本次实现) ✅ CommunityLaunchpad ✅ StakingManager ✅ OperatorLifecycle 🔄 UserOnboarding (含Gasless) 🔄 ProtocolGovernance P1 - 运营增强 (后续迭代) SuperPaymasterManager DVTNodeManager ReputationManager 🧪 验证计划 Scenario Tests (对应 USER_CASE_DESIGN.md) ✅ Scenario 1: Community Launch → CommunityLaunchpad.launch() ✅ Scenario 2: Operator Setup → OperatorLifecycle.setupNode() 🔄 Scenario 3: User SBT Mint → UserOnboarding.onboard() 🔄 Scenario 4: Gasless TX → UserOnboarding.enableGasless() + any tx Integration Demo 创建 examples/l3-complete-demo.ts:
启动社区 部署运营商 用户Gasless入驻 发送Gasless交易 Next Steps 实现 UserOnboarding.ts (含Gasless配置) 实现 ProtocolGovernance.ts 创建 GaslessHelper.ts (工具函数) 编写集成测试 examples/l3-complete-demo.ts 更新 task.md 和用户文档
