@aastar/sdk 0.20.3 → 0.20.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +33 -25
- package/dist/UserClient-UYIHF6UJ.js +6 -0
- package/dist/{UserClient-JMNNZT4P.js.map → UserClient-UYIHF6UJ.js.map} +1 -1
- package/dist/account.js +3 -3
- package/dist/admin.js +3 -3
- package/dist/airaccount.js +1 -4497
- package/dist/airaccount.js.map +1 -1
- package/dist/channel.js +3 -3
- package/dist/{chunk-R2RATIK2.js → chunk-42KVVOOU.js} +9 -9
- package/dist/{chunk-R2RATIK2.js.map → chunk-42KVVOOU.js.map} +1 -1
- package/dist/{chunk-QNYP7RPI.js → chunk-6UHVUGDT.js} +3 -3
- package/dist/{chunk-QNYP7RPI.js.map → chunk-6UHVUGDT.js.map} +1 -1
- package/dist/{chunk-YSDWB6DO.js → chunk-FBDMID2J.js} +3 -3
- package/dist/{chunk-YSDWB6DO.js.map → chunk-FBDMID2J.js.map} +1 -1
- package/dist/{chunk-LNICTATJ.js → chunk-FIS3RUGL.js} +6 -6
- package/dist/{chunk-LNICTATJ.js.map → chunk-FIS3RUGL.js.map} +1 -1
- package/dist/{chunk-O454V5ML.js → chunk-HNTLDUL7.js} +3 -3
- package/dist/{chunk-O454V5ML.js.map → chunk-HNTLDUL7.js.map} +1 -1
- package/dist/{chunk-NAPMVAVJ.js → chunk-I3VRFZA4.js} +3 -3
- package/dist/{chunk-NAPMVAVJ.js.map → chunk-I3VRFZA4.js.map} +1 -1
- package/dist/{chunk-ZJLIKMCA.js → chunk-NRH56SAJ.js} +13 -3
- package/dist/chunk-NRH56SAJ.js.map +1 -0
- package/dist/{chunk-M5ORP2PM.js → chunk-QJT4IOIS.js} +8 -8
- package/dist/{chunk-M5ORP2PM.js.map → chunk-QJT4IOIS.js.map} +1 -1
- package/dist/{chunk-TBDMSJVL.js → chunk-TIH7D4FQ.js} +12 -12
- package/dist/{chunk-TBDMSJVL.js.map → chunk-TIH7D4FQ.js.map} +1 -1
- package/dist/{chunk-KL6SCEIU.js → chunk-VYU6P7HB.js} +4 -4
- package/dist/{chunk-KL6SCEIU.js.map → chunk-VYU6P7HB.js.map} +1 -1
- package/dist/chunk-WPSWFZKF.js +4499 -0
- package/dist/chunk-WPSWFZKF.js.map +1 -0
- package/dist/{chunk-5TDDS3T5.js → chunk-ZFIKBDBT.js} +3 -3
- package/dist/{chunk-5TDDS3T5.js.map → chunk-ZFIKBDBT.js.map} +1 -1
- package/dist/{chunk-Y3KP7R2Y.js → chunk-ZGOEADCO.js} +3 -3
- package/dist/{chunk-Y3KP7R2Y.js.map → chunk-ZGOEADCO.js.map} +1 -1
- package/dist/{contract-addresses-VLAHHXOO.js → contract-addresses-ADEWLDHE.js} +3 -3
- package/dist/{contract-addresses-VLAHHXOO.js.map → contract-addresses-ADEWLDHE.js.map} +1 -1
- package/dist/core.js +2 -2
- package/dist/dapp.js +3 -3
- package/dist/{dist-WMYQOYRO.js → dist-GVWCRI4F.js} +5 -5
- package/dist/{dist-WMYQOYRO.js.map → dist-GVWCRI4F.js.map} +1 -1
- package/dist/enduser.js +4 -4
- package/dist/identity.js +3 -3
- package/dist/index.d.ts +1 -0
- package/dist/index.js +22 -22
- package/dist/index.js.map +1 -1
- package/dist/{index.node-GNYPFVZQ.js → index.node-KIKM4EG6.js} +4 -4
- package/dist/{index.node-GNYPFVZQ.js.map → index.node-KIKM4EG6.js.map} +1 -1
- package/dist/kms.d.ts +2 -0
- package/dist/kms.js +5 -0
- package/dist/kms.js.map +1 -0
- package/dist/operator.js +3 -3
- package/dist/paymaster.js +3 -3
- package/dist/tokens.js +3 -3
- package/dist/x402.js +3 -3
- package/package.json +20 -16
- package/LICENSE +0 -180
- package/dist/UserClient-JMNNZT4P.js +0 -6
- package/dist/chunk-ZJLIKMCA.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../enduser/dist/UserClient.js"],"names":["encodeFunctionData"],"mappings":"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","file":"chunk-LNICTATJ.js","sourcesContent":["import { encodeFunctionData } from 'viem';\nimport { BaseClient } from '@aastar/core';\nimport { accountActions, sbtActions, tokenActions, entryPointActions, stakingActions, registryActions } from '@aastar/core';\nimport { bundlerActions } from 'viem/account-abstraction';\nexport class UserClient extends BaseClient {\n accountAddress;\n sbtAddress;\n entryPointAddress;\n gTokenStakingAddress;\n registryAddress;\n gTokenAddress;\n bundlerClient;\n constructor(config) {\n super(config);\n this.bundlerClient = config.bundlerClient;\n this.accountAddress = config.accountAddress;\n this.sbtAddress = config.sbtAddress;\n this.entryPointAddress = config.entryPointAddress;\n this.gTokenStakingAddress = config.gTokenStakingAddress;\n this.registryAddress = config.registryAddress;\n this.gTokenAddress = config.gTokenAddress;\n }\n /**\n * Deploy a new Smart Account (Supports multiple factory types)\n * Static helper to facilitate onboarding before instantiating the UserClient.\n *\n * @param client - WalletClient to sign the deployment transaction\n * @param params - Deployment parameters\n * @returns Object containing the deployed account address and transaction hash\n */\n static async deployAccount(client, params) {\n const { accountFactoryActions, SimpleAccountFactoryABI } = await import('@aastar/core');\n // 1. Determine Factory ABI (Ensure it's the raw ABI array)\n let abi = params.customAbi || (SimpleAccountFactoryABI?.abi || SimpleAccountFactoryABI);\n // In the future, we can add more built-in ABIs here based on accountType\n // if (params.accountType === 'kernel') abi = KernelFactoryABI;\n const factoryAddr = params.factoryAddress || '0x9406Cc6185a346906296840746125a0E44976454'; // Default v0.7 Factory\n const salt = params.salt || 0n;\n // Use publicClient for reading if provided, otherwise fallback to client (which might be a Full Client)\n const readClient = params.publicClient || client;\n // Use the generic actions with the selected ABI\n const factoryRead = accountFactoryActions(factoryAddr, abi)(readClient);\n const factoryWrite = accountFactoryActions(factoryAddr, abi)(client);\n // 1. Predict Address\n const accountAddress = await factoryRead.getAddress({\n owner: params.owner,\n salt\n });\n // 2. Deploy\n try {\n const hash = await factoryWrite.createAccount({\n owner: params.owner,\n salt,\n account: client.account\n });\n return { accountAddress, hash };\n }\n catch (error) {\n const messageParts = [\n error?.shortMessage,\n error?.message,\n error?.details,\n error?.cause?.shortMessage,\n error?.cause?.message,\n error?.cause?.details,\n error?.cause?.cause?.shortMessage,\n error?.cause?.cause?.message\n ].filter(Boolean);\n const message = messageParts.join(' ');\n if (message.includes('gas required exceeds allowance') || message.includes('intrinsic gas too low')) {\n const data = encodeFunctionData({\n abi,\n functionName: 'createAccount',\n args: [params.owner, salt]\n });\n const hash = await client.sendTransaction({\n to: factoryAddr,\n data,\n gas: 2000000n,\n account: client.account\n });\n return { accountAddress, hash };\n }\n throw error;\n }\n }\n // ========================================\n // 1. 账户基本操作 (基于 L1 simpleAccountActions)\n // ========================================\n /**\n * Get the nonce of the account from EntryPoint (more reliable for 4337)\n */\n async getNonce(key = 0n) {\n try {\n if (!this.entryPointAddress) {\n throw new Error('EntryPoint address required for this client');\n }\n const entryPoint = entryPointActions(this.entryPointAddress);\n return await entryPoint(this.getStartPublicClient()).getNonce({\n sender: this.accountAddress,\n key\n });\n }\n catch (error) {\n throw error;\n }\n }\n /**\n * Get the owner of the AA account\n */\n async getOwner() {\n try {\n const account = accountActions(this.accountAddress);\n return await account(this.getStartPublicClient()).owner();\n }\n catch (error) {\n throw error;\n }\n }\n /**\n * Execute a transaction from the AA account\n */\n async execute(target, value, data, options) {\n try {\n const account = accountActions(this.accountAddress);\n // Use standard AA execute\n return await account(this.client).execute({\n dest: target,\n value,\n func: data,\n account: options?.account\n });\n }\n catch (error) {\n throw error;\n }\n }\n /**\n * Execute a batch of transactions\n */\n async executeBatch(targets, values, datas, options) {\n try {\n const account = accountActions(this.accountAddress);\n return await account(this.client).executeBatch({\n dest: targets,\n value: values,\n func: datas,\n account: options?.account\n });\n }\n catch (error) {\n throw error;\n }\n }\n // ========================================\n // identity 与 SBT (基于 L1 sbtActions)\n // ========================================\n /**\n * Get user's SBT balance\n */\n async getSBTBalance() {\n try {\n if (!this.sbtAddress)\n throw new Error('SBT address required for this client');\n const sbt = sbtActions(this.sbtAddress);\n return await sbt(this.getStartPublicClient()).balanceOf({\n owner: this.accountAddress\n });\n }\n catch (error) {\n throw error;\n }\n }\n async mintSBT(roleId, options) {\n try {\n if (!this.sbtAddress)\n throw new Error('SBT address required for this client');\n const { encodeFunctionData } = await import('viem');\n const data = encodeFunctionData({\n abi: [{ name: 'mintForRole', type: 'function', inputs: [{ name: 'user', type: 'address' }, { name: 'roleId', type: 'bytes32' }, { name: 'roleData', type: 'bytes' }], outputs: [{ type: 'uint256' }] }],\n functionName: 'mintForRole',\n args: [this.accountAddress, roleId, '0x']\n });\n return await this.execute(this.sbtAddress, 0n, data, options);\n }\n catch (error) {\n throw error;\n }\n }\n // ========================================\n // 3. 资产管理 (基于 L1 tokenActions)\n // ========================================\n async transferToken(token, to, amount, options) {\n try {\n const { encodeFunctionData } = await import('viem');\n const data = encodeFunctionData({\n abi: [{ name: 'transfer', type: 'function', inputs: [{ name: 'to', type: 'address' }, { name: 'amount', type: 'uint256' }], outputs: [{ type: 'bool' }] }],\n functionName: 'transfer',\n args: [to, amount]\n });\n return await this.execute(token, 0n, data, options);\n }\n catch (error) {\n throw error;\n }\n }\n /**\n * Get Token Balance\n */\n async getTokenBalance(token) {\n try {\n const tokens = tokenActions()(this.getStartPublicClient());\n return await tokens.balanceOf({\n token,\n account: this.accountAddress\n });\n }\n catch (error) {\n throw error;\n }\n }\n // ========================================\n // 4. 委托与质押 (Delegation & Staking)\n // ========================================\n async stakeForRole(roleId, amount, options) {\n try {\n if (!this.gTokenStakingAddress)\n throw new Error('GTokenStaking address required for this client');\n const { encodeFunctionData } = await import('viem');\n const data = encodeFunctionData({\n abi: [{ name: 'lockStake', type: 'function', inputs: [{ name: 'user', type: 'address' }, { name: 'roleId', type: 'bytes32' }, { name: 'stakeAmount', type: 'uint256' }, { name: 'entryBurn', type: 'uint256' }, { name: 'payer', type: 'address' }], outputs: [] }],\n functionName: 'lockStake',\n args: [this.accountAddress, roleId, amount, 0n, this.accountAddress]\n });\n return await this.execute(this.gTokenStakingAddress, 0n, data, options);\n }\n catch (error) {\n throw error;\n }\n }\n async unstakeFromRole(roleId, options) {\n try {\n if (!this.gTokenStakingAddress)\n throw new Error('GTokenStaking address required for this client');\n const { encodeFunctionData } = await import('viem');\n const data = encodeFunctionData({\n abi: [{ name: 'unlockAndTransfer', type: 'function', inputs: [{ name: 'user', type: 'address' }, { name: 'roleId', type: 'bytes32' }], outputs: [{ name: 'netAmount', type: 'uint256' }] }],\n functionName: 'unlockAndTransfer',\n args: [this.accountAddress, roleId]\n });\n return await this.execute(this.gTokenStakingAddress, 0n, data, options);\n }\n catch (error) {\n throw error;\n }\n }\n /**\n * Get staked balance for a specific role\n */\n async getStakedBalance(roleId) {\n try {\n if (!this.gTokenStakingAddress)\n throw new Error('GTokenStaking address required for this client');\n const staking = stakingActions(this.gTokenStakingAddress);\n return await staking(this.getStartPublicClient()).getLockedStake({\n user: this.accountAddress,\n roleId\n });\n }\n catch (error) {\n throw error;\n }\n }\n // ========================================\n // 5. 生命周期管理 (Lifecycle)\n // ========================================\n async exitRole(roleId, options) {\n try {\n if (!this.registryAddress)\n throw new Error('Registry address required for this client');\n const { encodeFunctionData } = await import('viem');\n const data = encodeFunctionData({\n abi: [{ name: 'exitRole', type: 'function', inputs: [{ name: 'roleId', type: 'bytes32' }], outputs: [] }],\n functionName: 'exitRole',\n args: [roleId]\n });\n return await this.execute(this.registryAddress, 0n, data, options);\n }\n catch (error) {\n throw error;\n }\n }\n async leaveCommunity(community, options) {\n try {\n if (!this.sbtAddress)\n throw new Error('SBT address required for this client');\n const { encodeFunctionData } = await import('viem');\n const data = encodeFunctionData({\n abi: [{ name: 'leaveCommunity', type: 'function', inputs: [{ name: 'comm', type: 'address' }], outputs: [] }],\n functionName: 'leaveCommunity',\n args: [community]\n });\n return await this.execute(this.sbtAddress, 0n, data, options);\n }\n catch (error) {\n throw error;\n }\n }\n /**\n * Register as EndUser (One-click: Approve + Register)\n * Handles GToken approval to Staking contract and Role registration.\n */\n async registerAsEndUser(communityAddress, stakeAmount, options) {\n try {\n if (!this.registryAddress)\n throw new Error('Registry address required for this client');\n if (!this.gTokenStakingAddress)\n throw new Error('GTokenStaking address required for this client');\n if (!this.gTokenAddress)\n throw new Error('GToken address required for this client');\n const { encodeAbiParameters, keccak256, toBytes, parseEther } = await import('viem');\n const ROLE_ENDUSER = keccak256(toBytes(\"ENDUSER\"));\n // Correct mapping for Registry Actions\n const registry = registryActions(this.registryAddress);\n const publicClient = this.getStartPublicClient();\n const tokens = tokenActions()(publicClient);\n // 1. Check Allowance\n const allowance = await tokens.allowance({\n token: this.gTokenAddress,\n owner: this.accountAddress,\n spender: this.gTokenStakingAddress\n });\n console.log(` 🔍 Debug Allowance: Account=${this.accountAddress}, Allowance=${allowance}, Needed=${stakeAmount}`);\n const txs = [];\n if (allowance < stakeAmount) {\n const approveData = encodeFunctionData({\n abi: [{ name: 'approve', type: 'function', inputs: [{ type: 'address' }, { type: 'uint256' }], outputs: [{ type: 'bool' }], stateMutability: 'nonpayable' }],\n functionName: 'approve',\n args: [this.gTokenStakingAddress, parseEther('1000')]\n });\n txs.push({ target: this.gTokenAddress, value: 0n, data: approveData });\n }\n // 2. Construct Register Call\n // struct EndUserRoleData { address account; address community; string avatarURI; string ensName; uint256 stakeAmount; }\n const roleData = encodeAbiParameters([\n { type: 'address', name: 'account' },\n { type: 'address', name: 'community' },\n { type: 'string', name: 'avatarURI' },\n { type: 'string', name: 'ensName' },\n { type: 'uint256', name: 'stakeAmount' }\n ], [\n this.accountAddress,\n communityAddress,\n '',\n '',\n stakeAmount\n ]);\n const registerData = encodeFunctionData({\n abi: [{ name: 'registerRoleSelf', type: 'function', inputs: [{ type: 'bytes32' }, { type: 'bytes' }], outputs: [{ type: 'uint256' }], stateMutability: 'nonpayable' }],\n functionName: 'registerRoleSelf',\n args: [ROLE_ENDUSER, roleData]\n });\n txs.push({ target: this.registryAddress, value: 0n, data: registerData });\n console.log(` 🔍 Debug Onboard: Community=${communityAddress}, AA=${this.accountAddress}, Stake=${stakeAmount}`);\n console.log(` 🔍 Debug Batch: Txs=${txs.length}, Targets=${txs.map(t => t.target)}`);\n // 3. Execute separately for stability (Batch execution has issues on current AA deployment)\n const hashes = [];\n for (const tx of txs) {\n const h = await this.execute(tx.target, tx.value, tx.data, options);\n hashes.push(h);\n // Wait for each tx to ensure sequential state updates (approve -> register)\n await this.getStartPublicClient().waitForTransactionReceipt({ hash: h });\n }\n return hashes[hashes.length - 1];\n }\n catch (error) {\n throw error;\n }\n }\n // ========================================\n // 6. Gasless Execution (Advanced)\n // ========================================\n /**\n * Execute a transaction with Gasless Sponsorship\n */\n async executeGasless(params, options) {\n try {\n const client = this.bundlerClient ? this.bundlerClient.extend(bundlerActions) : this.client.extend(bundlerActions);\n const ep = this.requireEntryPoint();\n // 1. Prepare Call Data\n const callData = encodeFunctionData({\n abi: [{ name: 'execute', type: 'function', inputs: [{ name: 'dest', type: 'address' }, { name: 'value', type: 'uint256' }, { name: 'func', type: 'bytes' }], outputs: [] }],\n functionName: 'execute',\n args: [params.target, params.value, params.data]\n });\n // 3. Delegate to PaymasterClient for v0.7 Gasless Submission\n // This ensures we follow the exact same logic as successful demo scripts\n // We dynamic import to avoid circular dependencies if any\n const { PaymasterClient: SDKPaymasterClient } = await import('@aastar/paymaster');\n let verificationGasLimit;\n let paymasterVerificationGasLimit;\n let paymasterPostOpGasLimit;\n let autoEstimate = true;\n if (params.paymasterType === 'Super') {\n // Apply Smart Buffer Strategy via PaymasterUtils (Same as SuperPaymasterClient)\n const { tuneGasLimit } = await import('@aastar/paymaster');\n const est = await SDKPaymasterClient.estimateUserOperationGas(this.client, this.client, this.accountAddress, ep, params.paymaster, params.target, // placeholder\n this.bundlerClient?.transport?.url || this.client.transport.url || '', callData, {\n operator: params.operator,\n factory: undefined,\n factoryData: undefined\n });\n // Matches SuperPaymasterClient Logic exactly:\n const bundlerEstimate = est.paymasterVerificationGasLimit || 100000n;\n // Nominal 60k, Efficiency 0.45\n paymasterVerificationGasLimit = tuneGasLimit(bundlerEstimate, 60000n, 0.45);\n // Safety Pad for VGL (Moderate, not 1M)\n const SAFETY_PAD = 80000n;\n verificationGasLimit = est.verificationGasLimit + SAFETY_PAD;\n // SuperPaymaster postOp calls burnFromWithOpHash (~40k gas) + storage writes.\n // Add 100k buffer; floor at 200k to prevent OOG. Pure BigInt to avoid Number precision loss.\n const _postOpBase = est.paymasterPostOpGasLimit + 100000n;\n paymasterPostOpGasLimit = _postOpBase > 200000n ? _postOpBase : 200000n;\n autoEstimate = false; // logic handled\n }\n const txHash = await SDKPaymasterClient.submitGaslessUserOperation(this.client, this.client, // WalletClient acts as signer\n this.accountAddress, ep, params.paymaster, params.target, // placeholder for token if V4\n this.bundlerClient?.transport?.url || this.client.transport.url || '', callData, {\n operator: params.operator,\n autoEstimate,\n verificationGasLimit,\n paymasterVerificationGasLimit,\n paymasterPostOpGasLimit\n });\n return txHash;\n }\n catch (error) {\n console.error(\" ❌ executeGasless Error:\", error.message);\n throw error;\n }\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../../enduser/dist/UserClient.js"],"names":["encodeFunctionData"],"mappings":"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","file":"chunk-FIS3RUGL.js","sourcesContent":["import { encodeFunctionData } from 'viem';\nimport { BaseClient } from '@aastar/core';\nimport { accountActions, sbtActions, tokenActions, entryPointActions, stakingActions, registryActions } from '@aastar/core';\nimport { bundlerActions } from 'viem/account-abstraction';\nexport class UserClient extends BaseClient {\n accountAddress;\n sbtAddress;\n entryPointAddress;\n gTokenStakingAddress;\n registryAddress;\n gTokenAddress;\n bundlerClient;\n constructor(config) {\n super(config);\n this.bundlerClient = config.bundlerClient;\n this.accountAddress = config.accountAddress;\n this.sbtAddress = config.sbtAddress;\n this.entryPointAddress = config.entryPointAddress;\n this.gTokenStakingAddress = config.gTokenStakingAddress;\n this.registryAddress = config.registryAddress;\n this.gTokenAddress = config.gTokenAddress;\n }\n /**\n * Deploy a new Smart Account (Supports multiple factory types)\n * Static helper to facilitate onboarding before instantiating the UserClient.\n *\n * @param client - WalletClient to sign the deployment transaction\n * @param params - Deployment parameters\n * @returns Object containing the deployed account address and transaction hash\n */\n static async deployAccount(client, params) {\n const { accountFactoryActions, SimpleAccountFactoryABI } = await import('@aastar/core');\n // 1. Determine Factory ABI (Ensure it's the raw ABI array)\n let abi = params.customAbi || (SimpleAccountFactoryABI?.abi || SimpleAccountFactoryABI);\n // In the future, we can add more built-in ABIs here based on accountType\n // if (params.accountType === 'kernel') abi = KernelFactoryABI;\n const factoryAddr = params.factoryAddress || '0x9406Cc6185a346906296840746125a0E44976454'; // Default v0.7 Factory\n const salt = params.salt || 0n;\n // Use publicClient for reading if provided, otherwise fallback to client (which might be a Full Client)\n const readClient = params.publicClient || client;\n // Use the generic actions with the selected ABI\n const factoryRead = accountFactoryActions(factoryAddr, abi)(readClient);\n const factoryWrite = accountFactoryActions(factoryAddr, abi)(client);\n // 1. Predict Address\n const accountAddress = await factoryRead.getAddress({\n owner: params.owner,\n salt\n });\n // 2. Deploy\n try {\n const hash = await factoryWrite.createAccount({\n owner: params.owner,\n salt,\n account: client.account\n });\n return { accountAddress, hash };\n }\n catch (error) {\n const messageParts = [\n error?.shortMessage,\n error?.message,\n error?.details,\n error?.cause?.shortMessage,\n error?.cause?.message,\n error?.cause?.details,\n error?.cause?.cause?.shortMessage,\n error?.cause?.cause?.message\n ].filter(Boolean);\n const message = messageParts.join(' ');\n if (message.includes('gas required exceeds allowance') || message.includes('intrinsic gas too low')) {\n const data = encodeFunctionData({\n abi,\n functionName: 'createAccount',\n args: [params.owner, salt]\n });\n const hash = await client.sendTransaction({\n to: factoryAddr,\n data,\n gas: 2000000n,\n account: client.account\n });\n return { accountAddress, hash };\n }\n throw error;\n }\n }\n // ========================================\n // 1. 账户基本操作 (基于 L1 simpleAccountActions)\n // ========================================\n /**\n * Get the nonce of the account from EntryPoint (more reliable for 4337)\n */\n async getNonce(key = 0n) {\n try {\n if (!this.entryPointAddress) {\n throw new Error('EntryPoint address required for this client');\n }\n const entryPoint = entryPointActions(this.entryPointAddress);\n return await entryPoint(this.getStartPublicClient()).getNonce({\n sender: this.accountAddress,\n key\n });\n }\n catch (error) {\n throw error;\n }\n }\n /**\n * Get the owner of the AA account\n */\n async getOwner() {\n try {\n const account = accountActions(this.accountAddress);\n return await account(this.getStartPublicClient()).owner();\n }\n catch (error) {\n throw error;\n }\n }\n /**\n * Execute a transaction from the AA account\n */\n async execute(target, value, data, options) {\n try {\n const account = accountActions(this.accountAddress);\n // Use standard AA execute\n return await account(this.client).execute({\n dest: target,\n value,\n func: data,\n account: options?.account\n });\n }\n catch (error) {\n throw error;\n }\n }\n /**\n * Execute a batch of transactions\n */\n async executeBatch(targets, values, datas, options) {\n try {\n const account = accountActions(this.accountAddress);\n return await account(this.client).executeBatch({\n dest: targets,\n value: values,\n func: datas,\n account: options?.account\n });\n }\n catch (error) {\n throw error;\n }\n }\n // ========================================\n // identity 与 SBT (基于 L1 sbtActions)\n // ========================================\n /**\n * Get user's SBT balance\n */\n async getSBTBalance() {\n try {\n if (!this.sbtAddress)\n throw new Error('SBT address required for this client');\n const sbt = sbtActions(this.sbtAddress);\n return await sbt(this.getStartPublicClient()).balanceOf({\n owner: this.accountAddress\n });\n }\n catch (error) {\n throw error;\n }\n }\n async mintSBT(roleId, options) {\n try {\n if (!this.sbtAddress)\n throw new Error('SBT address required for this client');\n const { encodeFunctionData } = await import('viem');\n const data = encodeFunctionData({\n abi: [{ name: 'mintForRole', type: 'function', inputs: [{ name: 'user', type: 'address' }, { name: 'roleId', type: 'bytes32' }, { name: 'roleData', type: 'bytes' }], outputs: [{ type: 'uint256' }] }],\n functionName: 'mintForRole',\n args: [this.accountAddress, roleId, '0x']\n });\n return await this.execute(this.sbtAddress, 0n, data, options);\n }\n catch (error) {\n throw error;\n }\n }\n // ========================================\n // 3. 资产管理 (基于 L1 tokenActions)\n // ========================================\n async transferToken(token, to, amount, options) {\n try {\n const { encodeFunctionData } = await import('viem');\n const data = encodeFunctionData({\n abi: [{ name: 'transfer', type: 'function', inputs: [{ name: 'to', type: 'address' }, { name: 'amount', type: 'uint256' }], outputs: [{ type: 'bool' }] }],\n functionName: 'transfer',\n args: [to, amount]\n });\n return await this.execute(token, 0n, data, options);\n }\n catch (error) {\n throw error;\n }\n }\n /**\n * Get Token Balance\n */\n async getTokenBalance(token) {\n try {\n const tokens = tokenActions()(this.getStartPublicClient());\n return await tokens.balanceOf({\n token,\n account: this.accountAddress\n });\n }\n catch (error) {\n throw error;\n }\n }\n // ========================================\n // 4. 委托与质押 (Delegation & Staking)\n // ========================================\n async stakeForRole(roleId, amount, options) {\n try {\n if (!this.gTokenStakingAddress)\n throw new Error('GTokenStaking address required for this client');\n const { encodeFunctionData } = await import('viem');\n const data = encodeFunctionData({\n abi: [{ name: 'lockStake', type: 'function', inputs: [{ name: 'user', type: 'address' }, { name: 'roleId', type: 'bytes32' }, { name: 'stakeAmount', type: 'uint256' }, { name: 'entryBurn', type: 'uint256' }, { name: 'payer', type: 'address' }], outputs: [] }],\n functionName: 'lockStake',\n args: [this.accountAddress, roleId, amount, 0n, this.accountAddress]\n });\n return await this.execute(this.gTokenStakingAddress, 0n, data, options);\n }\n catch (error) {\n throw error;\n }\n }\n async unstakeFromRole(roleId, options) {\n try {\n if (!this.gTokenStakingAddress)\n throw new Error('GTokenStaking address required for this client');\n const { encodeFunctionData } = await import('viem');\n const data = encodeFunctionData({\n abi: [{ name: 'unlockAndTransfer', type: 'function', inputs: [{ name: 'user', type: 'address' }, { name: 'roleId', type: 'bytes32' }], outputs: [{ name: 'netAmount', type: 'uint256' }] }],\n functionName: 'unlockAndTransfer',\n args: [this.accountAddress, roleId]\n });\n return await this.execute(this.gTokenStakingAddress, 0n, data, options);\n }\n catch (error) {\n throw error;\n }\n }\n /**\n * Get staked balance for a specific role\n */\n async getStakedBalance(roleId) {\n try {\n if (!this.gTokenStakingAddress)\n throw new Error('GTokenStaking address required for this client');\n const staking = stakingActions(this.gTokenStakingAddress);\n return await staking(this.getStartPublicClient()).getLockedStake({\n user: this.accountAddress,\n roleId\n });\n }\n catch (error) {\n throw error;\n }\n }\n // ========================================\n // 5. 生命周期管理 (Lifecycle)\n // ========================================\n async exitRole(roleId, options) {\n try {\n if (!this.registryAddress)\n throw new Error('Registry address required for this client');\n const { encodeFunctionData } = await import('viem');\n const data = encodeFunctionData({\n abi: [{ name: 'exitRole', type: 'function', inputs: [{ name: 'roleId', type: 'bytes32' }], outputs: [] }],\n functionName: 'exitRole',\n args: [roleId]\n });\n return await this.execute(this.registryAddress, 0n, data, options);\n }\n catch (error) {\n throw error;\n }\n }\n async leaveCommunity(community, options) {\n try {\n if (!this.sbtAddress)\n throw new Error('SBT address required for this client');\n const { encodeFunctionData } = await import('viem');\n const data = encodeFunctionData({\n abi: [{ name: 'leaveCommunity', type: 'function', inputs: [{ name: 'comm', type: 'address' }], outputs: [] }],\n functionName: 'leaveCommunity',\n args: [community]\n });\n return await this.execute(this.sbtAddress, 0n, data, options);\n }\n catch (error) {\n throw error;\n }\n }\n /**\n * Register as EndUser (One-click: Approve + Register)\n * Handles GToken approval to Staking contract and Role registration.\n */\n async registerAsEndUser(communityAddress, stakeAmount, options) {\n try {\n if (!this.registryAddress)\n throw new Error('Registry address required for this client');\n if (!this.gTokenStakingAddress)\n throw new Error('GTokenStaking address required for this client');\n if (!this.gTokenAddress)\n throw new Error('GToken address required for this client');\n const { encodeAbiParameters, keccak256, toBytes, parseEther } = await import('viem');\n const ROLE_ENDUSER = keccak256(toBytes(\"ENDUSER\"));\n // Correct mapping for Registry Actions\n const registry = registryActions(this.registryAddress);\n const publicClient = this.getStartPublicClient();\n const tokens = tokenActions()(publicClient);\n // 1. Check Allowance\n const allowance = await tokens.allowance({\n token: this.gTokenAddress,\n owner: this.accountAddress,\n spender: this.gTokenStakingAddress\n });\n console.log(` 🔍 Debug Allowance: Account=${this.accountAddress}, Allowance=${allowance}, Needed=${stakeAmount}`);\n const txs = [];\n if (allowance < stakeAmount) {\n const approveData = encodeFunctionData({\n abi: [{ name: 'approve', type: 'function', inputs: [{ type: 'address' }, { type: 'uint256' }], outputs: [{ type: 'bool' }], stateMutability: 'nonpayable' }],\n functionName: 'approve',\n args: [this.gTokenStakingAddress, parseEther('1000')]\n });\n txs.push({ target: this.gTokenAddress, value: 0n, data: approveData });\n }\n // 2. Construct Register Call\n // struct EndUserRoleData { address account; address community; string avatarURI; string ensName; uint256 stakeAmount; }\n const roleData = encodeAbiParameters([\n { type: 'address', name: 'account' },\n { type: 'address', name: 'community' },\n { type: 'string', name: 'avatarURI' },\n { type: 'string', name: 'ensName' },\n { type: 'uint256', name: 'stakeAmount' }\n ], [\n this.accountAddress,\n communityAddress,\n '',\n '',\n stakeAmount\n ]);\n const registerData = encodeFunctionData({\n abi: [{ name: 'registerRoleSelf', type: 'function', inputs: [{ type: 'bytes32' }, { type: 'bytes' }], outputs: [{ type: 'uint256' }], stateMutability: 'nonpayable' }],\n functionName: 'registerRoleSelf',\n args: [ROLE_ENDUSER, roleData]\n });\n txs.push({ target: this.registryAddress, value: 0n, data: registerData });\n console.log(` 🔍 Debug Onboard: Community=${communityAddress}, AA=${this.accountAddress}, Stake=${stakeAmount}`);\n console.log(` 🔍 Debug Batch: Txs=${txs.length}, Targets=${txs.map(t => t.target)}`);\n // 3. Execute separately for stability (Batch execution has issues on current AA deployment)\n const hashes = [];\n for (const tx of txs) {\n const h = await this.execute(tx.target, tx.value, tx.data, options);\n hashes.push(h);\n // Wait for each tx to ensure sequential state updates (approve -> register)\n await this.getStartPublicClient().waitForTransactionReceipt({ hash: h });\n }\n return hashes[hashes.length - 1];\n }\n catch (error) {\n throw error;\n }\n }\n // ========================================\n // 6. Gasless Execution (Advanced)\n // ========================================\n /**\n * Execute a transaction with Gasless Sponsorship\n */\n async executeGasless(params, options) {\n try {\n const client = this.bundlerClient ? this.bundlerClient.extend(bundlerActions) : this.client.extend(bundlerActions);\n const ep = this.requireEntryPoint();\n // 1. Prepare Call Data\n const callData = encodeFunctionData({\n abi: [{ name: 'execute', type: 'function', inputs: [{ name: 'dest', type: 'address' }, { name: 'value', type: 'uint256' }, { name: 'func', type: 'bytes' }], outputs: [] }],\n functionName: 'execute',\n args: [params.target, params.value, params.data]\n });\n // 3. Delegate to PaymasterClient for v0.7 Gasless Submission\n // This ensures we follow the exact same logic as successful demo scripts\n // We dynamic import to avoid circular dependencies if any\n const { PaymasterClient: SDKPaymasterClient } = await import('@aastar/paymaster');\n let verificationGasLimit;\n let paymasterVerificationGasLimit;\n let paymasterPostOpGasLimit;\n let autoEstimate = true;\n if (params.paymasterType === 'Super') {\n // Apply Smart Buffer Strategy via PaymasterUtils (Same as SuperPaymasterClient)\n const { tuneGasLimit } = await import('@aastar/paymaster');\n const est = await SDKPaymasterClient.estimateUserOperationGas(this.client, this.client, this.accountAddress, ep, params.paymaster, params.target, // placeholder\n this.bundlerClient?.transport?.url || this.client.transport.url || '', callData, {\n operator: params.operator,\n factory: undefined,\n factoryData: undefined\n });\n // Matches SuperPaymasterClient Logic exactly:\n const bundlerEstimate = est.paymasterVerificationGasLimit || 100000n;\n // Nominal 60k, Efficiency 0.45\n paymasterVerificationGasLimit = tuneGasLimit(bundlerEstimate, 60000n, 0.45);\n // Safety Pad for VGL (Moderate, not 1M)\n const SAFETY_PAD = 80000n;\n verificationGasLimit = est.verificationGasLimit + SAFETY_PAD;\n // SuperPaymaster postOp calls burnFromWithOpHash (~40k gas) + storage writes.\n // Add 100k buffer; floor at 200k to prevent OOG. Pure BigInt to avoid Number precision loss.\n const _postOpBase = est.paymasterPostOpGasLimit + 100000n;\n paymasterPostOpGasLimit = _postOpBase > 200000n ? _postOpBase : 200000n;\n autoEstimate = false; // logic handled\n }\n const txHash = await SDKPaymasterClient.submitGaslessUserOperation(this.client, this.client, // WalletClient acts as signer\n this.accountAddress, ep, params.paymaster, params.target, // placeholder for token if V4\n this.bundlerClient?.transport?.url || this.client.transport.url || '', callData, {\n operator: params.operator,\n autoEstimate,\n verificationGasLimit,\n paymasterVerificationGasLimit,\n paymasterPostOpGasLimit\n });\n return txHash;\n }\n catch (error) {\n console.error(\" ❌ executeGasless Error:\", error.message);\n throw error;\n }\n }\n}\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { MySBTABI, ReputationSystemABI } from './chunk-
|
|
1
|
+
import { MySBTABI, ReputationSystemABI } from './chunk-TIH7D4FQ.js';
|
|
2
2
|
import { parseAbi } from 'viem';
|
|
3
3
|
|
|
4
4
|
// ../identity/dist/mysbt.js
|
|
@@ -111,5 +111,5 @@ var ReputationClient = class {
|
|
|
111
111
|
};
|
|
112
112
|
|
|
113
113
|
export { ReputationClient, checkMySBT, getMySBTId };
|
|
114
|
-
//# sourceMappingURL=chunk-
|
|
115
|
-
//# sourceMappingURL=chunk-
|
|
114
|
+
//# sourceMappingURL=chunk-HNTLDUL7.js.map
|
|
115
|
+
//# sourceMappingURL=chunk-HNTLDUL7.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../identity/dist/mysbt.js","../../identity/dist/index.js"],"names":[],"mappings":"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","file":"chunk-
|
|
1
|
+
{"version":3,"sources":["../../identity/dist/mysbt.js","../../identity/dist/index.js"],"names":[],"mappings":"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","file":"chunk-HNTLDUL7.js","sourcesContent":["import { MySBTABI } from '@aastar/core';\n/**\n * Check if user holds MySBT token (identity verification).\n *\n * Does NOT swallow read errors: `balanceOf` returns 0 for a non-holder, so any\n * thrown error is an RPC/transport/contract failure — masking it as\n * `{ hasSBT: false }` would turn a transient RPC blip into a false \"no SBT\" and\n * wrongly fail eligibility checks. The error propagates so the caller can retry\n * or surface \"couldn't determine\" rather than \"no SBT\".\n */\nexport async function checkMySBT(client, sbtAddress, user) {\n const balance = await client.readContract({\n address: sbtAddress,\n abi: MySBTABI,\n functionName: 'balanceOf',\n args: [user]\n });\n return { hasSBT: balance > 0n, balance };\n}\n/**\n * Fetch MySBT token ID for a specific user.\n * MySBT exposes `getUserSBT(address) -> uint256` (alias of the `userToSBT`\n * mapping), which returns the user's tokenId or 0 when they hold no SBT.\n *\n * Returns the tokenId, or `null` ONLY for the genuine \"no SBT\" sentinel (id == 0).\n * Read errors are NOT swallowed (see {@link checkMySBT}): a transient RPC failure\n * must not be reported as \"no SBT\" (a false negative for eligibility). The error\n * propagates to the caller.\n */\nexport async function getMySBTId(client, sbtAddress, user) {\n const tokenId = await client.readContract({\n address: sbtAddress,\n abi: MySBTABI,\n functionName: 'getUserSBT',\n args: [user]\n });\n // tokenId 0 is the contract's sentinel for \"no SBT\" (ids start at 1).\n return tokenId > 0n ? tokenId : null;\n}\n","export * from './mysbt.js';\nimport { ReputationSystemABI } from '@aastar/core';\nimport { parseAbi } from 'viem';\nexport class ReputationClient {\n client;\n reputationAddress;\n /** @internal */\n walletClient;\n /**\n * Initialize ReputationClient\n * @param client The public client for queries\n * @param reputationAddress The address of the reputation system contract\n * @param walletClient Optional wallet client for write operations\n */\n constructor(client, reputationAddress, walletClient) {\n this.client = client;\n this.reputationAddress = reputationAddress;\n this.walletClient = walletClient;\n }\n /**\n * Compute reputation score for a user\n */\n async computeScore(user, communities, ruleIds, activities) {\n return this.client.readContract({\n address: this.reputationAddress,\n abi: ReputationSystemABI,\n functionName: 'computeScore',\n args: [user, communities, ruleIds, activities]\n });\n }\n /**\n * Get global reputation score for a user\n * @param user User address\n * @returns Reputation score\n */\n async getGlobalReputation(user) {\n // Try to read score, if fails (e.g. invalid contract), return 0\n try {\n const score = await this.computeScore(user, [], [], []);\n return Number(score);\n }\n catch (e) {\n console.warn('Failed to read reputation from contract, defaulting to 0');\n return 0;\n }\n }\n /**\n * Get credit limit based on reputation\n * @param user User address\n * @returns Credit limit in wei (Mock logic closely tied to Reputation)\n */\n async getCreditLimit(user) {\n const reputation = await this.getGlobalReputation(user);\n // Dynamic Credit Limit Logic:\n // Base: 0\n // Score > 50: +0.01 ETH\n // Score > 100: +0.05 ETH\n let limit = 0n;\n if (reputation > 50)\n limit += 10000000000000000n; // 0.01 ETH\n if (reputation > 100)\n limit += 40000000000000000n; // +0.04 -> 0.05 ETH\n return limit;\n }\n /**\n * Get reputation score breakdown\n * @param user User address\n * @returns Detailed reputation breakdown (Mock implementation awaiting contract V4)\n */\n async getReputationBreakdown(user) {\n const total = await this.getGlobalReputation(user);\n // Heuristic breakdown\n return {\n baseScore: Math.floor(total * 0.5),\n stakingBonus: Math.floor(total * 0.3),\n activityBonus: Math.floor(total * 0.2),\n penaltyDeduction: 0,\n total\n };\n }\n /**\n * Submit reputation proof (off-chain data to on-chain)\n * @param params Proof parameters\n * @returns Transaction hash\n */\n async submitReputationProof(params) {\n if (!this.walletClient || !this.walletClient.account) {\n throw new Error(\"Wallet client required to submit proofs\");\n }\n // Using a generic 'submitProof' signature for now\n // In reality this would target the ReputationOracle or similar\n return this.walletClient.writeContract({\n address: this.reputationAddress,\n abi: parseAbi(['function submitProof(string,bytes32)']),\n functionName: 'submitProof',\n args: [params.proofData, params.signature],\n chain: this.walletClient.chain,\n account: this.walletClient.account\n });\n }\n}\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { SuperPaymasterABI } from './chunk-
|
|
1
|
+
import { SuperPaymasterABI } from './chunk-TIH7D4FQ.js';
|
|
2
2
|
import { concat, pad, toHex, keccak256, encodeAbiParameters, toBytes, parseAbiParameters, parseAbi, encodeFunctionData } from 'viem';
|
|
3
3
|
|
|
4
4
|
var DEFAULT_VERIFICATION_GAS = 160000n;
|
|
@@ -1136,5 +1136,5 @@ var PaymasterManager = class _PaymasterManager {
|
|
|
1136
1136
|
};
|
|
1137
1137
|
|
|
1138
1138
|
export { PaymasterClient, PaymasterManager, PaymasterOperator, SuperPaymasterAdminClient, SuperPaymasterClient, buildPaymasterData, buildSuperPaymasterData, checkEligibility, formatUserOpV07, getPaymasterV4Middleware, getSuperPaymasterMiddleware, getUserOpHashV07, tuneGasLimit };
|
|
1139
|
-
//# sourceMappingURL=chunk-
|
|
1140
|
-
//# sourceMappingURL=chunk-
|
|
1139
|
+
//# sourceMappingURL=chunk-I3VRFZA4.js.map
|
|
1140
|
+
//# sourceMappingURL=chunk-I3VRFZA4.js.map
|