@aastar/sdk 0.20.2 → 0.20.4

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.
Files changed (49) hide show
  1. package/README.md +116 -36
  2. package/dist/UserClient-JMNNZT4P.js +6 -0
  3. package/dist/{UserClient-YUHCJJJL.js.map → UserClient-JMNNZT4P.js.map} +1 -1
  4. package/dist/account.js +3 -3
  5. package/dist/admin.js +3 -3
  6. package/dist/channel.js +3 -3
  7. package/dist/{chunk-4DVUM4MC.js → chunk-5TDDS3T5.js} +3 -3
  8. package/dist/{chunk-4DVUM4MC.js.map → chunk-5TDDS3T5.js.map} +1 -1
  9. package/dist/{chunk-O3Y7II3B.js → chunk-KL6SCEIU.js} +4 -4
  10. package/dist/{chunk-O3Y7II3B.js.map → chunk-KL6SCEIU.js.map} +1 -1
  11. package/dist/{chunk-DI3E6PMI.js → chunk-LNICTATJ.js} +6 -6
  12. package/dist/{chunk-DI3E6PMI.js.map → chunk-LNICTATJ.js.map} +1 -1
  13. package/dist/{chunk-PCLPYRTX.js → chunk-M5ORP2PM.js} +8 -8
  14. package/dist/{chunk-PCLPYRTX.js.map → chunk-M5ORP2PM.js.map} +1 -1
  15. package/dist/{chunk-MPOMWT2J.js → chunk-NAPMVAVJ.js} +3 -3
  16. package/dist/{chunk-MPOMWT2J.js.map → chunk-NAPMVAVJ.js.map} +1 -1
  17. package/dist/{chunk-NZGXB2C5.js → chunk-O454V5ML.js} +3 -3
  18. package/dist/{chunk-NZGXB2C5.js.map → chunk-O454V5ML.js.map} +1 -1
  19. package/dist/{chunk-XFI3AK32.js → chunk-QNYP7RPI.js} +3 -3
  20. package/dist/{chunk-XFI3AK32.js.map → chunk-QNYP7RPI.js.map} +1 -1
  21. package/dist/{chunk-YHM77LIP.js → chunk-R2RATIK2.js} +9 -9
  22. package/dist/{chunk-YHM77LIP.js.map → chunk-R2RATIK2.js.map} +1 -1
  23. package/dist/{chunk-ZSSNU3UF.js → chunk-TBDMSJVL.js} +12 -12
  24. package/dist/{chunk-ZSSNU3UF.js.map → chunk-TBDMSJVL.js.map} +1 -1
  25. package/dist/{chunk-OSPRJZ5T.js → chunk-Y3KP7R2Y.js} +3 -3
  26. package/dist/{chunk-OSPRJZ5T.js.map → chunk-Y3KP7R2Y.js.map} +1 -1
  27. package/dist/{chunk-HVAB4TTT.js → chunk-YSDWB6DO.js} +3 -3
  28. package/dist/{chunk-HVAB4TTT.js.map → chunk-YSDWB6DO.js.map} +1 -1
  29. package/dist/{chunk-DSZ372PH.js → chunk-ZJLIKMCA.js} +20 -3
  30. package/dist/chunk-ZJLIKMCA.js.map +1 -0
  31. package/dist/{contract-addresses-JE3X6DFY.js → contract-addresses-VLAHHXOO.js} +3 -3
  32. package/dist/{contract-addresses-JE3X6DFY.js.map → contract-addresses-VLAHHXOO.js.map} +1 -1
  33. package/dist/core.js +2 -2
  34. package/dist/dapp.js +3 -3
  35. package/dist/{dist-GHTBO7CD.js → dist-WMYQOYRO.js} +5 -5
  36. package/dist/{dist-GHTBO7CD.js.map → dist-WMYQOYRO.js.map} +1 -1
  37. package/dist/enduser.js +4 -4
  38. package/dist/identity.js +3 -3
  39. package/dist/index.js +45 -23
  40. package/dist/index.js.map +1 -1
  41. package/dist/{index.node-55LOPHNQ.js → index.node-GNYPFVZQ.js} +4 -4
  42. package/dist/{index.node-55LOPHNQ.js.map → index.node-GNYPFVZQ.js.map} +1 -1
  43. package/dist/operator.js +3 -3
  44. package/dist/paymaster.js +3 -3
  45. package/dist/tokens.js +3 -3
  46. package/dist/x402.js +3 -3
  47. package/package.json +34 -9
  48. package/dist/UserClient-YUHCJJJL.js +0 -6
  49. package/dist/chunk-DSZ372PH.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../../x402/dist/eip3009.js","../../x402/dist/payment-header.js","../../x402/dist/facilitator.js","../../x402/dist/X402Client.js"],"names":[],"mappings":"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","file":"chunk-XFI3AK32.js","sourcesContent":["import { toHex } from 'viem';\nexport const EIP3009_TYPES = {\n TransferWithAuthorization: [\n { name: 'from', type: 'address' },\n { name: 'to', type: 'address' },\n { name: 'value', type: 'uint256' },\n { name: 'validAfter', type: 'uint256' },\n { name: 'validBefore', type: 'uint256' },\n { name: 'nonce', type: 'bytes32' },\n ],\n // Distinct typehash from TransferWithAuthorization — prevents replay across variants.\n // msg.sender must equal `to` on-chain (CallerMustBeRecipient error if violated).\n ReceiveWithAuthorization: [\n { name: 'from', type: 'address' },\n { name: 'to', type: 'address' },\n { name: 'value', type: 'uint256' },\n { name: 'validAfter', type: 'uint256' },\n { name: 'validBefore', type: 'uint256' },\n { name: 'nonce', type: 'bytes32' },\n ],\n CancelAuthorization: [\n { name: 'authorizer', type: 'address' },\n { name: 'nonce', type: 'bytes32' },\n ],\n};\nexport function getEIP3009Domain(tokenName, tokenVersion, chainId, verifyingContract) {\n return {\n name: tokenName,\n version: tokenVersion,\n chainId,\n verifyingContract,\n };\n}\nexport function generateNonce() {\n const bytes = new Uint8Array(32);\n globalThis.crypto.getRandomValues(bytes);\n return toHex(bytes);\n}\n// GToken EIP-712 domain constants (GTokenAuthorization v2.2.0)\nexport const GTOKEN_EIP712_DOMAIN = { name: 'GToken', version: '1' };\nexport async function signTransferWithAuthorization(walletClient, params) {\n const domain = getEIP3009Domain(params.tokenName, params.tokenVersion, params.chainId, params.verifyingContract);\n const account = walletClient.account;\n if (!account) {\n throw new Error('WalletClient must have an account');\n }\n return walletClient.signTypedData({\n account,\n domain,\n types: EIP3009_TYPES,\n primaryType: 'TransferWithAuthorization',\n message: {\n from: params.from,\n to: params.to,\n value: params.value,\n validAfter: params.validAfter,\n validBefore: params.validBefore,\n nonce: params.nonce,\n },\n });\n}\n/**\n * Sign a TransferWithAuthorization for GTokenAuthorization (EIP-3009).\n * GToken-specific wrapper: enforces MAX_AUTH_VALIDITY = 300s before signing.\n * Use this instead of the generic signTransferWithAuthorization when the\n * verifying contract is GTokenAuthorization.\n */\nexport async function signGTokenTransferWithAuthorization(walletClient, params) {\n const account = walletClient.account;\n if (!account) {\n throw new Error('WalletClient must have an account');\n }\n if (account.address.toLowerCase() !== params.from.toLowerCase()) {\n throw new Error(`Signer ${account.address} does not match from ${params.from}`);\n }\n // GTokenAuthorization enforces MAX_AUTH_VALIDITY = 300s on-chain.\n if (params.validBefore <= params.validAfter) {\n throw new Error('validBefore must be greater than validAfter');\n }\n if (params.validBefore - params.validAfter > 300n) {\n throw new Error(`Authorization window ${params.validBefore - params.validAfter}s exceeds MAX_AUTH_VALIDITY (300s)`);\n }\n return signTransferWithAuthorization(walletClient, params);\n}\n/**\n * Sign a ReceiveWithAuthorization for GTokenAuthorization (EIP-3009).\n * The signed `to` address must be the one submitting the transaction on-chain.\n * Note: `xPNTsToken` is NOT included in the signature (it's a relay-supplied hint for RC-2).\n */\nexport async function signReceiveWithAuthorization(walletClient, params) {\n const account = walletClient.account;\n if (!account) {\n throw new Error('WalletClient must have an account');\n }\n if (account.address.toLowerCase() !== params.from.toLowerCase()) {\n throw new Error(`Signer ${account.address} does not match from ${params.from}`);\n }\n // GTokenAuthorization enforces MAX_AUTH_VALIDITY = 300s on-chain (RC-1).\n if (params.validBefore <= params.validAfter) {\n throw new Error('validBefore must be greater than validAfter');\n }\n if (params.validBefore - params.validAfter > 300n) {\n throw new Error(`Authorization window ${params.validBefore - params.validAfter}s exceeds MAX_AUTH_VALIDITY (300s)`);\n }\n return walletClient.signTypedData({\n account,\n domain: getEIP3009Domain(params.tokenName, params.tokenVersion, params.chainId, params.verifyingContract),\n types: EIP3009_TYPES,\n primaryType: 'ReceiveWithAuthorization',\n message: {\n from: params.from,\n to: params.to,\n value: params.value,\n validAfter: params.validAfter,\n validBefore: params.validBefore,\n nonce: params.nonce,\n },\n });\n}\n/**\n * Sign a CancelAuthorization for GTokenAuthorization (EIP-3009).\n * Must be signed by the original `authorizer` address.\n */\nexport async function signCancelAuthorization(walletClient, params) {\n const account = walletClient.account;\n if (!account) {\n throw new Error('WalletClient must have an account');\n }\n if (account.address.toLowerCase() !== params.authorizer.toLowerCase()) {\n throw new Error(`Signer ${account.address} does not match authorizer ${params.authorizer}`);\n }\n return walletClient.signTypedData({\n account,\n domain: getEIP3009Domain(params.tokenName, params.tokenVersion, params.chainId, params.verifyingContract),\n types: EIP3009_TYPES,\n primaryType: 'CancelAuthorization',\n message: {\n authorizer: params.authorizer,\n nonce: params.nonce,\n },\n });\n}\n","// ============================================================\n// x402 v2 HTTP Header Names\n// Ref: github.com/coinbase/x402/blob/main/specs/x402-specification-v2.md\n// ============================================================\n/** v2 header names (standard) */\nexport const HEADER_PAYMENT_REQUIRED = 'PAYMENT-REQUIRED';\nexport const HEADER_PAYMENT_SIGNATURE = 'PAYMENT-SIGNATURE';\nexport const HEADER_PAYMENT_RESPONSE = 'PAYMENT-RESPONSE';\n/** v1 header names (backward compat) */\nexport const HEADER_V1_PAYMENT = 'X-PAYMENT';\nexport const HEADER_V1_PAYMENT_RESPONSE = 'X-PAYMENT-RESPONSE';\n// ============================================================\n// Encoding / Decoding (Base64 JSON — per x402 spec)\n// ============================================================\nfunction toBase64(data) {\n const json = JSON.stringify(data);\n if (typeof Buffer !== 'undefined') {\n return Buffer.from(json).toString('base64');\n }\n return btoa(json);\n}\nfunction fromBase64(encoded) {\n let json;\n if (typeof Buffer !== 'undefined') {\n json = Buffer.from(encoded, 'base64').toString('utf-8');\n }\n else {\n json = atob(encoded);\n }\n return JSON.parse(json);\n}\n// --- PaymentRequired (402 response) ---\nexport function encodePaymentRequired(req) {\n return toBase64(req);\n}\nexport function decodePaymentRequired(encoded) {\n return fromBase64(encoded);\n}\n// --- PaymentPayload (client → server) ---\nexport function encodePaymentPayload(payload) {\n return toBase64(payload);\n}\nexport function decodePaymentPayload(encoded) {\n return fromBase64(encoded);\n}\n// --- SettleResponse (server → client) ---\nexport function encodeSettleResponse(resp) {\n return toBase64(resp);\n}\nexport function decodeSettleResponse(encoded) {\n return fromBase64(encoded);\n}\n// ============================================================\n// Header Extraction Helpers\n// ============================================================\n/**\n * Extract PaymentRequired from a 402 Response.\n * Tries v2 header first, falls back to v1.\n */\nexport function extractPaymentRequired(response) {\n const v2 = response.headers.get(HEADER_PAYMENT_REQUIRED);\n if (v2)\n return decodePaymentRequired(v2);\n // v1 fallback: check body or X-PAYMENT-REQUIRED\n const v1 = response.headers.get('X-PAYMENT-REQUIRED');\n if (v1)\n return decodePaymentRequired(v1);\n return null;\n}\n/**\n * Extract SettleResponse from a successful response.\n */\nexport function extractSettleResponse(response) {\n const v2 = response.headers.get(HEADER_PAYMENT_RESPONSE);\n if (v2)\n return decodeSettleResponse(v2);\n const v1 = response.headers.get(HEADER_V1_PAYMENT_RESPONSE);\n if (v1)\n return decodeSettleResponse(v1);\n return null;\n}\n","/**\n * HTTP Facilitator Client — standard x402 v2 facilitator API.\n * Compatible with Coinbase hosted facilitator and self-hosted instances.\n *\n * Ref: coinbase/x402 HTTPFacilitatorClient pattern\n */\nexport class FacilitatorClient {\n url;\n createAuthHeaders;\n constructor(config) {\n this.url = config.url.replace(/\\/$/, '');\n this.createAuthHeaders = config.createAuthHeaders;\n }\n async getHeaders(endpoint) {\n const base = { 'Content-Type': 'application/json' };\n if (!this.createAuthHeaders)\n return base;\n const auth = await this.createAuthHeaders();\n return { ...base, ...auth[endpoint] };\n }\n /**\n * POST /verify — validate payment signature off-chain (~100ms).\n */\n async verify(paymentPayload, paymentRequirements) {\n const resp = await fetch(`${this.url}/verify`, {\n method: 'POST',\n headers: await this.getHeaders('verify'),\n body: JSON.stringify({\n x402Version: 2,\n paymentPayload,\n paymentRequirements,\n }),\n });\n if (!resp.ok) {\n throw new Error(`Facilitator /verify failed: ${resp.status} ${await resp.text()}`);\n }\n return resp.json();\n }\n /**\n * POST /settle — execute on-chain settlement (~2s on Base).\n */\n async settle(paymentPayload, paymentRequirements) {\n const resp = await fetch(`${this.url}/settle`, {\n method: 'POST',\n headers: await this.getHeaders('settle'),\n body: JSON.stringify({\n x402Version: 2,\n paymentPayload,\n paymentRequirements,\n }),\n });\n if (!resp.ok) {\n throw new Error(`Facilitator /settle failed: ${resp.status} ${await resp.text()}`);\n }\n return resp.json();\n }\n /**\n * GET /supported — query facilitator capabilities.\n */\n async supported() {\n const resp = await fetch(`${this.url}/supported`, {\n method: 'GET',\n headers: await this.getHeaders('supported'),\n });\n if (!resp.ok) {\n throw new Error(`Facilitator /supported failed: ${resp.status} ${await resp.text()}`);\n }\n return resp.json();\n }\n}\n","import { x402Actions } from '@aastar/core';\nimport { signTransferWithAuthorization, generateNonce } from './eip3009.js';\nimport { encodePaymentPayload, extractPaymentRequired, HEADER_PAYMENT_SIGNATURE, } from './payment-header.js';\nimport { FacilitatorClient } from './facilitator.js';\n/** CAIP-2 network identifier from chainId */\nfunction toNetworkId(chainId) {\n return `eip155:${chainId}`;\n}\nexport class X402Client {\n actions;\n config;\n facilitatorClient;\n constructor(config) {\n if (!config.walletClient.account) {\n throw new Error('WalletClient must have an account configured');\n }\n this.config = config;\n // walletClient supports both readContract and writeContract — single instance suffices\n this.actions = x402Actions(config.superPaymasterAddress)(config.walletClient);\n if (config.facilitator) {\n this.facilitatorClient = new FacilitatorClient(config.facilitator);\n }\n }\n /**\n * Create a signed payment payload (EIP-3009 TransferWithAuthorization).\n * Returns a base64-encoded PaymentPayload ready for PAYMENT-SIGNATURE header.\n */\n async createPayment(params) {\n const nonce = params.nonce || generateNonce();\n const now = BigInt(Math.floor(Date.now() / 1000));\n const validAfter = params.validAfter ?? (now - 600n); // 10 min grace (per x402 spec)\n const validBefore = params.validBefore ?? (now + 3600n);\n const tokenName = this.config.tokenName || 'USDC';\n const tokenVersion = this.config.tokenVersion || '2';\n const signature = await signTransferWithAuthorization(this.config.walletClient, {\n from: params.from,\n to: params.to,\n value: params.amount,\n validAfter,\n validBefore,\n nonce,\n tokenName,\n tokenVersion,\n chainId: this.config.chainId,\n verifyingContract: params.asset,\n });\n const payload = {\n x402Version: 2,\n accepted: {\n scheme: 'exact',\n network: toNetworkId(this.config.chainId),\n asset: params.asset,\n amount: params.amount.toString(),\n payTo: params.to,\n maxTimeoutSeconds: 3600,\n extra: { name: tokenName, version: tokenVersion },\n },\n payload: {\n signature,\n authorization: {\n from: params.from,\n to: params.to,\n value: params.amount.toString(),\n validAfter: validAfter.toString(),\n validBefore: validBefore.toString(),\n nonce,\n },\n },\n };\n return {\n payload,\n encoded: encodePaymentPayload(payload),\n nonce,\n };\n }\n /**\n * Settle payment on-chain via SuperPaymaster (self-facilitated).\n * Uses EIP-3009 transferWithAuthorization path.\n */\n async settleOnChain(params) {\n return this.actions.settleX402Payment({\n ...params,\n account: this.config.walletClient.account,\n });\n }\n /**\n * Settle payment on-chain via direct transfer (for xPNTs and pre-approved tokens).\n */\n async settleDirectOnChain(params) {\n return this.actions.settleX402PaymentDirect({\n ...params,\n account: this.config.walletClient.account,\n });\n }\n /**\n * Get facilitator fee quote from on-chain contract.\n */\n async getQuote() {\n const feeBPS = await this.actions.facilitatorFeeBPS();\n return { feeBPS };\n }\n /**\n * Check if a nonce has been used.\n */\n async checkNonce(nonce) {\n return this.actions.x402SettlementNonces({ nonce });\n }\n /**\n * Settle via external facilitator (Coinbase, self-hosted, etc.).\n * Requires facilitator config in constructor.\n */\n async settleViaFacilitator(payload, requirements) {\n if (!this.facilitatorClient) {\n throw new Error('No facilitator configured. Pass facilitator config to X402Client constructor.');\n }\n return this.facilitatorClient.settle(payload, requirements);\n }\n /**\n * x402-aware fetch wrapper.\n * Automatically handles 402 → sign → retry flow per x402 v2 spec.\n *\n * Pattern from: @x402/fetch wrapFetchWithPayment\n *\n * Flow:\n * 1. Make initial request\n * 2. If 402, extract PaymentRequired from PAYMENT-REQUIRED header\n * 3. Select best payment option (applies policy: max amount check)\n * 4. Sign EIP-3009 authorization\n * 5. Retry with PAYMENT-SIGNATURE header\n */\n async x402Fetch(url, init) {\n const firstResponse = await fetch(url, init);\n if (firstResponse.status !== 402) {\n return firstResponse;\n }\n // Step 2: Extract payment requirements\n // TODO: some server implementations put PaymentRequired in the response body instead of headers\n const paymentRequired = extractPaymentRequired(firstResponse);\n if (!paymentRequired || !paymentRequired.accepts?.length) {\n throw new Error('402 response missing PAYMENT-REQUIRED header or empty accepts');\n }\n // Step 3: Select payment option (filter by network + policy)\n const myNetwork = toNetworkId(this.config.chainId);\n let selected = paymentRequired.accepts.find((a) => a.network === myNetwork && a.scheme === 'exact');\n if (!selected) {\n // Fallback: any EVM option\n selected = paymentRequired.accepts.find((a) => a.network.startsWith('eip155:'));\n }\n if (!selected) {\n throw new Error(`No compatible payment option for network ${myNetwork}`);\n }\n // Policy check: max amount\n if (this.config.maxAmountPerRequest && BigInt(selected.amount) > this.config.maxAmountPerRequest) {\n throw new Error(`Payment amount ${selected.amount} exceeds max ${this.config.maxAmountPerRequest}`);\n }\n const account = this.config.walletClient.account;\n if (!account) {\n throw new Error('WalletClient must have an account for automatic payment');\n }\n // Step 4: Sign\n const { encoded } = await this.createPayment({\n from: account.address,\n to: selected.payTo,\n asset: selected.asset,\n amount: BigInt(selected.amount),\n });\n // Step 5: Retry with payment signature\n const retryHeaders = new Headers(init?.headers);\n retryHeaders.set(HEADER_PAYMENT_SIGNATURE, encoded);\n return fetch(url, { ...init, headers: retryHeaders });\n }\n}\n"]}
1
+ {"version":3,"sources":["../../x402/dist/eip3009.js","../../x402/dist/payment-header.js","../../x402/dist/facilitator.js","../../x402/dist/X402Client.js"],"names":[],"mappings":"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","file":"chunk-QNYP7RPI.js","sourcesContent":["import { toHex } from 'viem';\nexport const EIP3009_TYPES = {\n TransferWithAuthorization: [\n { name: 'from', type: 'address' },\n { name: 'to', type: 'address' },\n { name: 'value', type: 'uint256' },\n { name: 'validAfter', type: 'uint256' },\n { name: 'validBefore', type: 'uint256' },\n { name: 'nonce', type: 'bytes32' },\n ],\n // Distinct typehash from TransferWithAuthorization — prevents replay across variants.\n // msg.sender must equal `to` on-chain (CallerMustBeRecipient error if violated).\n ReceiveWithAuthorization: [\n { name: 'from', type: 'address' },\n { name: 'to', type: 'address' },\n { name: 'value', type: 'uint256' },\n { name: 'validAfter', type: 'uint256' },\n { name: 'validBefore', type: 'uint256' },\n { name: 'nonce', type: 'bytes32' },\n ],\n CancelAuthorization: [\n { name: 'authorizer', type: 'address' },\n { name: 'nonce', type: 'bytes32' },\n ],\n};\nexport function getEIP3009Domain(tokenName, tokenVersion, chainId, verifyingContract) {\n return {\n name: tokenName,\n version: tokenVersion,\n chainId,\n verifyingContract,\n };\n}\nexport function generateNonce() {\n const bytes = new Uint8Array(32);\n globalThis.crypto.getRandomValues(bytes);\n return toHex(bytes);\n}\n// GToken EIP-712 domain constants (GTokenAuthorization v2.2.0)\nexport const GTOKEN_EIP712_DOMAIN = { name: 'GToken', version: '1' };\nexport async function signTransferWithAuthorization(walletClient, params) {\n const domain = getEIP3009Domain(params.tokenName, params.tokenVersion, params.chainId, params.verifyingContract);\n const account = walletClient.account;\n if (!account) {\n throw new Error('WalletClient must have an account');\n }\n return walletClient.signTypedData({\n account,\n domain,\n types: EIP3009_TYPES,\n primaryType: 'TransferWithAuthorization',\n message: {\n from: params.from,\n to: params.to,\n value: params.value,\n validAfter: params.validAfter,\n validBefore: params.validBefore,\n nonce: params.nonce,\n },\n });\n}\n/**\n * Sign a TransferWithAuthorization for GTokenAuthorization (EIP-3009).\n * GToken-specific wrapper: enforces MAX_AUTH_VALIDITY = 300s before signing.\n * Use this instead of the generic signTransferWithAuthorization when the\n * verifying contract is GTokenAuthorization.\n */\nexport async function signGTokenTransferWithAuthorization(walletClient, params) {\n const account = walletClient.account;\n if (!account) {\n throw new Error('WalletClient must have an account');\n }\n if (account.address.toLowerCase() !== params.from.toLowerCase()) {\n throw new Error(`Signer ${account.address} does not match from ${params.from}`);\n }\n // GTokenAuthorization enforces MAX_AUTH_VALIDITY = 300s on-chain.\n if (params.validBefore <= params.validAfter) {\n throw new Error('validBefore must be greater than validAfter');\n }\n if (params.validBefore - params.validAfter > 300n) {\n throw new Error(`Authorization window ${params.validBefore - params.validAfter}s exceeds MAX_AUTH_VALIDITY (300s)`);\n }\n return signTransferWithAuthorization(walletClient, params);\n}\n/**\n * Sign a ReceiveWithAuthorization for GTokenAuthorization (EIP-3009).\n * The signed `to` address must be the one submitting the transaction on-chain.\n * Note: `xPNTsToken` is NOT included in the signature (it's a relay-supplied hint for RC-2).\n */\nexport async function signReceiveWithAuthorization(walletClient, params) {\n const account = walletClient.account;\n if (!account) {\n throw new Error('WalletClient must have an account');\n }\n if (account.address.toLowerCase() !== params.from.toLowerCase()) {\n throw new Error(`Signer ${account.address} does not match from ${params.from}`);\n }\n // GTokenAuthorization enforces MAX_AUTH_VALIDITY = 300s on-chain (RC-1).\n if (params.validBefore <= params.validAfter) {\n throw new Error('validBefore must be greater than validAfter');\n }\n if (params.validBefore - params.validAfter > 300n) {\n throw new Error(`Authorization window ${params.validBefore - params.validAfter}s exceeds MAX_AUTH_VALIDITY (300s)`);\n }\n return walletClient.signTypedData({\n account,\n domain: getEIP3009Domain(params.tokenName, params.tokenVersion, params.chainId, params.verifyingContract),\n types: EIP3009_TYPES,\n primaryType: 'ReceiveWithAuthorization',\n message: {\n from: params.from,\n to: params.to,\n value: params.value,\n validAfter: params.validAfter,\n validBefore: params.validBefore,\n nonce: params.nonce,\n },\n });\n}\n/**\n * Sign a CancelAuthorization for GTokenAuthorization (EIP-3009).\n * Must be signed by the original `authorizer` address.\n */\nexport async function signCancelAuthorization(walletClient, params) {\n const account = walletClient.account;\n if (!account) {\n throw new Error('WalletClient must have an account');\n }\n if (account.address.toLowerCase() !== params.authorizer.toLowerCase()) {\n throw new Error(`Signer ${account.address} does not match authorizer ${params.authorizer}`);\n }\n return walletClient.signTypedData({\n account,\n domain: getEIP3009Domain(params.tokenName, params.tokenVersion, params.chainId, params.verifyingContract),\n types: EIP3009_TYPES,\n primaryType: 'CancelAuthorization',\n message: {\n authorizer: params.authorizer,\n nonce: params.nonce,\n },\n });\n}\n","// ============================================================\n// x402 v2 HTTP Header Names\n// Ref: github.com/coinbase/x402/blob/main/specs/x402-specification-v2.md\n// ============================================================\n/** v2 header names (standard) */\nexport const HEADER_PAYMENT_REQUIRED = 'PAYMENT-REQUIRED';\nexport const HEADER_PAYMENT_SIGNATURE = 'PAYMENT-SIGNATURE';\nexport const HEADER_PAYMENT_RESPONSE = 'PAYMENT-RESPONSE';\n/** v1 header names (backward compat) */\nexport const HEADER_V1_PAYMENT = 'X-PAYMENT';\nexport const HEADER_V1_PAYMENT_RESPONSE = 'X-PAYMENT-RESPONSE';\n// ============================================================\n// Encoding / Decoding (Base64 JSON — per x402 spec)\n// ============================================================\nfunction toBase64(data) {\n const json = JSON.stringify(data);\n if (typeof Buffer !== 'undefined') {\n return Buffer.from(json).toString('base64');\n }\n return btoa(json);\n}\nfunction fromBase64(encoded) {\n let json;\n if (typeof Buffer !== 'undefined') {\n json = Buffer.from(encoded, 'base64').toString('utf-8');\n }\n else {\n json = atob(encoded);\n }\n return JSON.parse(json);\n}\n// --- PaymentRequired (402 response) ---\nexport function encodePaymentRequired(req) {\n return toBase64(req);\n}\nexport function decodePaymentRequired(encoded) {\n return fromBase64(encoded);\n}\n// --- PaymentPayload (client → server) ---\nexport function encodePaymentPayload(payload) {\n return toBase64(payload);\n}\nexport function decodePaymentPayload(encoded) {\n return fromBase64(encoded);\n}\n// --- SettleResponse (server → client) ---\nexport function encodeSettleResponse(resp) {\n return toBase64(resp);\n}\nexport function decodeSettleResponse(encoded) {\n return fromBase64(encoded);\n}\n// ============================================================\n// Header Extraction Helpers\n// ============================================================\n/**\n * Extract PaymentRequired from a 402 Response.\n * Tries v2 header first, falls back to v1.\n */\nexport function extractPaymentRequired(response) {\n const v2 = response.headers.get(HEADER_PAYMENT_REQUIRED);\n if (v2)\n return decodePaymentRequired(v2);\n // v1 fallback: check body or X-PAYMENT-REQUIRED\n const v1 = response.headers.get('X-PAYMENT-REQUIRED');\n if (v1)\n return decodePaymentRequired(v1);\n return null;\n}\n/**\n * Extract SettleResponse from a successful response.\n */\nexport function extractSettleResponse(response) {\n const v2 = response.headers.get(HEADER_PAYMENT_RESPONSE);\n if (v2)\n return decodeSettleResponse(v2);\n const v1 = response.headers.get(HEADER_V1_PAYMENT_RESPONSE);\n if (v1)\n return decodeSettleResponse(v1);\n return null;\n}\n","/**\n * HTTP Facilitator Client — standard x402 v2 facilitator API.\n * Compatible with Coinbase hosted facilitator and self-hosted instances.\n *\n * Ref: coinbase/x402 HTTPFacilitatorClient pattern\n */\nexport class FacilitatorClient {\n url;\n createAuthHeaders;\n constructor(config) {\n this.url = config.url.replace(/\\/$/, '');\n this.createAuthHeaders = config.createAuthHeaders;\n }\n async getHeaders(endpoint) {\n const base = { 'Content-Type': 'application/json' };\n if (!this.createAuthHeaders)\n return base;\n const auth = await this.createAuthHeaders();\n return { ...base, ...auth[endpoint] };\n }\n /**\n * POST /verify — validate payment signature off-chain (~100ms).\n */\n async verify(paymentPayload, paymentRequirements) {\n const resp = await fetch(`${this.url}/verify`, {\n method: 'POST',\n headers: await this.getHeaders('verify'),\n body: JSON.stringify({\n x402Version: 2,\n paymentPayload,\n paymentRequirements,\n }),\n });\n if (!resp.ok) {\n throw new Error(`Facilitator /verify failed: ${resp.status} ${await resp.text()}`);\n }\n return resp.json();\n }\n /**\n * POST /settle — execute on-chain settlement (~2s on Base).\n */\n async settle(paymentPayload, paymentRequirements) {\n const resp = await fetch(`${this.url}/settle`, {\n method: 'POST',\n headers: await this.getHeaders('settle'),\n body: JSON.stringify({\n x402Version: 2,\n paymentPayload,\n paymentRequirements,\n }),\n });\n if (!resp.ok) {\n throw new Error(`Facilitator /settle failed: ${resp.status} ${await resp.text()}`);\n }\n return resp.json();\n }\n /**\n * GET /supported — query facilitator capabilities.\n */\n async supported() {\n const resp = await fetch(`${this.url}/supported`, {\n method: 'GET',\n headers: await this.getHeaders('supported'),\n });\n if (!resp.ok) {\n throw new Error(`Facilitator /supported failed: ${resp.status} ${await resp.text()}`);\n }\n return resp.json();\n }\n}\n","import { x402Actions } from '@aastar/core';\nimport { signTransferWithAuthorization, generateNonce } from './eip3009.js';\nimport { encodePaymentPayload, extractPaymentRequired, HEADER_PAYMENT_SIGNATURE, } from './payment-header.js';\nimport { FacilitatorClient } from './facilitator.js';\n/** CAIP-2 network identifier from chainId */\nfunction toNetworkId(chainId) {\n return `eip155:${chainId}`;\n}\nexport class X402Client {\n actions;\n config;\n facilitatorClient;\n constructor(config) {\n if (!config.walletClient.account) {\n throw new Error('WalletClient must have an account configured');\n }\n this.config = config;\n // walletClient supports both readContract and writeContract — single instance suffices\n this.actions = x402Actions(config.superPaymasterAddress)(config.walletClient);\n if (config.facilitator) {\n this.facilitatorClient = new FacilitatorClient(config.facilitator);\n }\n }\n /**\n * Create a signed payment payload (EIP-3009 TransferWithAuthorization).\n * Returns a base64-encoded PaymentPayload ready for PAYMENT-SIGNATURE header.\n */\n async createPayment(params) {\n const nonce = params.nonce || generateNonce();\n const now = BigInt(Math.floor(Date.now() / 1000));\n const validAfter = params.validAfter ?? (now - 600n); // 10 min grace (per x402 spec)\n const validBefore = params.validBefore ?? (now + 3600n);\n const tokenName = this.config.tokenName || 'USDC';\n const tokenVersion = this.config.tokenVersion || '2';\n const signature = await signTransferWithAuthorization(this.config.walletClient, {\n from: params.from,\n to: params.to,\n value: params.amount,\n validAfter,\n validBefore,\n nonce,\n tokenName,\n tokenVersion,\n chainId: this.config.chainId,\n verifyingContract: params.asset,\n });\n const payload = {\n x402Version: 2,\n accepted: {\n scheme: 'exact',\n network: toNetworkId(this.config.chainId),\n asset: params.asset,\n amount: params.amount.toString(),\n payTo: params.to,\n maxTimeoutSeconds: 3600,\n extra: { name: tokenName, version: tokenVersion },\n },\n payload: {\n signature,\n authorization: {\n from: params.from,\n to: params.to,\n value: params.amount.toString(),\n validAfter: validAfter.toString(),\n validBefore: validBefore.toString(),\n nonce,\n },\n },\n };\n return {\n payload,\n encoded: encodePaymentPayload(payload),\n nonce,\n };\n }\n /**\n * Settle payment on-chain via SuperPaymaster (self-facilitated).\n * Uses EIP-3009 transferWithAuthorization path.\n */\n async settleOnChain(params) {\n return this.actions.settleX402Payment({\n ...params,\n account: this.config.walletClient.account,\n });\n }\n /**\n * Settle payment on-chain via direct transfer (for xPNTs and pre-approved tokens).\n */\n async settleDirectOnChain(params) {\n return this.actions.settleX402PaymentDirect({\n ...params,\n account: this.config.walletClient.account,\n });\n }\n /**\n * Get facilitator fee quote from on-chain contract.\n */\n async getQuote() {\n const feeBPS = await this.actions.facilitatorFeeBPS();\n return { feeBPS };\n }\n /**\n * Check if a nonce has been used.\n */\n async checkNonce(nonce) {\n return this.actions.x402SettlementNonces({ nonce });\n }\n /**\n * Settle via external facilitator (Coinbase, self-hosted, etc.).\n * Requires facilitator config in constructor.\n */\n async settleViaFacilitator(payload, requirements) {\n if (!this.facilitatorClient) {\n throw new Error('No facilitator configured. Pass facilitator config to X402Client constructor.');\n }\n return this.facilitatorClient.settle(payload, requirements);\n }\n /**\n * x402-aware fetch wrapper.\n * Automatically handles 402 → sign → retry flow per x402 v2 spec.\n *\n * Pattern from: @x402/fetch wrapFetchWithPayment\n *\n * Flow:\n * 1. Make initial request\n * 2. If 402, extract PaymentRequired from PAYMENT-REQUIRED header\n * 3. Select best payment option (applies policy: max amount check)\n * 4. Sign EIP-3009 authorization\n * 5. Retry with PAYMENT-SIGNATURE header\n */\n async x402Fetch(url, init) {\n const firstResponse = await fetch(url, init);\n if (firstResponse.status !== 402) {\n return firstResponse;\n }\n // Step 2: Extract payment requirements\n // TODO: some server implementations put PaymentRequired in the response body instead of headers\n const paymentRequired = extractPaymentRequired(firstResponse);\n if (!paymentRequired || !paymentRequired.accepts?.length) {\n throw new Error('402 response missing PAYMENT-REQUIRED header or empty accepts');\n }\n // Step 3: Select payment option (filter by network + policy)\n const myNetwork = toNetworkId(this.config.chainId);\n let selected = paymentRequired.accepts.find((a) => a.network === myNetwork && a.scheme === 'exact');\n if (!selected) {\n // Fallback: any EVM option\n selected = paymentRequired.accepts.find((a) => a.network.startsWith('eip155:'));\n }\n if (!selected) {\n throw new Error(`No compatible payment option for network ${myNetwork}`);\n }\n // Policy check: max amount\n if (this.config.maxAmountPerRequest && BigInt(selected.amount) > this.config.maxAmountPerRequest) {\n throw new Error(`Payment amount ${selected.amount} exceeds max ${this.config.maxAmountPerRequest}`);\n }\n const account = this.config.walletClient.account;\n if (!account) {\n throw new Error('WalletClient must have an account for automatic payment');\n }\n // Step 4: Sign\n const { encoded } = await this.createPayment({\n from: account.address,\n to: selected.payTo,\n asset: selected.asset,\n amount: BigInt(selected.amount),\n });\n // Step 5: Retry with payment signature\n const retryHeaders = new Headers(init?.headers);\n retryHeaders.set(HEADER_PAYMENT_SIGNATURE, encoded);\n return fetch(url, { ...init, headers: retryHeaders });\n }\n}\n"]}
@@ -1,4 +1,4 @@
1
- import { BaseClient, xPNTsFactoryActions, registryActions, tokenActions, sbtActions, reputationActions } from './chunk-ZSSNU3UF.js';
1
+ import { BaseClient, xPNTsFactoryActions, registryActions, tokenActions, sbtActions, reputationActions } from './chunk-TBDMSJVL.js';
2
2
  import { parseEther, encodeAbiParameters, parseAbiParameters } from 'viem';
3
3
 
4
4
  var CommunityClient = class extends BaseClient {
@@ -306,7 +306,7 @@ var UserLifecycle = class extends BaseClient {
306
306
  async onboard(community, stakeAmount = parseEther("0.4")) {
307
307
  try {
308
308
  const registry = registryActions(this.registryAddress)(this.getStartPublicClient());
309
- const userClient = await import('./UserClient-YUHCJJJL.js').then((m) => new m.UserClient({
309
+ const userClient = await import('./UserClient-JMNNZT4P.js').then((m) => new m.UserClient({
310
310
  ...this.config,
311
311
  accountAddress: this.accountAddress,
312
312
  registryAddress: this.registryAddress,
@@ -350,7 +350,7 @@ var UserLifecycle = class extends BaseClient {
350
350
  if (!this.gaslessConfig) {
351
351
  throw new Error("Gasless configuration not enabled. Call enableGasless() first.");
352
352
  }
353
- const userClient = await import('./UserClient-YUHCJJJL.js').then((m) => new m.UserClient({
353
+ const userClient = await import('./UserClient-JMNNZT4P.js').then((m) => new m.UserClient({
354
354
  ...this.config,
355
355
  accountAddress: this.accountAddress,
356
356
  // Pass minimal config needed for execution
@@ -370,7 +370,7 @@ var UserLifecycle = class extends BaseClient {
370
370
  });
371
371
  }
372
372
  async claimSBT(roleId, options) {
373
- const userClient = await import('./UserClient-YUHCJJJL.js').then((m) => new m.UserClient({
373
+ const userClient = await import('./UserClient-JMNNZT4P.js').then((m) => new m.UserClient({
374
374
  ...this.config,
375
375
  accountAddress: this.accountAddress,
376
376
  sbtAddress: this.sbtAddress
@@ -402,7 +402,7 @@ var UserLifecycle = class extends BaseClient {
402
402
  // 4. Exit Phase (Cleanup)
403
403
  // ===========================================
404
404
  async leaveCommunity(community, options) {
405
- const userClient = await import('./UserClient-YUHCJJJL.js').then((m) => new m.UserClient({
405
+ const userClient = await import('./UserClient-JMNNZT4P.js').then((m) => new m.UserClient({
406
406
  ...this.config,
407
407
  accountAddress: this.accountAddress,
408
408
  sbtAddress: this.sbtAddress
@@ -410,7 +410,7 @@ var UserLifecycle = class extends BaseClient {
410
410
  return await userClient.leaveCommunity(community, options);
411
411
  }
412
412
  async exitRole(roleId, options) {
413
- const userClient = await import('./UserClient-YUHCJJJL.js').then((m) => new m.UserClient({
413
+ const userClient = await import('./UserClient-JMNNZT4P.js').then((m) => new m.UserClient({
414
414
  ...this.config,
415
415
  accountAddress: this.accountAddress,
416
416
  registryAddress: this.registryAddress
@@ -418,7 +418,7 @@ var UserLifecycle = class extends BaseClient {
418
418
  return await userClient.exitRole(roleId, options);
419
419
  }
420
420
  async unstakeAll(roleId, options) {
421
- const userClient = await import('./UserClient-YUHCJJJL.js').then((m) => new m.UserClient({
421
+ const userClient = await import('./UserClient-JMNNZT4P.js').then((m) => new m.UserClient({
422
422
  ...this.config,
423
423
  accountAddress: this.accountAddress,
424
424
  gTokenStakingAddress: this.gTokenStakingAddress
@@ -428,5 +428,5 @@ var UserLifecycle = class extends BaseClient {
428
428
  };
429
429
 
430
430
  export { CommunityClient, UserLifecycle };
431
- //# sourceMappingURL=chunk-YHM77LIP.js.map
432
- //# sourceMappingURL=chunk-YHM77LIP.js.map
431
+ //# sourceMappingURL=chunk-R2RATIK2.js.map
432
+ //# sourceMappingURL=chunk-R2RATIK2.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../enduser/dist/CommunityClient.js","../../enduser/dist/UserLifecycle.js"],"names":["stakeAmount","parseAbiParameters","parseEther"],"mappings":"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","file":"chunk-YHM77LIP.js","sourcesContent":["import { parseEther, encodeAbiParameters, parseAbiParameters } from 'viem';\nimport { BaseClient } from '@aastar/core';\nimport { registryActions, sbtActions, xPNTsFactoryActions, reputationActions, tokenActions } from '@aastar/core';\n/**\n * Client for Community Managers (`ROLE_COMMUNITY`)\n */\nexport class CommunityClient extends BaseClient {\n sbtAddress;\n factoryAddress;\n reputationAddress;\n constructor(config) {\n super(config);\n this.sbtAddress = config.sbtAddress;\n this.factoryAddress = config.factoryAddress;\n this.reputationAddress = config.reputationAddress;\n }\n // ========================================\n // 1. 社区创建与配置\n // ========================================\n /**\n * Create a new Community Token (xPNTs) and register it.\n * Note: In the current architecture, creating a community often involves:\n * 1. Registering the ROLE_COMMUNITY on Registry (if not exists) -> usually manual or self-register\n * 2. Deploying a Token (xPNTs) via Factory\n * 3. Linking the Token to the Community in Registry\n */\n async createCommunityToken(params, options) {\n try {\n if (!this.factoryAddress) {\n throw new Error('Factory address required for this client');\n }\n const factory = xPNTsFactoryActions(this.factoryAddress);\n // 1. Deploy Token\n // Note: The address calculation should be handled via event parsing or predictive deployment\n // For now, returning the transaction hash as per L1 pattern\n return await factory(this.client).createToken({\n name: params.name,\n symbol: params.tokenSymbol,\n community: this.getAddress(),\n account: options?.account\n });\n }\n catch (error) {\n // Error is likely already an AAStarError from L1, but we wrap it for context\n throw error;\n }\n }\n /**\n * Get Community Details (Decodes Role Metadata)\n * @param communityAddress - The address of the community manager (defaults to self)\n */\n async getCommunityInfo(communityAddress) {\n try {\n const target = communityAddress || this.getAddress();\n const registryAddr = this.requireRegistry();\n const registry = registryActions(registryAddr);\n const publicClient = this.getStartPublicClient();\n // 1. Get Role ID\n const API_ROLE_COMMUNITY = await registry(publicClient).ROLE_COMMUNITY();\n // 2. Fetch Metadata (Hex).\n // NOTE: in the deployed v5 Registry, `roleMetadata` is an INTERNAL mapping with no\n // public getter (the rich community profile — name/website/logo — is written on\n // registerRole but not readable on-chain). When the getter is absent the call\n // reverts; degrade gracefully to the on-chain-readable fields (stake) with an\n // empty profile rather than throwing, so callers can still resolve the community.\n let metadataHex;\n try {\n metadataHex = await registry(publicClient).roleMetadata({\n roleId: API_ROLE_COMMUNITY,\n user: target\n });\n }\n catch (err) {\n // Degrade ONLY on contract-level \"no getter / reverted\" errors — the deployed\n // v5 Registry genuinely lacks a public roleMetadata getter. Re-throw genuine\n // transport/RPC errors so a transient network failure is not silently masked as\n // \"no community profile\".\n const m = (err instanceof Error ? `${err.message} ${err.cause?.message ?? ''}` : String(err)).toLowerCase();\n const isContractGap = m.includes('revert') || m.includes('returned no data') ||\n m.includes('does not exist') || m.includes('is not a function') ||\n m.includes('no data was returned');\n if (!isContractGap)\n throw err;\n metadataHex = undefined;\n }\n if (!metadataHex || metadataHex === '0x') {\n let stakeAmount = 0n;\n try {\n stakeAmount = await registry(publicClient).roleStakes({ roleId: API_ROLE_COMMUNITY, user: target });\n }\n catch { /* stake unreadable too — leave 0 */ }\n return { name: '', ensName: '', website: '', description: '', logoURI: '', stakeAmount };\n }\n // 3. Decode\n // struct CommunityRoleData { string name; string ensName; string website; string description; string logoURI; uint256 stakeAmount; }\n let dataToDecode = metadataHex;\n // Check for common 'bytes' or 'tuple' wrapper offset (0x20)\n if (metadataHex.startsWith('0x0000000000000000000000000000000000000000000000000000000000000020')) {\n dataToDecode = `0x${metadataHex.slice(66)}`;\n }\n const { decodeAbiParameters, parseAbiParameters } = await import('viem');\n const [name, ensName, website, description, logoURI, stakeAmount] = decodeAbiParameters(parseAbiParameters('string, string, string, string, string, uint256'), dataToDecode);\n return {\n name,\n ensName,\n website,\n description,\n logoURI,\n stakeAmount\n };\n }\n catch (error) {\n throw error;\n }\n }\n /**\n * Register self as a Community Manager.\n * This method handles all necessary steps:\n * 1. Checks and approves GToken to GTokenStaking\n * 2. Encodes CommunityRoleData with provided parameters\n * 3. Calls registerRoleSelf on Registry\n *\n * @param params Community registration parameters\n * @param options Transaction options\n * @returns Transaction hash\n */\n async registerAsCommunity(params, options) {\n try {\n const registryAddr = this.requireRegistry();\n const registry = registryActions(registryAddr);\n const gTokenStakingAddr = this.requireGTokenStaking();\n const gTokenAddr = this.requireGToken();\n // 1. Get ROLE_COMMUNITY\n const roleCommunity = await registry(this.getStartPublicClient()).ROLE_COMMUNITY();\n // 2. Prepare stake amount (default 30 GToken as per Registry config)\n const stakeAmount = params.stakeAmount || parseEther('30');\n // 3. Check and approve GToken to GTokenStaking if needed\n const gToken = tokenActions();\n const allowance = await gToken(this.getStartPublicClient()).allowance({\n token: gTokenAddr,\n owner: this.getAddress(),\n spender: gTokenStakingAddr\n });\n if (allowance < stakeAmount) {\n const approveHash = await gToken(this.client).approve({\n token: gTokenAddr,\n spender: gTokenStakingAddr,\n amount: stakeAmount * BigInt(2), // Approve 2x for future use\n account: options?.account\n });\n await this.getStartPublicClient().waitForTransactionReceipt({ hash: approveHash });\n }\n // 4. Encode CommunityRoleData\n // struct CommunityRoleData { string name; string ensName; string website; string description; string logoURI; uint256 stakeAmount; }\n const communityData = encodeAbiParameters(parseAbiParameters('string, string, string, string, string, uint256'), [\n params.name,\n params.ensName || '',\n params.website || '',\n params.description || `${params.name} Community`,\n params.logoURI || '',\n stakeAmount\n ]);\n // 5. Register role\n return await registry(this.client).registerRoleSelf({\n roleId: roleCommunity,\n data: communityData,\n account: options?.account\n });\n }\n catch (error) {\n throw error;\n }\n }\n /**\n * One-click Setup: Register Community + Deploy Token\n * Orchestrates the complete community initialization flow.\n */\n async setupCommunity(params, options) {\n const hashes = [];\n let tokenAddress = '0x0000000000000000000000000000000000000000';\n // 1. Register as Community (Idempotent check handled inside or by registry)\n // We should check hasRole first to avoid errors if already registered\n const registry = registryActions(this.requireRegistry())(this.getStartPublicClient());\n const ROLE_COMMUNITY = await registry.ROLE_COMMUNITY();\n const hasRole = await registry.hasRole({ roleId: ROLE_COMMUNITY, user: this.getAddress() });\n if (!hasRole) {\n const hReg = await this.registerAsCommunity({\n name: params.name,\n ensName: params.website, // Mapping website to ENS param for now as per legacy behavior\n website: params.website,\n description: params.description,\n logoURI: params.logoURI,\n stakeAmount: params.stakeAmount\n }, options);\n hashes.push(hReg);\n // Critical: Factory requires caller to be registered in Registry.\n // We must wait for the registration to be mined.\n await this.getStartPublicClient().waitForTransactionReceipt({ hash: hReg });\n }\n // 2. Deploy Token (Idempotent check via Factory)\n if (this.factoryAddress) {\n const factoryReader = xPNTsFactoryActions(this.factoryAddress)(this.getStartPublicClient());\n const existingToken = await factoryReader.getTokenAddress({ community: this.getAddress() });\n if (existingToken && existingToken !== '0x0000000000000000000000000000000000000000') {\n tokenAddress = existingToken;\n }\n else {\n const hToken = await this.createCommunityToken({\n name: params.tokenName,\n tokenSymbol: params.tokenSymbol,\n description: params.description\n }, options);\n hashes.push(hToken);\n // Critical: Wait for token deployment to fetch the address\n await this.getStartPublicClient().waitForTransactionReceipt({ hash: hToken });\n // Fetch the actual address (with retries for latency)\n for (let i = 0; i < 5; i++) {\n tokenAddress = await factoryReader.getTokenAddress({ community: this.getAddress() });\n if (tokenAddress && tokenAddress !== '0x0000000000000000000000000000000000000000')\n break;\n await new Promise(r => setTimeout(r, 2000));\n }\n if (!tokenAddress || tokenAddress === '0x0000000000000000000000000000000000000000') {\n console.warn(`Warning: Token address not found after 10s. Factory might be slow indexing.`);\n }\n }\n }\n return { tokenAddress, hashes };\n }\n // ========================================\n // 2. 成员管理\n // ========================================\n /**\n * Airdrop SBTs to users to make them members\n */\n async airdropSBT(users, roleId, options) {\n try {\n if (!this.sbtAddress)\n throw new Error('SBT address required for this client');\n const sbt = sbtActions(this.sbtAddress);\n if (users.length === 1) {\n // Convert roleId to Hex (bytes32)\n const roleIdHex = `0x${roleId.toString(16).padStart(64, '0')}`;\n return await sbt(this.client).mintForRole({\n user: users[0],\n roleId: roleIdHex,\n roleData: '0x',\n account: options?.account\n });\n }\n throw new Error('Batch airdrop not fully implemented in L1 yet, use single user');\n }\n catch (error) {\n throw error;\n }\n }\n // ========================================\n // 3. 信誉系统\n // ========================================\n async setReputationRule(ruleId, ruleConfig, options) {\n try {\n if (!this.reputationAddress)\n throw new Error('Reputation address required for this client');\n const reputation = reputationActions(this.reputationAddress);\n const ruleIdHex = `0x${ruleId.toString(16).padStart(64, '0')}`;\n return await reputation(this.client).setReputationRule({\n ruleId: ruleIdHex,\n rule: ruleConfig,\n account: options?.account\n });\n }\n catch (error) {\n throw error;\n }\n }\n // ========================================\n // 4. 管理功能\n // ========================================\n /**\n * Revoke membership (Burn SBT)\n */\n async revokeMembership(userAddr, options) {\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.client).burnSBT({\n user: userAddr,\n account: options?.account\n });\n }\n catch (error) {\n throw error;\n }\n }\n /**\n * Transfer ownership of the Community Token\n */\n async transferCommunityTokenOwnership(tokenAddress, newOwner, options) {\n try {\n const token = tokenActions()(this.client);\n return await token.transferOwnership({\n token: tokenAddress,\n newOwner,\n account: options?.account\n });\n }\n catch (error) {\n throw error;\n }\n }\n}\n","import { parseEther } from 'viem';\nimport { BaseClient } from '@aastar/core';\nimport { registryActions } from '@aastar/core'; // L2/L1 Actions\n/**\n * UserLifecycle - L3 Pattern\n *\n * Responsibilities:\n * 1. Managing the complete lifecycle of an End User (Onboard -> Operate -> Exit)\n * 2. Providing a unified interface for Gasless operations\n * 3. Abstracting underlying contract interactions via L2 Actions\n */\nexport class UserLifecycle extends BaseClient {\n accountAddress;\n registryAddress;\n sbtAddress;\n gTokenAddress;\n gTokenStakingAddress;\n entryPointAddress;\n gaslessConfig;\n config;\n constructor(config) {\n super(config);\n this.config = config;\n this.accountAddress = config.accountAddress;\n this.registryAddress = config.registryAddress;\n this.sbtAddress = config.sbtAddress;\n this.gTokenAddress = config.gTokenAddress;\n this.gTokenStakingAddress = config.gTokenStakingAddress;\n this.entryPointAddress = config.entryPointAddress;\n this.gaslessConfig = config.gasless;\n }\n // ===========================================\n // 1. Onboarding Phase (Registration)\n // ===========================================\n /**\n * Check if user is eligible to join a community\n * @param community Address of the community\n */\n async checkEligibility(community) {\n // Validation logic (e.g., check blacklist or whitelist via Registry)\n const publicClient = this.getStartPublicClient();\n const registry = registryActions(this.registryAddress)(publicClient);\n // Placeholder: simplistic check, real logic might involve community specific rules\n return true;\n }\n /**\n * One-click Onboarding: Approve -> Stake -> Register -> Mint SBT\n * @param community Address of the community to join\n * @param stakeAmount Amount of GToken to stake (default 0.4 GT)\n */\n async onboard(community, stakeAmount = parseEther('0.4')) {\n try {\n const registry = registryActions(this.registryAddress)(this.getStartPublicClient());\n const userClient = await import('./UserClient.js').then(m => new m.UserClient({\n ...this.config,\n accountAddress: this.accountAddress,\n registryAddress: this.registryAddress,\n gTokenStakingAddress: this.gTokenStakingAddress,\n gTokenAddress: this.gTokenAddress,\n sbtAddress: this.sbtAddress\n }));\n // Use UserClient's batch execution capability for atomic onboarding\n const txHash = await userClient.registerAsEndUser(community, stakeAmount);\n // Post-check: Verify role with retry\n let hasRole = false;\n for (let i = 0; i < 5; i++) {\n hasRole = await registry.hasRole({\n roleId: await registry.ROLE_ENDUSER(),\n user: this.accountAddress\n });\n if (hasRole)\n break;\n await new Promise(r => setTimeout(r, 2000));\n }\n return {\n success: hasRole,\n txHash\n };\n }\n catch (error) {\n console.error(\"Onboarding failed:\", error);\n return { success: false };\n }\n }\n /**\n * Enable or update Gasless configuration\n */\n async enableGasless(config) {\n this.gaslessConfig = config;\n // In future: verify paymaster connection here\n }\n // ===========================================\n // 2. Operational Phase (Execute & Interact)\n // ===========================================\n /**\n * Execute a transaction effectively using Gasless configuration if available\n */\n async executeGaslessTx(params) {\n if (!this.gaslessConfig) {\n throw new Error(\"Gasless configuration not enabled. Call enableGasless() first.\");\n }\n const userClient = await import('./UserClient.js').then(m => new m.UserClient({\n ...this.config,\n accountAddress: this.accountAddress,\n // Pass minimal config needed for execution\n entryPointAddress: this.entryPointAddress,\n bundlerClient: this.config.bundlerClient\n }));\n // Determine Paymaster Type based on policy\n const paymasterType = this.gaslessConfig.policy === 'CREDIT' ? 'Super' : 'V4';\n // Note: Real implementation needs to resolve actual Paymaster Address from Registry/Config\n // This is a placeholder address resolution\n const registry = registryActions(this.registryAddress)(this.client);\n const paymasterAddress = await registry.SUPER_PAYMASTER();\n return await userClient.executeGasless({\n target: params.target,\n value: params.value,\n data: params.data,\n paymaster: paymasterAddress,\n paymasterType,\n operator: params.operator\n });\n }\n async claimSBT(roleId, options) {\n const userClient = await import('./UserClient.js').then(m => new m.UserClient({\n ...this.config,\n accountAddress: this.accountAddress,\n sbtAddress: this.sbtAddress\n }));\n return await userClient.mintSBT(roleId, options);\n }\n // ===========================================\n // 3. Query Phase (Info & Stats)\n // ===========================================\n async getMyReputation() {\n const publicClient = this.getStartPublicClient();\n const registry = registryActions(this.registryAddress)(publicClient);\n const [score, creditLimit] = await Promise.all([\n registry.globalReputation({ user: this.accountAddress }),\n registry.getCreditLimit({ user: this.accountAddress })\n ]);\n return {\n score,\n level: 0n, // TODO: Add level calculation logic\n creditLimit\n };\n }\n async getCreditLimit() {\n const registry = registryActions(this.registryAddress)(this.client);\n return await registry.getCreditLimit({ user: this.accountAddress });\n }\n // ===========================================\n // 4. Exit Phase (Cleanup)\n // ===========================================\n async leaveCommunity(community, options) {\n const userClient = await import('./UserClient.js').then(m => new m.UserClient({\n ...this.config,\n accountAddress: this.accountAddress,\n sbtAddress: this.sbtAddress\n }));\n return await userClient.leaveCommunity(community, options);\n }\n async exitRole(roleId, options) {\n const userClient = await import('./UserClient.js').then(m => new m.UserClient({\n ...this.config,\n accountAddress: this.accountAddress,\n registryAddress: this.registryAddress\n }));\n return await userClient.exitRole(roleId, options);\n }\n async unstakeAll(roleId, options) {\n const userClient = await import('./UserClient.js').then(m => new m.UserClient({\n ...this.config,\n accountAddress: this.accountAddress,\n gTokenStakingAddress: this.gTokenStakingAddress\n }));\n return await userClient.unstakeFromRole(roleId, options);\n }\n}\n"]}
1
+ {"version":3,"sources":["../../enduser/dist/CommunityClient.js","../../enduser/dist/UserLifecycle.js"],"names":["stakeAmount","parseAbiParameters","parseEther"],"mappings":"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","file":"chunk-R2RATIK2.js","sourcesContent":["import { parseEther, encodeAbiParameters, parseAbiParameters } from 'viem';\nimport { BaseClient } from '@aastar/core';\nimport { registryActions, sbtActions, xPNTsFactoryActions, reputationActions, tokenActions } from '@aastar/core';\n/**\n * Client for Community Managers (`ROLE_COMMUNITY`)\n */\nexport class CommunityClient extends BaseClient {\n sbtAddress;\n factoryAddress;\n reputationAddress;\n constructor(config) {\n super(config);\n this.sbtAddress = config.sbtAddress;\n this.factoryAddress = config.factoryAddress;\n this.reputationAddress = config.reputationAddress;\n }\n // ========================================\n // 1. 社区创建与配置\n // ========================================\n /**\n * Create a new Community Token (xPNTs) and register it.\n * Note: In the current architecture, creating a community often involves:\n * 1. Registering the ROLE_COMMUNITY on Registry (if not exists) -> usually manual or self-register\n * 2. Deploying a Token (xPNTs) via Factory\n * 3. Linking the Token to the Community in Registry\n */\n async createCommunityToken(params, options) {\n try {\n if (!this.factoryAddress) {\n throw new Error('Factory address required for this client');\n }\n const factory = xPNTsFactoryActions(this.factoryAddress);\n // 1. Deploy Token\n // Note: The address calculation should be handled via event parsing or predictive deployment\n // For now, returning the transaction hash as per L1 pattern\n return await factory(this.client).createToken({\n name: params.name,\n symbol: params.tokenSymbol,\n community: this.getAddress(),\n account: options?.account\n });\n }\n catch (error) {\n // Error is likely already an AAStarError from L1, but we wrap it for context\n throw error;\n }\n }\n /**\n * Get Community Details (Decodes Role Metadata)\n * @param communityAddress - The address of the community manager (defaults to self)\n */\n async getCommunityInfo(communityAddress) {\n try {\n const target = communityAddress || this.getAddress();\n const registryAddr = this.requireRegistry();\n const registry = registryActions(registryAddr);\n const publicClient = this.getStartPublicClient();\n // 1. Get Role ID\n const API_ROLE_COMMUNITY = await registry(publicClient).ROLE_COMMUNITY();\n // 2. Fetch Metadata (Hex).\n // NOTE: in the deployed v5 Registry, `roleMetadata` is an INTERNAL mapping with no\n // public getter (the rich community profile — name/website/logo — is written on\n // registerRole but not readable on-chain). When the getter is absent the call\n // reverts; degrade gracefully to the on-chain-readable fields (stake) with an\n // empty profile rather than throwing, so callers can still resolve the community.\n let metadataHex;\n try {\n metadataHex = await registry(publicClient).roleMetadata({\n roleId: API_ROLE_COMMUNITY,\n user: target\n });\n }\n catch (err) {\n // Degrade ONLY on contract-level \"no getter / reverted\" errors — the deployed\n // v5 Registry genuinely lacks a public roleMetadata getter. Re-throw genuine\n // transport/RPC errors so a transient network failure is not silently masked as\n // \"no community profile\".\n const m = (err instanceof Error ? `${err.message} ${err.cause?.message ?? ''}` : String(err)).toLowerCase();\n const isContractGap = m.includes('revert') || m.includes('returned no data') ||\n m.includes('does not exist') || m.includes('is not a function') ||\n m.includes('no data was returned');\n if (!isContractGap)\n throw err;\n metadataHex = undefined;\n }\n if (!metadataHex || metadataHex === '0x') {\n let stakeAmount = 0n;\n try {\n stakeAmount = await registry(publicClient).roleStakes({ roleId: API_ROLE_COMMUNITY, user: target });\n }\n catch { /* stake unreadable too — leave 0 */ }\n return { name: '', ensName: '', website: '', description: '', logoURI: '', stakeAmount };\n }\n // 3. Decode\n // struct CommunityRoleData { string name; string ensName; string website; string description; string logoURI; uint256 stakeAmount; }\n let dataToDecode = metadataHex;\n // Check for common 'bytes' or 'tuple' wrapper offset (0x20)\n if (metadataHex.startsWith('0x0000000000000000000000000000000000000000000000000000000000000020')) {\n dataToDecode = `0x${metadataHex.slice(66)}`;\n }\n const { decodeAbiParameters, parseAbiParameters } = await import('viem');\n const [name, ensName, website, description, logoURI, stakeAmount] = decodeAbiParameters(parseAbiParameters('string, string, string, string, string, uint256'), dataToDecode);\n return {\n name,\n ensName,\n website,\n description,\n logoURI,\n stakeAmount\n };\n }\n catch (error) {\n throw error;\n }\n }\n /**\n * Register self as a Community Manager.\n * This method handles all necessary steps:\n * 1. Checks and approves GToken to GTokenStaking\n * 2. Encodes CommunityRoleData with provided parameters\n * 3. Calls registerRoleSelf on Registry\n *\n * @param params Community registration parameters\n * @param options Transaction options\n * @returns Transaction hash\n */\n async registerAsCommunity(params, options) {\n try {\n const registryAddr = this.requireRegistry();\n const registry = registryActions(registryAddr);\n const gTokenStakingAddr = this.requireGTokenStaking();\n const gTokenAddr = this.requireGToken();\n // 1. Get ROLE_COMMUNITY\n const roleCommunity = await registry(this.getStartPublicClient()).ROLE_COMMUNITY();\n // 2. Prepare stake amount (default 30 GToken as per Registry config)\n const stakeAmount = params.stakeAmount || parseEther('30');\n // 3. Check and approve GToken to GTokenStaking if needed\n const gToken = tokenActions();\n const allowance = await gToken(this.getStartPublicClient()).allowance({\n token: gTokenAddr,\n owner: this.getAddress(),\n spender: gTokenStakingAddr\n });\n if (allowance < stakeAmount) {\n const approveHash = await gToken(this.client).approve({\n token: gTokenAddr,\n spender: gTokenStakingAddr,\n amount: stakeAmount * BigInt(2), // Approve 2x for future use\n account: options?.account\n });\n await this.getStartPublicClient().waitForTransactionReceipt({ hash: approveHash });\n }\n // 4. Encode CommunityRoleData\n // struct CommunityRoleData { string name; string ensName; string website; string description; string logoURI; uint256 stakeAmount; }\n const communityData = encodeAbiParameters(parseAbiParameters('string, string, string, string, string, uint256'), [\n params.name,\n params.ensName || '',\n params.website || '',\n params.description || `${params.name} Community`,\n params.logoURI || '',\n stakeAmount\n ]);\n // 5. Register role\n return await registry(this.client).registerRoleSelf({\n roleId: roleCommunity,\n data: communityData,\n account: options?.account\n });\n }\n catch (error) {\n throw error;\n }\n }\n /**\n * One-click Setup: Register Community + Deploy Token\n * Orchestrates the complete community initialization flow.\n */\n async setupCommunity(params, options) {\n const hashes = [];\n let tokenAddress = '0x0000000000000000000000000000000000000000';\n // 1. Register as Community (Idempotent check handled inside or by registry)\n // We should check hasRole first to avoid errors if already registered\n const registry = registryActions(this.requireRegistry())(this.getStartPublicClient());\n const ROLE_COMMUNITY = await registry.ROLE_COMMUNITY();\n const hasRole = await registry.hasRole({ roleId: ROLE_COMMUNITY, user: this.getAddress() });\n if (!hasRole) {\n const hReg = await this.registerAsCommunity({\n name: params.name,\n ensName: params.website, // Mapping website to ENS param for now as per legacy behavior\n website: params.website,\n description: params.description,\n logoURI: params.logoURI,\n stakeAmount: params.stakeAmount\n }, options);\n hashes.push(hReg);\n // Critical: Factory requires caller to be registered in Registry.\n // We must wait for the registration to be mined.\n await this.getStartPublicClient().waitForTransactionReceipt({ hash: hReg });\n }\n // 2. Deploy Token (Idempotent check via Factory)\n if (this.factoryAddress) {\n const factoryReader = xPNTsFactoryActions(this.factoryAddress)(this.getStartPublicClient());\n const existingToken = await factoryReader.getTokenAddress({ community: this.getAddress() });\n if (existingToken && existingToken !== '0x0000000000000000000000000000000000000000') {\n tokenAddress = existingToken;\n }\n else {\n const hToken = await this.createCommunityToken({\n name: params.tokenName,\n tokenSymbol: params.tokenSymbol,\n description: params.description\n }, options);\n hashes.push(hToken);\n // Critical: Wait for token deployment to fetch the address\n await this.getStartPublicClient().waitForTransactionReceipt({ hash: hToken });\n // Fetch the actual address (with retries for latency)\n for (let i = 0; i < 5; i++) {\n tokenAddress = await factoryReader.getTokenAddress({ community: this.getAddress() });\n if (tokenAddress && tokenAddress !== '0x0000000000000000000000000000000000000000')\n break;\n await new Promise(r => setTimeout(r, 2000));\n }\n if (!tokenAddress || tokenAddress === '0x0000000000000000000000000000000000000000') {\n console.warn(`Warning: Token address not found after 10s. Factory might be slow indexing.`);\n }\n }\n }\n return { tokenAddress, hashes };\n }\n // ========================================\n // 2. 成员管理\n // ========================================\n /**\n * Airdrop SBTs to users to make them members\n */\n async airdropSBT(users, roleId, options) {\n try {\n if (!this.sbtAddress)\n throw new Error('SBT address required for this client');\n const sbt = sbtActions(this.sbtAddress);\n if (users.length === 1) {\n // Convert roleId to Hex (bytes32)\n const roleIdHex = `0x${roleId.toString(16).padStart(64, '0')}`;\n return await sbt(this.client).mintForRole({\n user: users[0],\n roleId: roleIdHex,\n roleData: '0x',\n account: options?.account\n });\n }\n throw new Error('Batch airdrop not fully implemented in L1 yet, use single user');\n }\n catch (error) {\n throw error;\n }\n }\n // ========================================\n // 3. 信誉系统\n // ========================================\n async setReputationRule(ruleId, ruleConfig, options) {\n try {\n if (!this.reputationAddress)\n throw new Error('Reputation address required for this client');\n const reputation = reputationActions(this.reputationAddress);\n const ruleIdHex = `0x${ruleId.toString(16).padStart(64, '0')}`;\n return await reputation(this.client).setReputationRule({\n ruleId: ruleIdHex,\n rule: ruleConfig,\n account: options?.account\n });\n }\n catch (error) {\n throw error;\n }\n }\n // ========================================\n // 4. 管理功能\n // ========================================\n /**\n * Revoke membership (Burn SBT)\n */\n async revokeMembership(userAddr, options) {\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.client).burnSBT({\n user: userAddr,\n account: options?.account\n });\n }\n catch (error) {\n throw error;\n }\n }\n /**\n * Transfer ownership of the Community Token\n */\n async transferCommunityTokenOwnership(tokenAddress, newOwner, options) {\n try {\n const token = tokenActions()(this.client);\n return await token.transferOwnership({\n token: tokenAddress,\n newOwner,\n account: options?.account\n });\n }\n catch (error) {\n throw error;\n }\n }\n}\n","import { parseEther } from 'viem';\nimport { BaseClient } from '@aastar/core';\nimport { registryActions } from '@aastar/core'; // L2/L1 Actions\n/**\n * UserLifecycle - L3 Pattern\n *\n * Responsibilities:\n * 1. Managing the complete lifecycle of an End User (Onboard -> Operate -> Exit)\n * 2. Providing a unified interface for Gasless operations\n * 3. Abstracting underlying contract interactions via L2 Actions\n */\nexport class UserLifecycle extends BaseClient {\n accountAddress;\n registryAddress;\n sbtAddress;\n gTokenAddress;\n gTokenStakingAddress;\n entryPointAddress;\n gaslessConfig;\n config;\n constructor(config) {\n super(config);\n this.config = config;\n this.accountAddress = config.accountAddress;\n this.registryAddress = config.registryAddress;\n this.sbtAddress = config.sbtAddress;\n this.gTokenAddress = config.gTokenAddress;\n this.gTokenStakingAddress = config.gTokenStakingAddress;\n this.entryPointAddress = config.entryPointAddress;\n this.gaslessConfig = config.gasless;\n }\n // ===========================================\n // 1. Onboarding Phase (Registration)\n // ===========================================\n /**\n * Check if user is eligible to join a community\n * @param community Address of the community\n */\n async checkEligibility(community) {\n // Validation logic (e.g., check blacklist or whitelist via Registry)\n const publicClient = this.getStartPublicClient();\n const registry = registryActions(this.registryAddress)(publicClient);\n // Placeholder: simplistic check, real logic might involve community specific rules\n return true;\n }\n /**\n * One-click Onboarding: Approve -> Stake -> Register -> Mint SBT\n * @param community Address of the community to join\n * @param stakeAmount Amount of GToken to stake (default 0.4 GT)\n */\n async onboard(community, stakeAmount = parseEther('0.4')) {\n try {\n const registry = registryActions(this.registryAddress)(this.getStartPublicClient());\n const userClient = await import('./UserClient.js').then(m => new m.UserClient({\n ...this.config,\n accountAddress: this.accountAddress,\n registryAddress: this.registryAddress,\n gTokenStakingAddress: this.gTokenStakingAddress,\n gTokenAddress: this.gTokenAddress,\n sbtAddress: this.sbtAddress\n }));\n // Use UserClient's batch execution capability for atomic onboarding\n const txHash = await userClient.registerAsEndUser(community, stakeAmount);\n // Post-check: Verify role with retry\n let hasRole = false;\n for (let i = 0; i < 5; i++) {\n hasRole = await registry.hasRole({\n roleId: await registry.ROLE_ENDUSER(),\n user: this.accountAddress\n });\n if (hasRole)\n break;\n await new Promise(r => setTimeout(r, 2000));\n }\n return {\n success: hasRole,\n txHash\n };\n }\n catch (error) {\n console.error(\"Onboarding failed:\", error);\n return { success: false };\n }\n }\n /**\n * Enable or update Gasless configuration\n */\n async enableGasless(config) {\n this.gaslessConfig = config;\n // In future: verify paymaster connection here\n }\n // ===========================================\n // 2. Operational Phase (Execute & Interact)\n // ===========================================\n /**\n * Execute a transaction effectively using Gasless configuration if available\n */\n async executeGaslessTx(params) {\n if (!this.gaslessConfig) {\n throw new Error(\"Gasless configuration not enabled. Call enableGasless() first.\");\n }\n const userClient = await import('./UserClient.js').then(m => new m.UserClient({\n ...this.config,\n accountAddress: this.accountAddress,\n // Pass minimal config needed for execution\n entryPointAddress: this.entryPointAddress,\n bundlerClient: this.config.bundlerClient\n }));\n // Determine Paymaster Type based on policy\n const paymasterType = this.gaslessConfig.policy === 'CREDIT' ? 'Super' : 'V4';\n // Note: Real implementation needs to resolve actual Paymaster Address from Registry/Config\n // This is a placeholder address resolution\n const registry = registryActions(this.registryAddress)(this.client);\n const paymasterAddress = await registry.SUPER_PAYMASTER();\n return await userClient.executeGasless({\n target: params.target,\n value: params.value,\n data: params.data,\n paymaster: paymasterAddress,\n paymasterType,\n operator: params.operator\n });\n }\n async claimSBT(roleId, options) {\n const userClient = await import('./UserClient.js').then(m => new m.UserClient({\n ...this.config,\n accountAddress: this.accountAddress,\n sbtAddress: this.sbtAddress\n }));\n return await userClient.mintSBT(roleId, options);\n }\n // ===========================================\n // 3. Query Phase (Info & Stats)\n // ===========================================\n async getMyReputation() {\n const publicClient = this.getStartPublicClient();\n const registry = registryActions(this.registryAddress)(publicClient);\n const [score, creditLimit] = await Promise.all([\n registry.globalReputation({ user: this.accountAddress }),\n registry.getCreditLimit({ user: this.accountAddress })\n ]);\n return {\n score,\n level: 0n, // TODO: Add level calculation logic\n creditLimit\n };\n }\n async getCreditLimit() {\n const registry = registryActions(this.registryAddress)(this.client);\n return await registry.getCreditLimit({ user: this.accountAddress });\n }\n // ===========================================\n // 4. Exit Phase (Cleanup)\n // ===========================================\n async leaveCommunity(community, options) {\n const userClient = await import('./UserClient.js').then(m => new m.UserClient({\n ...this.config,\n accountAddress: this.accountAddress,\n sbtAddress: this.sbtAddress\n }));\n return await userClient.leaveCommunity(community, options);\n }\n async exitRole(roleId, options) {\n const userClient = await import('./UserClient.js').then(m => new m.UserClient({\n ...this.config,\n accountAddress: this.accountAddress,\n registryAddress: this.registryAddress\n }));\n return await userClient.exitRole(roleId, options);\n }\n async unstakeAll(roleId, options) {\n const userClient = await import('./UserClient.js').then(m => new m.UserClient({\n ...this.config,\n accountAddress: this.accountAddress,\n gTokenStakingAddress: this.gTokenStakingAddress\n }));\n return await userClient.unstakeFromRole(roleId, options);\n }\n}\n"]}
@@ -1,4 +1,4 @@
1
- import { applyConfig, TEST_TOKEN_ADDRESSES, COMMUNITY_OWNERS, MONITORING_ADDRESSES, CORE_ADDRESSES, TOKEN_ADDRESSES, TEST_COMMUNITIES, OFFICIAL_ADDRESSES, PAYMASTER_ADDRESSES, TEST_ACCOUNT_ADDRESSES } from './chunk-DSZ372PH.js';
1
+ import { applyConfig, TEST_TOKEN_ADDRESSES, COMMUNITY_OWNERS, MONITORING_ADDRESSES, CORE_ADDRESSES, TOKEN_ADDRESSES, TEST_COMMUNITIES, OFFICIAL_ADDRESSES, PAYMASTER_ADDRESSES, TEST_ACCOUNT_ADDRESSES } from './chunk-ZJLIKMCA.js';
2
2
  import { createRequire } from 'module';
3
3
  import { keccak256, toHex, parseEther, parseAbi, createPublicClient, http, toBytes, decodeFunctionData, decodeAbiParameters, zeroAddress, erc20Abi, formatEther, encodeAbiParameters, parseAbiParameters, encodePacked, concat, numberToHex, isHex, size, isAddress, custom } from 'viem';
4
4
  import { sepolia, mainnet } from 'viem/chains';
@@ -41802,7 +41802,7 @@ var RequirementChecker = class {
41802
41802
  const missingRequirements = [];
41803
41803
  let hasRole = false;
41804
41804
  if (roleId) {
41805
- const { CORE_ADDRESSES: CORE_ADDRESSES2 } = await import('./contract-addresses-JE3X6DFY.js');
41805
+ const { CORE_ADDRESSES: CORE_ADDRESSES2 } = await import('./contract-addresses-VLAHHXOO.js');
41806
41806
  hasRole = await this.publicClient.readContract({
41807
41807
  address: this.addresses?.registry || CORE_ADDRESSES2.registry,
41808
41808
  abi: REGISTRY_ABI,
@@ -41815,7 +41815,7 @@ var RequirementChecker = class {
41815
41815
  }
41816
41816
  let hasEnoughGToken = true;
41817
41817
  if (requiredGToken > 0n) {
41818
- const { CORE_ADDRESSES: CORE_ADDRESSES2 } = await import('./contract-addresses-JE3X6DFY.js');
41818
+ const { CORE_ADDRESSES: CORE_ADDRESSES2 } = await import('./contract-addresses-VLAHHXOO.js');
41819
41819
  const gtokenBalance = await this.publicClient.readContract({
41820
41820
  address: this.addresses?.gtoken || CORE_ADDRESSES2.gToken,
41821
41821
  abi: ERC20_ABI,
@@ -41829,7 +41829,7 @@ var RequirementChecker = class {
41829
41829
  }
41830
41830
  let hasEnoughAPNTs = true;
41831
41831
  if (requiredAPNTs > 0n) {
41832
- const { CORE_ADDRESSES: CORE_ADDRESSES2 } = await import('./contract-addresses-JE3X6DFY.js');
41832
+ const { CORE_ADDRESSES: CORE_ADDRESSES2 } = await import('./contract-addresses-VLAHHXOO.js');
41833
41833
  const apntsBalance = await this.publicClient.readContract({
41834
41834
  address: this.addresses?.apnts || CORE_ADDRESSES2.aPNTs,
41835
41835
  abi: ERC20_ABI,
@@ -41843,7 +41843,7 @@ var RequirementChecker = class {
41843
41843
  }
41844
41844
  let hasSBT = false;
41845
41845
  if (requireSBT) {
41846
- const { CORE_ADDRESSES: CORE_ADDRESSES2 } = await import('./contract-addresses-JE3X6DFY.js');
41846
+ const { CORE_ADDRESSES: CORE_ADDRESSES2 } = await import('./contract-addresses-VLAHHXOO.js');
41847
41847
  const sbtBalance = await this.publicClient.readContract({
41848
41848
  address: this.addresses?.mysbt || CORE_ADDRESSES2.mySBT,
41849
41849
  abi: MYSBT_ABI,
@@ -41867,7 +41867,7 @@ var RequirementChecker = class {
41867
41867
  * Check GToken balance only (shortcut)
41868
41868
  */
41869
41869
  async checkGTokenBalance(address, required) {
41870
- const { CORE_ADDRESSES: CORE_ADDRESSES2 } = await import('./contract-addresses-JE3X6DFY.js');
41870
+ const { CORE_ADDRESSES: CORE_ADDRESSES2 } = await import('./contract-addresses-VLAHHXOO.js');
41871
41871
  const balance = await this.publicClient.readContract({
41872
41872
  address: this.addresses?.gtoken || CORE_ADDRESSES2.gToken,
41873
41873
  abi: ERC20_ABI,
@@ -41883,7 +41883,7 @@ var RequirementChecker = class {
41883
41883
  * Check aPNTs balance only (shortcut)
41884
41884
  */
41885
41885
  async checkAPNTsBalance(address, required) {
41886
- const { CORE_ADDRESSES: CORE_ADDRESSES2 } = await import('./contract-addresses-JE3X6DFY.js');
41886
+ const { CORE_ADDRESSES: CORE_ADDRESSES2 } = await import('./contract-addresses-VLAHHXOO.js');
41887
41887
  const balance = await this.publicClient.readContract({
41888
41888
  address: this.addresses?.apnts || CORE_ADDRESSES2.aPNTs,
41889
41889
  abi: ERC20_ABI,
@@ -41899,7 +41899,7 @@ var RequirementChecker = class {
41899
41899
  * Check if user has MySBT (shortcut)
41900
41900
  */
41901
41901
  async checkHasSBT(address) {
41902
- const { CORE_ADDRESSES: CORE_ADDRESSES2 } = await import('./contract-addresses-JE3X6DFY.js');
41902
+ const { CORE_ADDRESSES: CORE_ADDRESSES2 } = await import('./contract-addresses-VLAHHXOO.js');
41903
41903
  const balance = await this.publicClient.readContract({
41904
41904
  address: this.addresses?.mysbt || CORE_ADDRESSES2.mySBT,
41905
41905
  abi: MYSBT_ABI,
@@ -41912,7 +41912,7 @@ var RequirementChecker = class {
41912
41912
  * Check if user has specific role (shortcut)
41913
41913
  */
41914
41914
  async checkHasRole(roleId, address) {
41915
- const { CORE_ADDRESSES: CORE_ADDRESSES2 } = await import('./contract-addresses-JE3X6DFY.js');
41915
+ const { CORE_ADDRESSES: CORE_ADDRESSES2 } = await import('./contract-addresses-VLAHHXOO.js');
41916
41916
  return await this.publicClient.readContract({
41917
41917
  address: this.addresses?.registry || CORE_ADDRESSES2.registry,
41918
41918
  abi: REGISTRY_ABI,
@@ -41924,7 +41924,7 @@ var RequirementChecker = class {
41924
41924
  * Check a user's on-chain role stake (`getRoleStake(roleId, operator)`) (shortcut).
41925
41925
  */
41926
41926
  async checkRoleStake(roleId, address, required) {
41927
- const { CORE_ADDRESSES: CORE_ADDRESSES2 } = await import('./contract-addresses-JE3X6DFY.js');
41927
+ const { CORE_ADDRESSES: CORE_ADDRESSES2 } = await import('./contract-addresses-VLAHHXOO.js');
41928
41928
  const staked = await this.publicClient.readContract({
41929
41929
  address: this.addresses?.registry || CORE_ADDRESSES2.registry,
41930
41930
  abi: REGISTRY_ABI,
@@ -42087,5 +42087,5 @@ function makeMainnetClient(rpcUrl) {
42087
42087
  */
42088
42088
 
42089
42089
  export { AASTAR_COMMUNITY, AAStarAirAccountFactoryV7ABI, AAStarAirAccountFactoryV7Artifact, AAStarAirAccountV7ABI, AAStarAirAccountV7Artifact, AAStarBLSAggregatorABI, AAStarBLSAggregatorArtifact, AAStarBLSAlgorithmABI, AAStarBLSAlgorithmArtifact, AAStarValidatorABI, AAStarValidatorArtifact, ALL_ROLES, AgentRegistryABI, AgentRegistryArtifact, AirAccountDelegateABI, AirAccountDelegateArtifact, AirAccountExtensionABI, AirAccountExtensionArtifact, AuthorizationState, BLSAggregatorABI, BLSAggregatorArtifact, BLSHelpers, BLSSigner, BLSValidatorABI, BLSValidatorArtifact, BLS_POP_DST, BRANDING, BREAD_COMMUNITY, BaseClient, BundlerClient, COMMUNITIES, CONTRACTS, CONTRACT_METADATA, CalldataParserRegistryABI, CalldataParserRegistryArtifact, ContractConfigManager, DEFAULT_ADMIN_ROLE, DVTValidatorABI, DVTValidatorArtifact, DVT_TIER_T2, DVT_TIER_T3, EntryPointABI, EntryPointArtifact, EntryPointVersion, ForceExitModuleABI, ForceExitModuleArtifact, GTokenABI, GTokenArtifact, GTokenAuthorizationABI, GTokenAuthorizationArtifact, GTokenStakingABI, GTokenStakingArtifact, INITIAL_ROLE_STAKES, LINKS, MicroPaymentChannelABI, MicroPaymentChannelArtifact, MySBTABI, MySBTArtifact, NETWORKS, NodeType, PaymasterABI, PaymasterArtifact, PaymasterFactoryABI, PaymasterFactoryArtifact, PolicyDecision, PolicyRegistryABI, PolicyRegistryArtifact, ROLE_ANODE, ROLE_COMMUNITY, ROLE_DVT, ROLE_ENDUSER, ROLE_KMS, ROLE_NAMES, ROLE_PAYMASTER_AOA, ROLE_PAYMASTER_SUPER, ROLE_PERMISSION_LEVELS, RegistryABI, RegistryArtifact, ReputationSystemABI, ReputationSystemArtifact, RequirementChecker, RolePermissionLevel, SEPOLIA_CONTRACTS, SEPOLIA_V2_VERSIONS, SepoliaFaucetAPI, SessionKeyValidatorABI, SessionKeyValidatorArtifact, SimpleAccountABI, SimpleAccountArtifact, SimpleAccountFactoryABI, SimpleAccountFactoryArtifact, StateValidator, SuperPaymasterABI, SuperPaymasterArtifact, V2_SUMMARY, X402FacilitatorABI, X402FacilitatorArtifact, accountActions, accountFactoryActions, agentActions, agentRegistryActions, aggregatorActions, airAccountActions, airAccountFactoryActions, blsAlgorithmActions, channelActions, createAAStarPublicClient, createHeliosTransport, dvtActions, encodeDVTAccountSignature, encodeDVTVerifierProof, encodeG2Point, entryPointActions, forceExitActions, gTokenActions, gTokenAuthorizationActions, getAddressUrl, getAllCommunityConfigs, getAllV2Contracts, getBlockExplorer, getChainId, getCommunities, getCommunity, getCommunityConfig, getContract, getContractNetworks, getContracts, getCoreContracts, getDeploymentDate, getEntryPoint, getNetwork, getPaymasterV4_1, getRoleName, getRpcUrl, getSimpleAccountFactory, getSuperPaymasterV2, getTestAccounts, getTestTokenContracts, getTokenContracts, getTxUrl, getV2ContractByAddress, getV2ContractByName, getV2ContractsByDate, hashToFieldU0U1, isContractNetworkSupported, isRegisteredCommunity, isV2Contract, lookupAddress, paymasterActions, paymasterFactoryActions, policyRegistryActions, registryActions, reputationActions, resolveEns, resolveEnsVerified, sbtActions, sessionKeyValidatorActions, stakingActions, superPaymasterActions, tokenActions, x402Actions, x402IsNonceUsed, x402NonceKey, xPNTsFactoryABI, xPNTsFactoryActions, xPNTsFactoryArtifact, xPNTsTokenABI, xPNTsTokenActions, xPNTsTokenArtifact };
42090
- //# sourceMappingURL=chunk-ZSSNU3UF.js.map
42091
- //# sourceMappingURL=chunk-ZSSNU3UF.js.map
42090
+ //# sourceMappingURL=chunk-TBDMSJVL.js.map
42091
+ //# sourceMappingURL=chunk-TBDMSJVL.js.map