@p2pdotme/sdk 1.1.7 → 1.1.9
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/dist/country.cjs +18 -1
- package/dist/country.cjs.map +1 -1
- package/dist/country.d.cts +5 -1
- package/dist/country.d.ts +5 -1
- package/dist/country.mjs +17 -1
- package/dist/country.mjs.map +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.mjs +1 -1
- package/dist/orders.cjs +197 -82
- package/dist/orders.cjs.map +1 -1
- package/dist/orders.mjs +176 -61
- package/dist/orders.mjs.map +1 -1
- package/dist/prices.cjs +172 -57
- package/dist/prices.cjs.map +1 -1
- package/dist/prices.mjs +170 -55
- package/dist/prices.mjs.map +1 -1
- package/dist/profile.cjs +184 -69
- package/dist/profile.cjs.map +1 -1
- package/dist/profile.mjs +176 -61
- package/dist/profile.mjs.map +1 -1
- package/dist/qr-parsers.cjs.map +1 -1
- package/dist/qr-parsers.mjs.map +1 -1
- package/dist/react.cjs +545 -100
- package/dist/react.cjs.map +1 -1
- package/dist/react.d.cts +131 -1
- package/dist/react.d.ts +131 -1
- package/dist/react.mjs +511 -67
- package/dist/react.mjs.map +1 -1
- package/dist/stake.cjs +1212 -0
- package/dist/stake.cjs.map +1 -0
- package/dist/stake.d.cts +191 -0
- package/dist/stake.d.ts +191 -0
- package/dist/stake.mjs +1184 -0
- package/dist/stake.mjs.map +1 -0
- package/dist/zkkyc.cjs +95 -2
- package/dist/zkkyc.cjs.map +1 -1
- package/dist/zkkyc.mjs +95 -2
- package/dist/zkkyc.mjs.map +1 -1
- package/package.json +7 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/contracts/p2p-stake/index.ts","../src/validation/errors.validation.ts","../src/validation/schemas.validation.ts","../src/country/currency.ts","../src/stake/errors.ts","../src/stake/validation.ts","../src/contracts/abis/index.ts","../src/contracts/abis/order-flow-facet.ts","../src/contracts/abis/order-processor-facet.ts","../src/contracts/abis/p2p-config-facet.ts","../src/contracts/abis/p2p-stake-boost-facet.ts","../src/contracts/abis/reputation-manager.ts","../src/stake/actions/claim-unstake.ts","../src/stake/tx.ts","../src/stake/actions/request-unstake.ts","../src/stake/actions/stake.ts","../src/stake/actions/top-up.ts","../src/stake/normalize.ts","../src/stake/client.ts"],"sourcesContent":["import { ResultAsync } from \"neverthrow\";\nimport { type Address, stringToHex } from \"viem\";\nimport { StakeError } from \"../../stake/errors\";\nimport type { RawStakeBoostGlobals, RawUserStake, StakeBoostConfig } from \"../../stake/types\";\nimport type {\n\tGetP2pTokenBalanceParams,\n\tGetStakeBoostConfigParams,\n\tGetUserStakeParams,\n} from \"../../stake/validation\";\nimport {\n\tZodGetP2pTokenBalanceParamsSchema,\n\tZodGetStakeBoostConfigParamsSchema,\n\tZodGetUserStakeParamsSchema,\n} from \"../../stake/validation\";\nimport type { PublicClientLike } from \"../../types\";\nimport { validate } from \"../../validation\";\nimport { ABIS } from \"../abis\";\n\n/**\n * Reads the on-chain stake record for a user — `stakedAmount`, `cooldownEnd`,\n * and `status` from the P2P stake boost facet.\n */\nexport function getUserStake(\n\tpublicClient: PublicClientLike,\n\tdiamondAddress: Address,\n\tparams: GetUserStakeParams,\n): ResultAsync<RawUserStake, StakeError> {\n\treturn validate(\n\t\tZodGetUserStakeParamsSchema,\n\t\tparams,\n\t\t(message, cause, data) =>\n\t\t\tnew StakeError(message, {\n\t\t\t\tcode: \"VALIDATION_ERROR\",\n\t\t\t\tcause,\n\t\t\t\tcontext: { params: data },\n\t\t\t}),\n\t).asyncAndThen((validated) =>\n\t\tResultAsync.fromPromise(\n\t\t\tpublicClient.readContract({\n\t\t\t\taddress: diamondAddress,\n\t\t\t\tabi: ABIS.FACETS.STAKE,\n\t\t\t\tfunctionName: \"getUserStake\",\n\t\t\t\targs: [validated.user],\n\t\t\t}) as Promise<RawUserStake>,\n\t\t\t(error) =>\n\t\t\t\tnew StakeError(\"Failed to read user stake\", {\n\t\t\t\t\tcode: \"CONTRACT_READ_ERROR\",\n\t\t\t\t\tcause: error,\n\t\t\t\t\tcontext: { user: validated.user, diamondAddress },\n\t\t\t\t}),\n\t\t),\n\t);\n}\n\n/**\n * Reads the per-currency stake boost config — tokens-per-USD ratio and the\n * maximum USD boost a stake can unlock.\n */\nexport function getStakeBoostConfig(\n\tpublicClient: PublicClientLike,\n\tdiamondAddress: Address,\n\tparams: GetStakeBoostConfigParams,\n): ResultAsync<StakeBoostConfig, StakeError> {\n\treturn validate(\n\t\tZodGetStakeBoostConfigParamsSchema,\n\t\tparams,\n\t\t(message, cause, data) =>\n\t\t\tnew StakeError(message, {\n\t\t\t\tcode: \"VALIDATION_ERROR\",\n\t\t\t\tcause,\n\t\t\t\tcontext: { params: data },\n\t\t\t}),\n\t).asyncAndThen((validated) =>\n\t\tResultAsync.fromPromise(\n\t\t\tpublicClient.readContract({\n\t\t\t\taddress: diamondAddress,\n\t\t\t\tabi: ABIS.FACETS.STAKE,\n\t\t\t\tfunctionName: \"getStakeBoostConfig\",\n\t\t\t\targs: [stringToHex(validated.currency, { size: 32 })],\n\t\t\t}) as Promise<StakeBoostConfig>,\n\t\t\t(error) =>\n\t\t\t\tnew StakeError(\"Failed to read stake boost config\", {\n\t\t\t\t\tcode: \"CONTRACT_READ_ERROR\",\n\t\t\t\t\tcause: error,\n\t\t\t\t\tcontext: { currency: validated.currency, diamondAddress },\n\t\t\t\t}),\n\t\t),\n\t);\n}\n\n/**\n * Reads the global stake boost configuration — p2p token address, fraud reserve,\n * cooldown durations, token decimals, and total staked across all users.\n */\nexport function getStakeBoostGlobals(\n\tpublicClient: PublicClientLike,\n\tdiamondAddress: Address,\n): ResultAsync<RawStakeBoostGlobals, StakeError> {\n\treturn ResultAsync.fromPromise(\n\t\tpublicClient.readContract({\n\t\t\taddress: diamondAddress,\n\t\t\tabi: ABIS.FACETS.STAKE,\n\t\t\tfunctionName: \"getStakeBoostGlobals\",\n\t\t\targs: [],\n\t\t}) as Promise<RawStakeBoostGlobals>,\n\t\t(error) =>\n\t\t\tnew StakeError(\"Failed to read stake boost globals\", {\n\t\t\t\tcode: \"CONTRACT_READ_ERROR\",\n\t\t\t\tcause: error,\n\t\t\t\tcontext: { diamondAddress },\n\t\t\t}),\n\t);\n}\n\n/** Reads the P2P token (ERC20) balance for a given address. */\nexport function getP2pTokenBalance(\n\tpublicClient: PublicClientLike,\n\tp2pTokenAddress: Address,\n\tparams: GetP2pTokenBalanceParams,\n): ResultAsync<bigint, StakeError> {\n\treturn validate(\n\t\tZodGetP2pTokenBalanceParamsSchema,\n\t\tparams,\n\t\t(message, cause, data) =>\n\t\t\tnew StakeError(message, {\n\t\t\t\tcode: \"VALIDATION_ERROR\",\n\t\t\t\tcause,\n\t\t\t\tcontext: { params: data },\n\t\t\t}),\n\t).asyncAndThen((validated) =>\n\t\tResultAsync.fromPromise(\n\t\t\tpublicClient.readContract({\n\t\t\t\taddress: p2pTokenAddress,\n\t\t\t\tabi: ABIS.EXTERNAL.USDC,\n\t\t\t\tfunctionName: \"balanceOf\",\n\t\t\t\targs: [validated.address],\n\t\t\t}) as Promise<bigint>,\n\t\t\t(error) =>\n\t\t\t\tnew StakeError(\"Failed to read P2P token balance\", {\n\t\t\t\t\tcode: \"CONTRACT_READ_ERROR\",\n\t\t\t\t\tcause: error,\n\t\t\t\t\tcontext: { address: validated.address, p2pTokenAddress },\n\t\t\t\t}),\n\t\t),\n\t);\n}\n","export class SdkError<TCode extends string = string> extends Error {\n\treadonly code: TCode;\n\treadonly cause?: unknown;\n\treadonly context?: Record<string, unknown>;\n\n\tconstructor(\n\t\tmessage: string,\n\t\toptions: {\n\t\t\tcode: TCode;\n\t\t\tcause?: unknown;\n\t\t\tcontext?: Record<string, unknown>;\n\t\t},\n\t) {\n\t\tsuper(message);\n\t\tthis.name = \"SdkError\";\n\t\tthis.code = options.code;\n\t\tthis.cause = options.cause;\n\t\tthis.context = options.context;\n\t}\n}\n","import { err, ok, type Result } from \"neverthrow\";\nimport { isAddress } from \"viem\";\nimport { z } from \"zod\";\nimport { CURRENCY_CODES } from \"../country/currency\";\n\nexport const ZodAddressSchema = z\n\t.string()\n\t.refine((s) => isAddress(s), { message: \"Invalid Ethereum address\" });\n\nexport const ZodCurrencySchema = z.enum(CURRENCY_CODES);\n\nexport function validate<S extends z.ZodType, E>(\n\tschema: S,\n\tdata: unknown,\n\ttoError: (message: string, cause: unknown, data: unknown) => E,\n): Result<z.infer<S>, E> {\n\tconst result = schema.safeParse(data);\n\tif (result.success) {\n\t\treturn ok(result.data as z.infer<S>);\n\t}\n\treturn err(toError(z.prettifyError(result.error), result.error, data));\n}\n","/**\n * All supported currency symbols. Single source of truth for the SDK.\n *\n * Lives alongside the country metadata so that adding a currency is a\n * single-folder operation: drop a new file in `currencies/<code>.ts`, add it\n * to this map, and both `COUNTRY_OPTIONS` and `ZodCurrencySchema` pick it up.\n */\nexport const CURRENCY = {\n\tIDR: \"IDR\",\n\tINR: \"INR\",\n\tBRL: \"BRL\",\n\tARS: \"ARS\",\n\tMEX: \"MEX\",\n\tVEN: \"VEN\",\n\tEUR: \"EUR\",\n\tNGN: \"NGN\",\n\tUSD: \"USD\",\n\tCOP: \"COP\",\n} as const;\n\n/** Union of supported currency codes. */\nexport type CurrencyCode = (typeof CURRENCY)[keyof typeof CURRENCY];\n\n/**\n * Tuple form of the currency codes — used by `z.enum(...)` in the shared\n * validation layer. Narrow tuple type required by Zod.\n */\nexport const CURRENCY_CODES = Object.values(CURRENCY) as [CurrencyCode, ...CurrencyCode[]];\n","import { SdkError } from \"../validation\";\n\nexport type StakeErrorCode =\n\t| \"VALIDATION_ERROR\"\n\t| \"CONTRACT_READ_ERROR\"\n\t| \"TX_SUBMISSION_FAILED\"\n\t| \"RECEIPT_TIMEOUT\"\n\t| \"TX_REVERTED\";\n\nexport class StakeError extends SdkError<StakeErrorCode> {\n\tconstructor(\n\t\tmessage: string,\n\t\toptions: {\n\t\t\tcode: StakeErrorCode;\n\t\t\tcause?: unknown;\n\t\t\tcontext?: Record<string, unknown>;\n\t\t},\n\t) {\n\t\tsuper(message, options);\n\t\tthis.name = \"StakeError\";\n\t}\n}\n","import { z } from \"zod\";\nimport { ZodAddressSchema, ZodCurrencySchema } from \"../validation\";\n\n// ── Read params ─────────────────────────────────────────────────────────\n\nexport const ZodGetUserStakeParamsSchema = z.object({\n\tuser: ZodAddressSchema,\n});\n\nexport type GetUserStakeParams = z.infer<typeof ZodGetUserStakeParamsSchema>;\n\nexport const ZodGetStakeBoostConfigParamsSchema = z.object({\n\tcurrency: ZodCurrencySchema,\n});\n\nexport type GetStakeBoostConfigParams = z.infer<typeof ZodGetStakeBoostConfigParamsSchema>;\n\nexport const ZodGetP2pTokenBalanceParamsSchema = z.object({\n\taddress: ZodAddressSchema,\n});\n\nexport type GetP2pTokenBalanceParams = z.infer<typeof ZodGetP2pTokenBalanceParamsSchema>;\n\n// ── Write params ────────────────────────────────────────────────────────\n\nexport const ZodStakeParamsSchema = z.object({\n\ttokens: z.bigint().positive(),\n});\nexport type StakeParams = z.infer<typeof ZodStakeParamsSchema>;\n\nexport const ZodTopUpParamsSchema = z.object({\n\ttokens: z.bigint().positive(),\n});\nexport type TopUpParams = z.infer<typeof ZodTopUpParamsSchema>;\n","import { erc20Abi } from \"viem\";\nimport { orderFlowFacetAbi } from \"./order-flow-facet\";\nimport { orderProcessorFacetAbi } from \"./order-processor-facet\";\nimport { p2pConfigFacetAbi } from \"./p2p-config-facet\";\nimport { p2pStakeBoostFacetAbi } from \"./p2p-stake-boost-facet\";\nimport { reputationManagerAbi } from \"./reputation-manager\";\n\nconst DIAMOND_ABI = [\n\t...orderFlowFacetAbi,\n\t...orderProcessorFacetAbi,\n\t...p2pConfigFacetAbi,\n\t...p2pStakeBoostFacetAbi,\n] as const;\n\nexport const ABIS = {\n\tDIAMOND: DIAMOND_ABI,\n\tFACETS: {\n\t\tORDER_FLOW: orderFlowFacetAbi,\n\t\tORDER_PROCESSOR: orderProcessorFacetAbi,\n\t\tCONFIG: p2pConfigFacetAbi,\n\t\tSTAKE: p2pStakeBoostFacetAbi,\n\t},\n\tEXTERNAL: {\n\t\tUSDC: erc20Abi,\n\t\tREPUTATION_MANAGER: reputationManagerAbi,\n\t},\n} as const;\n","export const orderFlowFacetAbi = [\n\t{\n\t\tinputs: [\n\t\t\t{ internalType: \"uint256\", name: \"circleId\", type: \"uint256\" },\n\t\t\t{ internalType: \"uint256\", name: \"assignUpto\", type: \"uint256\" },\n\t\t\t{ internalType: \"bytes32\", name: \"currency\", type: \"bytes32\" },\n\t\t\t{ internalType: \"address\", name: \"user\", type: \"address\" },\n\t\t\t{ internalType: \"uint256\", name: \"usdtAmount\", type: \"uint256\" },\n\t\t\t{ internalType: \"uint256\", name: \"fiatAmount\", type: \"uint256\" },\n\t\t\t{ internalType: \"int256\", name: \"orderType\", type: \"int256\" },\n\t\t\t{ internalType: \"uint256\", name: \"preferredPCConfigId\", type: \"uint256\" },\n\t\t],\n\t\tname: \"getAssignableMerchantsFromCircle\",\n\t\toutputs: [{ internalType: \"address[]\", name: \"\", type: \"address[]\" }],\n\t\tstateMutability: \"view\",\n\t\ttype: \"function\",\n\t},\n\t{\n\t\tinputs: [\n\t\t\t{ internalType: \"address\", name: \"_user\", type: \"address\" },\n\t\t\t{ internalType: \"bytes32\", name: \"_nativeCurrency\", type: \"bytes32\" },\n\t\t],\n\t\tname: \"userTxLimit\",\n\t\toutputs: [\n\t\t\t{ internalType: \"uint256\", name: \"\", type: \"uint256\" },\n\t\t\t{ internalType: \"uint256\", name: \"\", type: \"uint256\" },\n\t\t],\n\t\tstateMutability: \"view\",\n\t\ttype: \"function\",\n\t},\n\t{\n\t\tinputs: [\n\t\t\t{ internalType: \"string\", name: \"_pubKey\", type: \"string\" },\n\t\t\t{ internalType: \"uint256\", name: \"_amount\", type: \"uint256\" },\n\t\t\t{ internalType: \"address\", name: \"_recipientAddr\", type: \"address\" },\n\t\t\t{ internalType: \"uint8\", name: \"_orderType\", type: \"uint8\" },\n\t\t\t{ internalType: \"string\", name: \"_userUpi\", type: \"string\" },\n\t\t\t{ internalType: \"string\", name: \"_userPubKey\", type: \"string\" },\n\t\t\t{ internalType: \"bytes32\", name: \"_currency\", type: \"bytes32\" },\n\t\t\t{ internalType: \"uint256\", name: \"preferredPaymentChannelConfigId\", type: \"uint256\" },\n\t\t\t{ internalType: \"uint256\", name: \"_circleId\", type: \"uint256\" },\n\t\t\t{ internalType: \"uint256\", name: \"_fiatAmountLimit\", type: \"uint256\" },\n\t\t],\n\t\tname: \"placeOrder\",\n\t\toutputs: [],\n\t\tstateMutability: \"nonpayable\",\n\t\ttype: \"function\",\n\t},\n\t{\n\t\tinputs: [{ internalType: \"uint256\", name: \"_orderId\", type: \"uint256\" }],\n\t\tname: \"cancelOrder\",\n\t\toutputs: [],\n\t\tstateMutability: \"nonpayable\",\n\t\ttype: \"function\",\n\t},\n\t{\n\t\tinputs: [\n\t\t\t{ internalType: \"uint256\", name: \"_orderId\", type: \"uint256\" },\n\t\t\t{ internalType: \"string\", name: \"_userEncUpi\", type: \"string\" },\n\t\t\t{ internalType: \"uint256\", name: \"_updatedAmount\", type: \"uint256\" },\n\t\t],\n\t\tname: \"setSellOrderUpi\",\n\t\toutputs: [],\n\t\tstateMutability: \"nonpayable\",\n\t\ttype: \"function\",\n\t},\n\t{\n\t\ttype: \"event\",\n\t\tname: \"OrderPlaced\",\n\t\tanonymous: false,\n\t\tinputs: [\n\t\t\t{ indexed: true, name: \"orderId\", type: \"uint256\" },\n\t\t\t{ indexed: true, name: \"user\", type: \"address\" },\n\t\t\t{ indexed: true, name: \"merchant\", type: \"address\" },\n\t\t\t{ indexed: false, name: \"amount\", type: \"uint256\" },\n\t\t\t{ indexed: false, name: \"orderType\", type: \"uint8\" },\n\t\t\t{ indexed: false, name: \"placedTimestamp\", type: \"uint256\" },\n\t\t\t{\n\t\t\t\tindexed: false,\n\t\t\t\tname: \"_order\",\n\t\t\t\ttype: \"tuple\",\n\t\t\t\tcomponents: [\n\t\t\t\t\t{ name: \"amount\", type: \"uint256\" },\n\t\t\t\t\t{ name: \"fiatAmount\", type: \"uint256\" },\n\t\t\t\t\t{ name: \"placedTimestamp\", type: \"uint256\" },\n\t\t\t\t\t{ name: \"completedTimestamp\", type: \"uint256\" },\n\t\t\t\t\t{ name: \"userCompletedTimestamp\", type: \"uint256\" },\n\t\t\t\t\t{ name: \"acceptedMerchant\", type: \"address\" },\n\t\t\t\t\t{ name: \"user\", type: \"address\" },\n\t\t\t\t\t{ name: \"recipientAddr\", type: \"address\" },\n\t\t\t\t\t{ name: \"pubkey\", type: \"string\" },\n\t\t\t\t\t{ name: \"encUpi\", type: \"string\" },\n\t\t\t\t\t{ name: \"userCompleted\", type: \"bool\" },\n\t\t\t\t\t{ name: \"status\", type: \"uint8\" },\n\t\t\t\t\t{ name: \"orderType\", type: \"uint8\" },\n\t\t\t\t\t{\n\t\t\t\t\t\tname: \"disputeInfo\",\n\t\t\t\t\t\ttype: \"tuple\",\n\t\t\t\t\t\tcomponents: [\n\t\t\t\t\t\t\t{ name: \"raisedBy\", type: \"uint8\" },\n\t\t\t\t\t\t\t{ name: \"status\", type: \"uint8\" },\n\t\t\t\t\t\t\t{ name: \"redactTransId\", type: \"uint256\" },\n\t\t\t\t\t\t\t{ name: \"accountNumber\", type: \"uint256\" },\n\t\t\t\t\t\t],\n\t\t\t\t\t},\n\t\t\t\t\t{ name: \"id\", type: \"uint256\" },\n\t\t\t\t\t{ name: \"userPubKey\", type: \"string\" },\n\t\t\t\t\t{ name: \"encMerchantUpi\", type: \"string\" },\n\t\t\t\t\t{ name: \"acceptedAccountNo\", type: \"uint256\" },\n\t\t\t\t\t{ name: \"assignedAccountNos\", type: \"uint256[]\" },\n\t\t\t\t\t{ name: \"currency\", type: \"bytes32\" },\n\t\t\t\t\t{ name: \"preferredPaymentChannelConfigId\", type: \"uint256\" },\n\t\t\t\t\t{ name: \"circleId\", type: \"uint256\" },\n\t\t\t\t],\n\t\t\t},\n\t\t],\n\t},\n\t{\n\t\ttype: \"event\",\n\t\tname: \"OrderAccepted\",\n\t\tanonymous: false,\n\t\tinputs: [\n\t\t\t{ indexed: true, name: \"orderId\", type: \"uint256\" },\n\t\t\t{ indexed: true, name: \"merchant\", type: \"address\" },\n\t\t\t{ indexed: false, name: \"pubKey\", type: \"string\" },\n\t\t\t{\n\t\t\t\tindexed: false,\n\t\t\t\tname: \"_order\",\n\t\t\t\ttype: \"tuple\",\n\t\t\t\tcomponents: [\n\t\t\t\t\t{ name: \"amount\", type: \"uint256\" },\n\t\t\t\t\t{ name: \"fiatAmount\", type: \"uint256\" },\n\t\t\t\t\t{ name: \"placedTimestamp\", type: \"uint256\" },\n\t\t\t\t\t{ name: \"completedTimestamp\", type: \"uint256\" },\n\t\t\t\t\t{ name: \"userCompletedTimestamp\", type: \"uint256\" },\n\t\t\t\t\t{ name: \"acceptedMerchant\", type: \"address\" },\n\t\t\t\t\t{ name: \"user\", type: \"address\" },\n\t\t\t\t\t{ name: \"recipientAddr\", type: \"address\" },\n\t\t\t\t\t{ name: \"pubkey\", type: \"string\" },\n\t\t\t\t\t{ name: \"encUpi\", type: \"string\" },\n\t\t\t\t\t{ name: \"userCompleted\", type: \"bool\" },\n\t\t\t\t\t{ name: \"status\", type: \"uint8\" },\n\t\t\t\t\t{ name: \"orderType\", type: \"uint8\" },\n\t\t\t\t\t{\n\t\t\t\t\t\tname: \"disputeInfo\",\n\t\t\t\t\t\ttype: \"tuple\",\n\t\t\t\t\t\tcomponents: [\n\t\t\t\t\t\t\t{ name: \"raisedBy\", type: \"uint8\" },\n\t\t\t\t\t\t\t{ name: \"status\", type: \"uint8\" },\n\t\t\t\t\t\t\t{ name: \"redactTransId\", type: \"uint256\" },\n\t\t\t\t\t\t\t{ name: \"accountNumber\", type: \"uint256\" },\n\t\t\t\t\t\t],\n\t\t\t\t\t},\n\t\t\t\t\t{ name: \"id\", type: \"uint256\" },\n\t\t\t\t\t{ name: \"userPubKey\", type: \"string\" },\n\t\t\t\t\t{ name: \"encMerchantUpi\", type: \"string\" },\n\t\t\t\t\t{ name: \"acceptedAccountNo\", type: \"uint256\" },\n\t\t\t\t\t{ name: \"assignedAccountNos\", type: \"uint256[]\" },\n\t\t\t\t\t{ name: \"currency\", type: \"bytes32\" },\n\t\t\t\t\t{ name: \"preferredPaymentChannelConfigId\", type: \"uint256\" },\n\t\t\t\t\t{ name: \"circleId\", type: \"uint256\" },\n\t\t\t\t],\n\t\t\t},\n\t\t],\n\t},\n\t{\n\t\ttype: \"event\",\n\t\tname: \"BuyOrderPaid\",\n\t\tanonymous: false,\n\t\tinputs: [\n\t\t\t{ indexed: true, name: \"orderId\", type: \"uint256\" },\n\t\t\t{ indexed: true, name: \"user\", type: \"address\" },\n\t\t\t{\n\t\t\t\tindexed: false,\n\t\t\t\tname: \"_order\",\n\t\t\t\ttype: \"tuple\",\n\t\t\t\tcomponents: [\n\t\t\t\t\t{ name: \"amount\", type: \"uint256\" },\n\t\t\t\t\t{ name: \"fiatAmount\", type: \"uint256\" },\n\t\t\t\t\t{ name: \"placedTimestamp\", type: \"uint256\" },\n\t\t\t\t\t{ name: \"completedTimestamp\", type: \"uint256\" },\n\t\t\t\t\t{ name: \"userCompletedTimestamp\", type: \"uint256\" },\n\t\t\t\t\t{ name: \"acceptedMerchant\", type: \"address\" },\n\t\t\t\t\t{ name: \"user\", type: \"address\" },\n\t\t\t\t\t{ name: \"recipientAddr\", type: \"address\" },\n\t\t\t\t\t{ name: \"pubkey\", type: \"string\" },\n\t\t\t\t\t{ name: \"encUpi\", type: \"string\" },\n\t\t\t\t\t{ name: \"userCompleted\", type: \"bool\" },\n\t\t\t\t\t{ name: \"status\", type: \"uint8\" },\n\t\t\t\t\t{ name: \"orderType\", type: \"uint8\" },\n\t\t\t\t\t{\n\t\t\t\t\t\tname: \"disputeInfo\",\n\t\t\t\t\t\ttype: \"tuple\",\n\t\t\t\t\t\tcomponents: [\n\t\t\t\t\t\t\t{ name: \"raisedBy\", type: \"uint8\" },\n\t\t\t\t\t\t\t{ name: \"status\", type: \"uint8\" },\n\t\t\t\t\t\t\t{ name: \"redactTransId\", type: \"uint256\" },\n\t\t\t\t\t\t\t{ name: \"accountNumber\", type: \"uint256\" },\n\t\t\t\t\t\t],\n\t\t\t\t\t},\n\t\t\t\t\t{ name: \"id\", type: \"uint256\" },\n\t\t\t\t\t{ name: \"userPubKey\", type: \"string\" },\n\t\t\t\t\t{ name: \"encMerchantUpi\", type: \"string\" },\n\t\t\t\t\t{ name: \"acceptedAccountNo\", type: \"uint256\" },\n\t\t\t\t\t{ name: \"assignedAccountNos\", type: \"uint256[]\" },\n\t\t\t\t\t{ name: \"currency\", type: \"bytes32\" },\n\t\t\t\t\t{ name: \"preferredPaymentChannelConfigId\", type: \"uint256\" },\n\t\t\t\t\t{ name: \"circleId\", type: \"uint256\" },\n\t\t\t\t],\n\t\t\t},\n\t\t],\n\t},\n\t{\n\t\ttype: \"event\",\n\t\tname: \"OrderCompleted\",\n\t\tanonymous: false,\n\t\tinputs: [\n\t\t\t{ indexed: true, name: \"orderId\", type: \"uint256\" },\n\t\t\t{ indexed: true, name: \"user\", type: \"address\" },\n\t\t\t{ indexed: false, name: \"completedTimestamp\", type: \"uint256\" },\n\t\t\t{\n\t\t\t\tindexed: false,\n\t\t\t\tname: \"_order\",\n\t\t\t\ttype: \"tuple\",\n\t\t\t\tcomponents: [\n\t\t\t\t\t{ name: \"amount\", type: \"uint256\" },\n\t\t\t\t\t{ name: \"fiatAmount\", type: \"uint256\" },\n\t\t\t\t\t{ name: \"placedTimestamp\", type: \"uint256\" },\n\t\t\t\t\t{ name: \"completedTimestamp\", type: \"uint256\" },\n\t\t\t\t\t{ name: \"userCompletedTimestamp\", type: \"uint256\" },\n\t\t\t\t\t{ name: \"acceptedMerchant\", type: \"address\" },\n\t\t\t\t\t{ name: \"user\", type: \"address\" },\n\t\t\t\t\t{ name: \"recipientAddr\", type: \"address\" },\n\t\t\t\t\t{ name: \"pubkey\", type: \"string\" },\n\t\t\t\t\t{ name: \"encUpi\", type: \"string\" },\n\t\t\t\t\t{ name: \"userCompleted\", type: \"bool\" },\n\t\t\t\t\t{ name: \"status\", type: \"uint8\" },\n\t\t\t\t\t{ name: \"orderType\", type: \"uint8\" },\n\t\t\t\t\t{\n\t\t\t\t\t\tname: \"disputeInfo\",\n\t\t\t\t\t\ttype: \"tuple\",\n\t\t\t\t\t\tcomponents: [\n\t\t\t\t\t\t\t{ name: \"raisedBy\", type: \"uint8\" },\n\t\t\t\t\t\t\t{ name: \"status\", type: \"uint8\" },\n\t\t\t\t\t\t\t{ name: \"redactTransId\", type: \"uint256\" },\n\t\t\t\t\t\t\t{ name: \"accountNumber\", type: \"uint256\" },\n\t\t\t\t\t\t],\n\t\t\t\t\t},\n\t\t\t\t\t{ name: \"id\", type: \"uint256\" },\n\t\t\t\t\t{ name: \"userPubKey\", type: \"string\" },\n\t\t\t\t\t{ name: \"encMerchantUpi\", type: \"string\" },\n\t\t\t\t\t{ name: \"acceptedAccountNo\", type: \"uint256\" },\n\t\t\t\t\t{ name: \"assignedAccountNos\", type: \"uint256[]\" },\n\t\t\t\t\t{ name: \"currency\", type: \"bytes32\" },\n\t\t\t\t\t{ name: \"preferredPaymentChannelConfigId\", type: \"uint256\" },\n\t\t\t\t\t{ name: \"circleId\", type: \"uint256\" },\n\t\t\t\t],\n\t\t\t},\n\t\t],\n\t},\n\t{\n\t\ttype: \"event\",\n\t\tname: \"CancelledOrders\",\n\t\tanonymous: false,\n\t\tinputs: [\n\t\t\t{ indexed: true, name: \"orderId\", type: \"uint256\" },\n\t\t\t{\n\t\t\t\tindexed: false,\n\t\t\t\tname: \"_order\",\n\t\t\t\ttype: \"tuple\",\n\t\t\t\tcomponents: [\n\t\t\t\t\t{ name: \"amount\", type: \"uint256\" },\n\t\t\t\t\t{ name: \"fiatAmount\", type: \"uint256\" },\n\t\t\t\t\t{ name: \"placedTimestamp\", type: \"uint256\" },\n\t\t\t\t\t{ name: \"completedTimestamp\", type: \"uint256\" },\n\t\t\t\t\t{ name: \"userCompletedTimestamp\", type: \"uint256\" },\n\t\t\t\t\t{ name: \"acceptedMerchant\", type: \"address\" },\n\t\t\t\t\t{ name: \"user\", type: \"address\" },\n\t\t\t\t\t{ name: \"recipientAddr\", type: \"address\" },\n\t\t\t\t\t{ name: \"pubkey\", type: \"string\" },\n\t\t\t\t\t{ name: \"encUpi\", type: \"string\" },\n\t\t\t\t\t{ name: \"userCompleted\", type: \"bool\" },\n\t\t\t\t\t{ name: \"status\", type: \"uint8\" },\n\t\t\t\t\t{ name: \"orderType\", type: \"uint8\" },\n\t\t\t\t\t{\n\t\t\t\t\t\tname: \"disputeInfo\",\n\t\t\t\t\t\ttype: \"tuple\",\n\t\t\t\t\t\tcomponents: [\n\t\t\t\t\t\t\t{ name: \"raisedBy\", type: \"uint8\" },\n\t\t\t\t\t\t\t{ name: \"status\", type: \"uint8\" },\n\t\t\t\t\t\t\t{ name: \"redactTransId\", type: \"uint256\" },\n\t\t\t\t\t\t\t{ name: \"accountNumber\", type: \"uint256\" },\n\t\t\t\t\t\t],\n\t\t\t\t\t},\n\t\t\t\t\t{ name: \"id\", type: \"uint256\" },\n\t\t\t\t\t{ name: \"userPubKey\", type: \"string\" },\n\t\t\t\t\t{ name: \"encMerchantUpi\", type: \"string\" },\n\t\t\t\t\t{ name: \"acceptedAccountNo\", type: \"uint256\" },\n\t\t\t\t\t{ name: \"assignedAccountNos\", type: \"uint256[]\" },\n\t\t\t\t\t{ name: \"currency\", type: \"bytes32\" },\n\t\t\t\t\t{ name: \"preferredPaymentChannelConfigId\", type: \"uint256\" },\n\t\t\t\t\t{ name: \"circleId\", type: \"uint256\" },\n\t\t\t\t],\n\t\t\t},\n\t\t],\n\t},\n] as const;\n","/**\n * Minimal ABI fragments for reads on OrderProcessor storage via the Diamond.\n * `getOrdersById`, `getAdditionalOrderDetails`, and the per-currency small-order\n * fee config getters (`getSmallOrderThreshold`, `getSmallOrderFixedFee`).\n */\nexport const orderProcessorFacetAbi = [\n\t{\n\t\ttype: \"function\",\n\t\tname: \"getOrdersById\",\n\t\tstateMutability: \"view\",\n\t\tinputs: [{ name: \"orderId\", type: \"uint256\" }],\n\t\toutputs: [\n\t\t\t{\n\t\t\t\ttype: \"tuple\",\n\t\t\t\tcomponents: [\n\t\t\t\t\t{ name: \"amount\", type: \"uint256\" },\n\t\t\t\t\t{ name: \"fiatAmount\", type: \"uint256\" },\n\t\t\t\t\t{ name: \"placedTimestamp\", type: \"uint256\" },\n\t\t\t\t\t{ name: \"completedTimestamp\", type: \"uint256\" },\n\t\t\t\t\t{ name: \"userCompletedTimestamp\", type: \"uint256\" },\n\t\t\t\t\t{ name: \"acceptedMerchant\", type: \"address\" },\n\t\t\t\t\t{ name: \"user\", type: \"address\" },\n\t\t\t\t\t{ name: \"recipientAddr\", type: \"address\" },\n\t\t\t\t\t{ name: \"pubkey\", type: \"string\" },\n\t\t\t\t\t{ name: \"encUpi\", type: \"string\" },\n\t\t\t\t\t{ name: \"userCompleted\", type: \"bool\" },\n\t\t\t\t\t{ name: \"status\", type: \"uint8\" },\n\t\t\t\t\t{ name: \"orderType\", type: \"uint8\" },\n\t\t\t\t\t{\n\t\t\t\t\t\tname: \"disputeInfo\",\n\t\t\t\t\t\ttype: \"tuple\",\n\t\t\t\t\t\tcomponents: [\n\t\t\t\t\t\t\t{ name: \"raisedBy\", type: \"uint8\" },\n\t\t\t\t\t\t\t{ name: \"status\", type: \"uint8\" },\n\t\t\t\t\t\t\t{ name: \"redactTransId\", type: \"uint256\" },\n\t\t\t\t\t\t\t{ name: \"accountNumber\", type: \"uint256\" },\n\t\t\t\t\t\t],\n\t\t\t\t\t},\n\t\t\t\t\t{ name: \"id\", type: \"uint256\" },\n\t\t\t\t\t{ name: \"userPubKey\", type: \"string\" },\n\t\t\t\t\t{ name: \"encMerchantUpi\", type: \"string\" },\n\t\t\t\t\t{ name: \"acceptedAccountNo\", type: \"uint256\" },\n\t\t\t\t\t{ name: \"assignedAccountNos\", type: \"uint256[]\" },\n\t\t\t\t\t{ name: \"currency\", type: \"bytes32\" },\n\t\t\t\t\t{ name: \"preferredPaymentChannelConfigId\", type: \"uint256\" },\n\t\t\t\t\t{ name: \"circleId\", type: \"uint256\" },\n\t\t\t\t],\n\t\t\t},\n\t\t],\n\t},\n\t{\n\t\ttype: \"function\",\n\t\tname: \"getAdditionalOrderDetails\",\n\t\tstateMutability: \"view\",\n\t\tinputs: [{ name: \"orderId\", type: \"uint256\" }],\n\t\toutputs: [\n\t\t\t{\n\t\t\t\ttype: \"tuple\",\n\t\t\t\tcomponents: [\n\t\t\t\t\t{ name: \"fixedFeePaid\", type: \"uint64\" },\n\t\t\t\t\t{ name: \"tipsPaid\", type: \"uint64\" },\n\t\t\t\t\t{ name: \"acceptedTimestamp\", type: \"uint128\" },\n\t\t\t\t\t{ name: \"paidTimestamp\", type: \"uint128\" },\n\t\t\t\t\t{ name: \"reserved2\", type: \"uint128\" },\n\t\t\t\t\t{ name: \"actualUsdtAmount\", type: \"uint256\" },\n\t\t\t\t\t{ name: \"actualFiatAmount\", type: \"uint256\" },\n\t\t\t\t],\n\t\t\t},\n\t\t],\n\t},\n\t{\n\t\ttype: \"function\",\n\t\tname: \"getSmallOrderThreshold\",\n\t\tstateMutability: \"view\",\n\t\tinputs: [{ name: \"currency\", type: \"bytes32\" }],\n\t\toutputs: [{ name: \"\", type: \"uint256\" }],\n\t},\n\t{\n\t\ttype: \"function\",\n\t\tname: \"getSmallOrderFixedFee\",\n\t\tstateMutability: \"view\",\n\t\tinputs: [{ name: \"currency\", type: \"bytes32\" }],\n\t\toutputs: [{ name: \"\", type: \"uint256\" }],\n\t},\n\t{\n\t\ttype: \"function\",\n\t\tname: \"raiseDispute\",\n\t\tstateMutability: \"nonpayable\",\n\t\tinputs: [\n\t\t\t{ name: \"_orderId\", type: \"uint256\" },\n\t\t\t{ name: \"redactTransId\", type: \"uint256\" },\n\t\t],\n\t\toutputs: [],\n\t},\n\t{\n\t\ttype: \"function\",\n\t\tname: \"paidBuyOrder\",\n\t\tstateMutability: \"nonpayable\",\n\t\tinputs: [{ name: \"_orderId\", type: \"uint256\" }],\n\t\toutputs: [],\n\t},\n] as const;\n","export const p2pConfigFacetAbi = [\n\t{\n\t\tinputs: [\n\t\t\t{\n\t\t\t\tinternalType: \"bytes32\",\n\t\t\t\tname: \"_currency\",\n\t\t\t\ttype: \"bytes32\",\n\t\t\t},\n\t\t],\n\t\tname: \"getPriceConfig\",\n\t\toutputs: [\n\t\t\t{\n\t\t\t\tcomponents: [\n\t\t\t\t\t{\n\t\t\t\t\t\tinternalType: \"uint256\",\n\t\t\t\t\t\tname: \"buyPrice\",\n\t\t\t\t\t\ttype: \"uint256\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tinternalType: \"uint256\",\n\t\t\t\t\t\tname: \"sellPrice\",\n\t\t\t\t\t\ttype: \"uint256\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tinternalType: \"int256\",\n\t\t\t\t\t\tname: \"buyPriceOffset\",\n\t\t\t\t\t\ttype: \"int256\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tinternalType: \"uint256\",\n\t\t\t\t\t\tname: \"baseSpread\",\n\t\t\t\t\t\ttype: \"uint256\",\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\tinternalType: \"struct P2pConfigStorage.PriceConfig\",\n\t\t\t\tname: \"\",\n\t\t\t\ttype: \"tuple\",\n\t\t\t},\n\t\t],\n\t\tstateMutability: \"view\",\n\t\ttype: \"function\",\n\t},\n\t{\n\t\tinputs: [\n\t\t\t{\n\t\t\t\tinternalType: \"bytes32\",\n\t\t\t\tname: \"_nativeCurrency\",\n\t\t\t\ttype: \"bytes32\",\n\t\t\t},\n\t\t],\n\t\tname: \"getRpPerUsdtLimitRational\",\n\t\toutputs: [\n\t\t\t{\n\t\t\t\tinternalType: \"uint256\",\n\t\t\t\tname: \"numerator\",\n\t\t\t\ttype: \"uint256\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tinternalType: \"uint256\",\n\t\t\t\tname: \"denominator\",\n\t\t\t\ttype: \"uint256\",\n\t\t\t},\n\t\t],\n\t\tstateMutability: \"view\",\n\t\ttype: \"function\",\n\t},\n] as const;\n","export const p2pStakeBoostFacetAbi = [\n {\n inputs: [{ internalType: \"uint256\", name: \"tokens\", type: \"uint256\" }],\n name: \"p2pBoostStake\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [{ internalType: \"uint256\", name: \"tokens\", type: \"uint256\" }],\n name: \"p2pBoostTopUp\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"p2pBoostRequestUnstake\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"p2pBoostClaimUnstake\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [{ internalType: \"address\", name: \"user\", type: \"address\" }],\n name: \"getUserStake\",\n outputs: [\n {\n components: [\n { internalType: \"uint128\", name: \"stakedAmount\", type: \"uint128\" },\n { internalType: \"uint64\", name: \"cooldownEnd\", type: \"uint64\" },\n { internalType: \"uint8\", name: \"status\", type: \"uint8\" },\n ],\n internalType: \"struct P2PStakeBoostStorage.UserStake\",\n name: \"\",\n type: \"tuple\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [{ internalType: \"bytes32\", name: \"currency\", type: \"bytes32\" }],\n name: \"getStakeBoostConfig\",\n outputs: [\n {\n components: [\n {\n internalType: \"uint256\",\n name: \"tokensPerUsdNumerator\",\n type: \"uint256\",\n },\n {\n internalType: \"uint256\",\n name: \"tokensPerUsdDenominator\",\n type: \"uint256\",\n },\n { internalType: \"uint256\", name: \"maxBoostUsd\", type: \"uint256\" },\n ],\n internalType: \"struct P2PStakeBoostStorage.BoostConfig\",\n name: \"\",\n type: \"tuple\",\n },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"getStakeBoostGlobals\",\n outputs: [\n { internalType: \"address\", name: \"p2pToken\", type: \"address\" },\n { internalType: \"address\", name: \"fraudReserve\", type: \"address\" },\n { internalType: \"uint256\", name: \"maxStakeTokens\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"normalCooldown\", type: \"uint256\" },\n { internalType: \"uint256\", name: \"blacklistCooldown\", type: \"uint256\" },\n { internalType: \"uint8\", name: \"tokenDecimals\", type: \"uint8\" },\n { internalType: \"uint256\", name: \"totalStaked\", type: \"uint256\" },\n ],\n stateMutability: \"view\",\n type: \"function\",\n },\n] as const;\n","export const reputationManagerAbi = [\n\t{\n\t\tinputs: [\n\t\t\t{\n\t\t\t\tinternalType: \"string\",\n\t\t\t\tname: \"_socialName\",\n\t\t\t\ttype: \"string\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tcomponents: [\n\t\t\t\t\t{\n\t\t\t\t\t\tcomponents: [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tinternalType: \"string\",\n\t\t\t\t\t\t\t\tname: \"provider\",\n\t\t\t\t\t\t\t\ttype: \"string\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tinternalType: \"string\",\n\t\t\t\t\t\t\t\tname: \"parameters\",\n\t\t\t\t\t\t\t\ttype: \"string\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tinternalType: \"string\",\n\t\t\t\t\t\t\t\tname: \"context\",\n\t\t\t\t\t\t\t\ttype: \"string\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t],\n\t\t\t\t\t\tinternalType: \"struct IReclaimSDK.ClaimInfo\",\n\t\t\t\t\t\tname: \"claimInfo\",\n\t\t\t\t\t\ttype: \"tuple\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tcomponents: [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tcomponents: [\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tinternalType: \"bytes32\",\n\t\t\t\t\t\t\t\t\t\tname: \"identifier\",\n\t\t\t\t\t\t\t\t\t\ttype: \"bytes32\",\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tinternalType: \"address\",\n\t\t\t\t\t\t\t\t\t\tname: \"owner\",\n\t\t\t\t\t\t\t\t\t\ttype: \"address\",\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tinternalType: \"uint32\",\n\t\t\t\t\t\t\t\t\t\tname: \"timestampS\",\n\t\t\t\t\t\t\t\t\t\ttype: \"uint32\",\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tinternalType: \"uint32\",\n\t\t\t\t\t\t\t\t\t\tname: \"epoch\",\n\t\t\t\t\t\t\t\t\t\ttype: \"uint32\",\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\tinternalType: \"struct IReclaimSDK.CompleteClaimData\",\n\t\t\t\t\t\t\t\tname: \"claim\",\n\t\t\t\t\t\t\t\ttype: \"tuple\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tinternalType: \"bytes[]\",\n\t\t\t\t\t\t\t\tname: \"signatures\",\n\t\t\t\t\t\t\t\ttype: \"bytes[]\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t],\n\t\t\t\t\t\tinternalType: \"struct IReclaimSDK.SignedClaim\",\n\t\t\t\t\t\tname: \"signedClaim\",\n\t\t\t\t\t\ttype: \"tuple\",\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\tinternalType: \"struct IReclaimSDK.Proof[]\",\n\t\t\t\tname: \"proofs\",\n\t\t\t\ttype: \"tuple[]\",\n\t\t\t},\n\t\t],\n\t\tname: \"socialVerify\",\n\t\toutputs: [],\n\t\tstateMutability: \"nonpayable\",\n\t\ttype: \"function\",\n\t},\n\t{\n\t\tinputs: [\n\t\t\t{\n\t\t\t\tinternalType: \"uint256\",\n\t\t\t\tname: \"nullifierSeed\",\n\t\t\t\ttype: \"uint256\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tinternalType: \"uint256\",\n\t\t\t\tname: \"nullifier\",\n\t\t\t\ttype: \"uint256\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tinternalType: \"uint256\",\n\t\t\t\tname: \"timestamp\",\n\t\t\t\ttype: \"uint256\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tinternalType: \"uint256\",\n\t\t\t\tname: \"signal\",\n\t\t\t\ttype: \"uint256\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tinternalType: \"uint256[4]\",\n\t\t\t\tname: \"revealArray\",\n\t\t\t\ttype: \"uint256[4]\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tinternalType: \"uint256[8]\",\n\t\t\t\tname: \"groth16Proof\",\n\t\t\t\ttype: \"uint256[8]\",\n\t\t\t},\n\t\t],\n\t\tname: \"submitAnonAadharProof\",\n\t\toutputs: [],\n\t\tstateMutability: \"nonpayable\",\n\t\ttype: \"function\",\n\t},\n\t{\n\t\tinputs: [\n\t\t\t{\n\t\t\t\tcomponents: [\n\t\t\t\t\t{\n\t\t\t\t\t\tinternalType: \"bytes32\",\n\t\t\t\t\t\tname: \"version\",\n\t\t\t\t\t\ttype: \"bytes32\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tcomponents: [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tinternalType: \"bytes32\",\n\t\t\t\t\t\t\t\tname: \"vkeyHash\",\n\t\t\t\t\t\t\t\ttype: \"bytes32\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tinternalType: \"bytes\",\n\t\t\t\t\t\t\t\tname: \"proof\",\n\t\t\t\t\t\t\t\ttype: \"bytes\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tinternalType: \"bytes32[]\",\n\t\t\t\t\t\t\t\tname: \"publicInputs\",\n\t\t\t\t\t\t\t\ttype: \"bytes32[]\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t],\n\t\t\t\t\t\tinternalType: \"struct ProofVerificationData\",\n\t\t\t\t\t\tname: \"proofVerificationData\",\n\t\t\t\t\t\ttype: \"tuple\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tinternalType: \"bytes\",\n\t\t\t\t\t\tname: \"committedInputs\",\n\t\t\t\t\t\ttype: \"bytes\",\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tcomponents: [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tinternalType: \"uint256\",\n\t\t\t\t\t\t\t\tname: \"validityPeriodInSeconds\",\n\t\t\t\t\t\t\t\ttype: \"uint256\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tinternalType: \"string\",\n\t\t\t\t\t\t\t\tname: \"domain\",\n\t\t\t\t\t\t\t\ttype: \"string\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tinternalType: \"string\",\n\t\t\t\t\t\t\t\tname: \"scope\",\n\t\t\t\t\t\t\t\ttype: \"string\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tinternalType: \"bool\",\n\t\t\t\t\t\t\t\tname: \"devMode\",\n\t\t\t\t\t\t\t\ttype: \"bool\",\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t],\n\t\t\t\t\t\tinternalType: \"struct ServiceConfig\",\n\t\t\t\t\t\tname: \"serviceConfig\",\n\t\t\t\t\t\ttype: \"tuple\",\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\tinternalType: \"struct ProofVerificationParams\",\n\t\t\t\tname: \"params\",\n\t\t\t\ttype: \"tuple\",\n\t\t\t},\n\t\t\t{\n\t\t\t\tinternalType: \"bool\",\n\t\t\t\tname: \"isIDCard\",\n\t\t\t\ttype: \"bool\",\n\t\t\t},\n\t\t],\n\t\tname: \"zkPassportRegister\",\n\t\toutputs: [],\n\t\tstateMutability: \"nonpayable\",\n\t\ttype: \"function\",\n\t},\n] as const;\n","import { okAsync, type ResultAsync } from \"neverthrow\";\nimport { type Address, encodeFunctionData } from \"viem\";\nimport { ABIS } from \"../../contracts/abis\";\nimport type { PublicClientLike } from \"../../types\";\nimport { StakeError } from \"../errors\";\nimport { submitPreparedTx } from \"../tx\";\nimport type { ExecuteBase, PreparedTx, TxResult } from \"../types\";\n\nexport interface ClaimUnstakeAction {\n\tprepare(): ResultAsync<PreparedTx, StakeError>;\n\texecute(params: ExecuteBase): ResultAsync<TxResult, StakeError>;\n}\n\nexport interface CreateClaimUnstakeInput {\n\treadonly publicClient: PublicClientLike;\n\treadonly diamondAddress: Address;\n}\n\n/**\n * Creates a claimUnstake action that encodes `p2pBoostClaimUnstake()` in\n * `prepare` and submits it via the consumer's WalletClient in `execute`.\n * Claimable only after the cooldown period has elapsed.\n */\nexport function createClaimUnstakeAction(input: CreateClaimUnstakeInput): ClaimUnstakeAction {\n\tconst { publicClient, diamondAddress } = input;\n\n\tconst prepareFn = (): ResultAsync<PreparedTx, StakeError> =>\n\t\tokAsync<PreparedTx, StakeError>({\n\t\t\tto: diamondAddress,\n\t\t\tdata: encodeFunctionData({\n\t\t\t\tabi: ABIS.FACETS.STAKE,\n\t\t\t\tfunctionName: \"p2pBoostClaimUnstake\",\n\t\t\t\targs: [],\n\t\t\t}),\n\t\t\tvalue: 0n,\n\t\t});\n\n\treturn {\n\t\tprepare() {\n\t\t\treturn prepareFn();\n\t\t},\n\t\texecute({ walletClient, waitForReceipt }) {\n\t\t\treturn prepareFn().andThen((prepared) =>\n\t\t\t\tsubmitPreparedTx({ prepared, walletClient, publicClient, waitForReceipt }),\n\t\t\t);\n\t\t},\n\t};\n}\n","import { errAsync, okAsync, ResultAsync } from \"neverthrow\";\nimport type { Account, Chain, Hash, TransactionReceipt, WalletClient } from \"viem\";\nimport type { PublicClientLike } from \"../types\";\nimport { StakeError } from \"./errors\";\nimport type { PreparedTx, TxResult } from \"./types\";\n\n/**\n * Submits a prepared tx through the consumer's WalletClient and, if requested,\n * waits for its receipt. Maps viem rejections to `TX_SUBMISSION_FAILED`, timeouts\n * to `RECEIPT_TIMEOUT`, and non-success receipts to `TX_REVERTED`.\n */\nexport function submitPreparedTx(input: {\n\treadonly prepared: PreparedTx;\n\treadonly walletClient: WalletClient;\n\treadonly publicClient: PublicClientLike;\n\treadonly waitForReceipt?: boolean;\n}): ResultAsync<TxResult, StakeError> {\n\tconst { prepared, walletClient, publicClient, waitForReceipt } = input;\n\n\tconst account = walletClient.account as Account | undefined;\n\tif (!account) {\n\t\treturn errAsync(\n\t\t\tnew StakeError(\"WalletClient is missing an account\", {\n\t\t\t\tcode: \"TX_SUBMISSION_FAILED\",\n\t\t\t}),\n\t\t);\n\t}\n\n\tconst chain = walletClient.chain as Chain | undefined;\n\n\treturn ResultAsync.fromPromise(\n\t\twalletClient.sendTransaction({\n\t\t\taccount,\n\t\t\tchain,\n\t\t\tto: prepared.to,\n\t\t\tdata: prepared.data,\n\t\t\tvalue: prepared.value,\n\t\t}),\n\t\t(cause) =>\n\t\t\tnew StakeError(\"walletClient.sendTransaction rejected\", {\n\t\t\t\tcode: \"TX_SUBMISSION_FAILED\",\n\t\t\t\tcause,\n\t\t\t}),\n\t).andThen((hash: Hash) => {\n\t\tif (!waitForReceipt) {\n\t\t\treturn okAsync<TxResult, StakeError>({ hash });\n\t\t}\n\n\t\treturn ResultAsync.fromPromise(\n\t\t\t(\n\t\t\t\tpublicClient as unknown as {\n\t\t\t\t\twaitForTransactionReceipt: (args: { hash: Hash }) => Promise<TransactionReceipt>;\n\t\t\t\t}\n\t\t\t).waitForTransactionReceipt({ hash }),\n\t\t\t(cause) =>\n\t\t\t\tnew StakeError(\"waitForTransactionReceipt failed\", {\n\t\t\t\t\tcode: \"RECEIPT_TIMEOUT\",\n\t\t\t\t\tcause,\n\t\t\t\t}),\n\t\t).andThen((receipt) => {\n\t\t\tif (receipt.status !== \"success\") {\n\t\t\t\treturn errAsync(\n\t\t\t\t\tnew StakeError(\"Transaction reverted\", {\n\t\t\t\t\t\tcode: \"TX_REVERTED\",\n\t\t\t\t\t\tcontext: { hash, blockNumber: receipt.blockNumber.toString() },\n\t\t\t\t\t}),\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn okAsync<TxResult, StakeError>({ hash, receipt });\n\t\t});\n\t});\n}\n","import { okAsync, type ResultAsync } from \"neverthrow\";\nimport { type Address, encodeFunctionData } from \"viem\";\nimport { ABIS } from \"../../contracts/abis\";\nimport type { PublicClientLike } from \"../../types\";\nimport { StakeError } from \"../errors\";\nimport { submitPreparedTx } from \"../tx\";\nimport type { ExecuteBase, PreparedTx, TxResult } from \"../types\";\n\nexport interface RequestUnstakeAction {\n\tprepare(): ResultAsync<PreparedTx, StakeError>;\n\texecute(params: ExecuteBase): ResultAsync<TxResult, StakeError>;\n}\n\nexport interface CreateRequestUnstakeInput {\n\treadonly publicClient: PublicClientLike;\n\treadonly diamondAddress: Address;\n}\n\n/**\n * Creates a requestUnstake action that encodes `p2pBoostRequestUnstake()` in\n * `prepare` and submits it via the consumer's WalletClient in `execute`.\n * Starts the unstake cooldown for the caller's active stake.\n */\nexport function createRequestUnstakeAction(\n\tinput: CreateRequestUnstakeInput,\n): RequestUnstakeAction {\n\tconst { publicClient, diamondAddress } = input;\n\n\tconst prepareFn = (): ResultAsync<PreparedTx, StakeError> =>\n\t\tokAsync<PreparedTx, StakeError>({\n\t\t\tto: diamondAddress,\n\t\t\tdata: encodeFunctionData({\n\t\t\t\tabi: ABIS.FACETS.STAKE,\n\t\t\t\tfunctionName: \"p2pBoostRequestUnstake\",\n\t\t\t\targs: [],\n\t\t\t}),\n\t\t\tvalue: 0n,\n\t\t});\n\n\treturn {\n\t\tprepare() {\n\t\t\treturn prepareFn();\n\t\t},\n\t\texecute({ walletClient, waitForReceipt }) {\n\t\t\treturn prepareFn().andThen((prepared) =>\n\t\t\t\tsubmitPreparedTx({ prepared, walletClient, publicClient, waitForReceipt }),\n\t\t\t);\n\t\t},\n\t};\n}\n","import type { ResultAsync } from \"neverthrow\";\nimport { type Address, encodeFunctionData } from \"viem\";\nimport { ABIS } from \"../../contracts/abis\";\nimport type { PublicClientLike } from \"../../types\";\nimport { validate } from \"../../validation\";\nimport { StakeError } from \"../errors\";\nimport { submitPreparedTx } from \"../tx\";\nimport type { ExecuteBase, PreparedTx, TxResult } from \"../types\";\nimport { type StakeParams, ZodStakeParamsSchema } from \"../validation\";\n\nexport interface StakeAction {\n\tprepare(params: StakeParams): ResultAsync<PreparedTx, StakeError>;\n\texecute(params: StakeParams & ExecuteBase): ResultAsync<TxResult, StakeError>;\n}\n\nexport interface CreateStakeInput {\n\treadonly publicClient: PublicClientLike;\n\treadonly diamondAddress: Address;\n}\n\n/**\n * Creates a stake action that encodes `p2pBoostStake(tokens)` in `prepare` and\n * submits it via the consumer's WalletClient in `execute`.\n */\nexport function createStakeAction(input: CreateStakeInput): StakeAction {\n\tconst { publicClient, diamondAddress } = input;\n\n\tconst prepareFn = (params: StakeParams) =>\n\t\tvalidate(\n\t\t\tZodStakeParamsSchema,\n\t\t\tparams,\n\t\t\t(message, cause, data) =>\n\t\t\t\tnew StakeError(message, {\n\t\t\t\t\tcode: \"VALIDATION_ERROR\",\n\t\t\t\t\tcause,\n\t\t\t\t\tcontext: { data },\n\t\t\t\t}),\n\t\t).map<PreparedTx>(({ tokens }) => ({\n\t\t\tto: diamondAddress,\n\t\t\tdata: encodeFunctionData({\n\t\t\t\tabi: ABIS.FACETS.STAKE,\n\t\t\t\tfunctionName: \"p2pBoostStake\",\n\t\t\t\targs: [tokens],\n\t\t\t}),\n\t\t\tvalue: 0n,\n\t\t}));\n\n\treturn {\n\t\tprepare(params) {\n\t\t\treturn prepareFn(params).asyncMap(async (tx) => tx);\n\t\t},\n\t\texecute({ walletClient, waitForReceipt, ...params }) {\n\t\t\treturn prepareFn(params).asyncAndThen((prepared) =>\n\t\t\t\tsubmitPreparedTx({ prepared, walletClient, publicClient, waitForReceipt }),\n\t\t\t);\n\t\t},\n\t};\n}\n","import type { ResultAsync } from \"neverthrow\";\nimport { type Address, encodeFunctionData } from \"viem\";\nimport { ABIS } from \"../../contracts/abis\";\nimport type { PublicClientLike } from \"../../types\";\nimport { validate } from \"../../validation\";\nimport { StakeError } from \"../errors\";\nimport { submitPreparedTx } from \"../tx\";\nimport type { ExecuteBase, PreparedTx, TxResult } from \"../types\";\nimport { type TopUpParams, ZodTopUpParamsSchema } from \"../validation\";\n\nexport interface TopUpAction {\n\tprepare(params: TopUpParams): ResultAsync<PreparedTx, StakeError>;\n\texecute(params: TopUpParams & ExecuteBase): ResultAsync<TxResult, StakeError>;\n}\n\nexport interface CreateTopUpInput {\n\treadonly publicClient: PublicClientLike;\n\treadonly diamondAddress: Address;\n}\n\n/**\n * Creates a topUp action that encodes `p2pBoostTopUp(tokens)` in `prepare` and\n * submits it via the consumer's WalletClient in `execute`.\n */\nexport function createTopUpAction(input: CreateTopUpInput): TopUpAction {\n\tconst { publicClient, diamondAddress } = input;\n\n\tconst prepareFn = (params: TopUpParams) =>\n\t\tvalidate(\n\t\t\tZodTopUpParamsSchema,\n\t\t\tparams,\n\t\t\t(message, cause, data) =>\n\t\t\t\tnew StakeError(message, {\n\t\t\t\t\tcode: \"VALIDATION_ERROR\",\n\t\t\t\t\tcause,\n\t\t\t\t\tcontext: { data },\n\t\t\t\t}),\n\t\t).map<PreparedTx>(({ tokens }) => ({\n\t\t\tto: diamondAddress,\n\t\t\tdata: encodeFunctionData({\n\t\t\t\tabi: ABIS.FACETS.STAKE,\n\t\t\t\tfunctionName: \"p2pBoostTopUp\",\n\t\t\t\targs: [tokens],\n\t\t\t}),\n\t\t\tvalue: 0n,\n\t\t}));\n\n\treturn {\n\t\tprepare(params) {\n\t\t\treturn prepareFn(params).asyncMap(async (tx) => tx);\n\t\t},\n\t\texecute({ walletClient, waitForReceipt, ...params }) {\n\t\t\treturn prepareFn(params).asyncAndThen((prepared) =>\n\t\t\t\tsubmitPreparedTx({ prepared, walletClient, publicClient, waitForReceipt }),\n\t\t\t);\n\t\t},\n\t};\n}\n","import type {\n\tRawStakeBoostGlobals,\n\tRawUserStake,\n\tStakeBoostGlobals,\n\tStakeStatus,\n\tUserStake,\n} from \"./types\";\n\nconst STATUS_MAP: Record<number, StakeStatus> = {\n\t0: \"none\",\n\t1: \"active\",\n\t2: \"cooldown\",\n\t3: \"seized\",\n};\n\n/** Normalizes the raw on-chain stake tuple into a typed `UserStake`. */\nexport function normalizeUserStake(raw: RawUserStake): UserStake {\n\treturn {\n\t\tstakedAmount: raw.stakedAmount,\n\t\tcooldownEnd: raw.cooldownEnd,\n\t\tstatus: STATUS_MAP[raw.status] ?? \"none\",\n\t};\n}\n\n/** Normalizes the raw positional tuple from `getStakeBoostGlobals` into a struct. */\nexport function normalizeStakeBoostGlobals(raw: RawStakeBoostGlobals): StakeBoostGlobals {\n\tconst [\n\t\tp2pToken,\n\t\tfraudReserve,\n\t\tmaxStakeTokens,\n\t\tnormalCooldown,\n\t\tblacklistCooldown,\n\t\ttokenDecimals,\n\t\ttotalStaked,\n\t] = raw;\n\treturn {\n\t\tp2pToken,\n\t\tfraudReserve,\n\t\tmaxStakeTokens,\n\t\tnormalCooldown,\n\t\tblacklistCooldown,\n\t\ttokenDecimals,\n\t\ttotalStaked,\n\t};\n}\n","import type { ResultAsync } from \"neverthrow\";\nimport {\n\tgetP2pTokenBalance,\n\tgetStakeBoostConfig,\n\tgetStakeBoostGlobals,\n\tgetUserStake,\n} from \"../contracts/p2p-stake\";\nimport { type ClaimUnstakeAction, createClaimUnstakeAction } from \"./actions/claim-unstake\";\nimport {\n\tcreateRequestUnstakeAction,\n\ttype RequestUnstakeAction,\n} from \"./actions/request-unstake\";\nimport { createStakeAction, type StakeAction } from \"./actions/stake\";\nimport { createTopUpAction, type TopUpAction } from \"./actions/top-up\";\nimport type { StakeError } from \"./errors\";\nimport { normalizeStakeBoostGlobals, normalizeUserStake } from \"./normalize\";\nimport type { StakeBoostConfig, StakeBoostGlobals, StakeConfig, UserStake } from \"./types\";\nimport type {\n\tGetP2pTokenBalanceParams,\n\tGetStakeBoostConfigParams,\n\tGetUserStakeParams,\n} from \"./validation\";\n\nexport interface StakeClient {\n\t// ── Reads ───────────────────────────────────────────────────────────\n\n\t/** Reads the on-chain stake record for a user (stakedAmount, cooldownEnd, status). */\n\tgetUserStake(params: GetUserStakeParams): ResultAsync<UserStake, StakeError>;\n\n\t/** Reads the per-currency stake boost config (tokens-per-USD, max boost). */\n\tgetStakeBoostConfig(\n\t\tparams: GetStakeBoostConfigParams,\n\t): ResultAsync<StakeBoostConfig, StakeError>;\n\n\t/** Reads global stake boost configuration (token addr, cooldowns, totals). */\n\tgetStakeBoostGlobals(): ResultAsync<StakeBoostGlobals, StakeError>;\n\n\t/** Reads the P2P token (ERC20) balance for a given address (raw bigint). */\n\tgetP2pTokenBalance(params: GetP2pTokenBalanceParams): ResultAsync<bigint, StakeError>;\n\n\t// ── Writes (layered prepare/execute) ────────────────────────────────\n\n\treadonly stake: StakeAction;\n\treadonly topUp: TopUpAction;\n\treadonly requestUnstake: RequestUnstakeAction;\n\treadonly claimUnstake: ClaimUnstakeAction;\n}\n\n/**\n * Creates the P2P token stake client — exposes a read for the user's stake and\n * prepare/execute write pairs for stake, topUp, requestUnstake, and claimUnstake.\n */\nexport function createStake(config: StakeConfig): StakeClient {\n\tconst { publicClient, diamondAddress, p2pTokenAddress } = config;\n\n\treturn {\n\t\tgetUserStake: (params) =>\n\t\t\tgetUserStake(publicClient, diamondAddress, params).map(normalizeUserStake),\n\n\t\tgetStakeBoostConfig: (params) => getStakeBoostConfig(publicClient, diamondAddress, params),\n\n\t\tgetStakeBoostGlobals: () =>\n\t\t\tgetStakeBoostGlobals(publicClient, diamondAddress).map(normalizeStakeBoostGlobals),\n\n\t\tgetP2pTokenBalance: (params) => getP2pTokenBalance(publicClient, p2pTokenAddress, params),\n\n\t\tstake: createStakeAction({ publicClient, diamondAddress }),\n\t\ttopUp: createTopUpAction({ publicClient, diamondAddress }),\n\t\trequestUnstake: createRequestUnstakeAction({ publicClient, diamondAddress }),\n\t\tclaimUnstake: createClaimUnstakeAction({ publicClient, diamondAddress }),\n\t};\n}\n"],"mappings":"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","names":["z","z","okAsync","ResultAsync","ResultAsync","okAsync","okAsync","encodeFunctionData","okAsync","encodeFunctionData","encodeFunctionData","encodeFunctionData","encodeFunctionData","encodeFunctionData"]}
|
package/dist/zkkyc.cjs
CHANGED
|
@@ -650,6 +650,97 @@ var p2pConfigFacetAbi = [
|
|
|
650
650
|
}
|
|
651
651
|
];
|
|
652
652
|
|
|
653
|
+
// src/contracts/abis/p2p-stake-boost-facet.ts
|
|
654
|
+
var p2pStakeBoostFacetAbi = [
|
|
655
|
+
{
|
|
656
|
+
inputs: [{ internalType: "uint256", name: "tokens", type: "uint256" }],
|
|
657
|
+
name: "p2pBoostStake",
|
|
658
|
+
outputs: [],
|
|
659
|
+
stateMutability: "nonpayable",
|
|
660
|
+
type: "function"
|
|
661
|
+
},
|
|
662
|
+
{
|
|
663
|
+
inputs: [{ internalType: "uint256", name: "tokens", type: "uint256" }],
|
|
664
|
+
name: "p2pBoostTopUp",
|
|
665
|
+
outputs: [],
|
|
666
|
+
stateMutability: "nonpayable",
|
|
667
|
+
type: "function"
|
|
668
|
+
},
|
|
669
|
+
{
|
|
670
|
+
inputs: [],
|
|
671
|
+
name: "p2pBoostRequestUnstake",
|
|
672
|
+
outputs: [],
|
|
673
|
+
stateMutability: "nonpayable",
|
|
674
|
+
type: "function"
|
|
675
|
+
},
|
|
676
|
+
{
|
|
677
|
+
inputs: [],
|
|
678
|
+
name: "p2pBoostClaimUnstake",
|
|
679
|
+
outputs: [],
|
|
680
|
+
stateMutability: "nonpayable",
|
|
681
|
+
type: "function"
|
|
682
|
+
},
|
|
683
|
+
{
|
|
684
|
+
inputs: [{ internalType: "address", name: "user", type: "address" }],
|
|
685
|
+
name: "getUserStake",
|
|
686
|
+
outputs: [
|
|
687
|
+
{
|
|
688
|
+
components: [
|
|
689
|
+
{ internalType: "uint128", name: "stakedAmount", type: "uint128" },
|
|
690
|
+
{ internalType: "uint64", name: "cooldownEnd", type: "uint64" },
|
|
691
|
+
{ internalType: "uint8", name: "status", type: "uint8" }
|
|
692
|
+
],
|
|
693
|
+
internalType: "struct P2PStakeBoostStorage.UserStake",
|
|
694
|
+
name: "",
|
|
695
|
+
type: "tuple"
|
|
696
|
+
}
|
|
697
|
+
],
|
|
698
|
+
stateMutability: "view",
|
|
699
|
+
type: "function"
|
|
700
|
+
},
|
|
701
|
+
{
|
|
702
|
+
inputs: [{ internalType: "bytes32", name: "currency", type: "bytes32" }],
|
|
703
|
+
name: "getStakeBoostConfig",
|
|
704
|
+
outputs: [
|
|
705
|
+
{
|
|
706
|
+
components: [
|
|
707
|
+
{
|
|
708
|
+
internalType: "uint256",
|
|
709
|
+
name: "tokensPerUsdNumerator",
|
|
710
|
+
type: "uint256"
|
|
711
|
+
},
|
|
712
|
+
{
|
|
713
|
+
internalType: "uint256",
|
|
714
|
+
name: "tokensPerUsdDenominator",
|
|
715
|
+
type: "uint256"
|
|
716
|
+
},
|
|
717
|
+
{ internalType: "uint256", name: "maxBoostUsd", type: "uint256" }
|
|
718
|
+
],
|
|
719
|
+
internalType: "struct P2PStakeBoostStorage.BoostConfig",
|
|
720
|
+
name: "",
|
|
721
|
+
type: "tuple"
|
|
722
|
+
}
|
|
723
|
+
],
|
|
724
|
+
stateMutability: "view",
|
|
725
|
+
type: "function"
|
|
726
|
+
},
|
|
727
|
+
{
|
|
728
|
+
inputs: [],
|
|
729
|
+
name: "getStakeBoostGlobals",
|
|
730
|
+
outputs: [
|
|
731
|
+
{ internalType: "address", name: "p2pToken", type: "address" },
|
|
732
|
+
{ internalType: "address", name: "fraudReserve", type: "address" },
|
|
733
|
+
{ internalType: "uint256", name: "maxStakeTokens", type: "uint256" },
|
|
734
|
+
{ internalType: "uint256", name: "normalCooldown", type: "uint256" },
|
|
735
|
+
{ internalType: "uint256", name: "blacklistCooldown", type: "uint256" },
|
|
736
|
+
{ internalType: "uint8", name: "tokenDecimals", type: "uint8" },
|
|
737
|
+
{ internalType: "uint256", name: "totalStaked", type: "uint256" }
|
|
738
|
+
],
|
|
739
|
+
stateMutability: "view",
|
|
740
|
+
type: "function"
|
|
741
|
+
}
|
|
742
|
+
];
|
|
743
|
+
|
|
653
744
|
// src/contracts/abis/reputation-manager.ts
|
|
654
745
|
var reputationManagerAbi = [
|
|
655
746
|
{
|
|
@@ -856,14 +947,16 @@ var reputationManagerAbi = [
|
|
|
856
947
|
var DIAMOND_ABI = [
|
|
857
948
|
...orderFlowFacetAbi,
|
|
858
949
|
...orderProcessorFacetAbi,
|
|
859
|
-
...p2pConfigFacetAbi
|
|
950
|
+
...p2pConfigFacetAbi,
|
|
951
|
+
...p2pStakeBoostFacetAbi
|
|
860
952
|
];
|
|
861
953
|
var ABIS = {
|
|
862
954
|
DIAMOND: DIAMOND_ABI,
|
|
863
955
|
FACETS: {
|
|
864
956
|
ORDER_FLOW: orderFlowFacetAbi,
|
|
865
957
|
ORDER_PROCESSOR: orderProcessorFacetAbi,
|
|
866
|
-
CONFIG: p2pConfigFacetAbi
|
|
958
|
+
CONFIG: p2pConfigFacetAbi,
|
|
959
|
+
STAKE: p2pStakeBoostFacetAbi
|
|
867
960
|
},
|
|
868
961
|
EXTERNAL: {
|
|
869
962
|
USDC: import_viem2.erc20Abi,
|