@pafi-dev/issuer 0.5.41 → 0.5.43

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/index.d.cts CHANGED
@@ -507,15 +507,13 @@ declare class RelayService {
507
507
  */
508
508
  prepareMint(params: PrepareMintParams): Promise<PartialUserOperation>;
509
509
  /**
510
- * Build an unsigned UserOp for Scenario 2 (Burn/Redeem).
510
+ * Build an unsigned UserOp for Scenario 2 (Burn/Redeem) — sig-gated
511
+ * `PointToken.burn(from, amount, deadline, burnerSig)`. Caller
512
+ * provides a pre-signed `BurnRequest` + sig bytes (typically from
513
+ * `PTRedeemHandler`).
511
514
  *
512
- * Two modes:
513
- * - `mode: 'burn'` — direct `PointToken.burn(from, amount)`; only
514
- * usable if the caller (via EIP-7702) is whitelisted as a burner.
515
- * Rare in v1.4; kept for admin/operator tools.
516
- * - `mode: 'burnWithSig'` — `PointToken.burn(from, amount, deadline,
517
- * burnerSig)`. Caller provides a pre-signed `BurnRequest` + sig
518
- * bytes (typically from `PTRedeemHandler`).
515
+ * Direct burn (no sig) was dropped in v1.4 — every burn now goes
516
+ * through the issuer-signed `BurnRequest` path.
519
517
  */
520
518
  prepareBurn(params: PrepareBurnParams): Promise<PartialUserOperation>;
521
519
  }
@@ -562,12 +560,24 @@ interface PrepareMintParams {
562
560
  verificationGasLimit?: bigint;
563
561
  preVerificationGas?: bigint;
564
562
  }
565
- type PrepareBurnParams = PrepareBurnDirectParams | PrepareBurnWithSigParams;
566
- interface PrepareBurnCommonParams {
563
+ /**
564
+ * v1.4 — sig-gated burn only. Direct (no-sig) burn was dropped because
565
+ * every burn now goes through `BurnRequest` EIP-712 signed by the
566
+ * issuer burner. The `mode: 'burnWithSig'` discriminant is preserved
567
+ * for backwards-compat with existing callers but is no longer
568
+ * branched on internally.
569
+ */
570
+ interface PrepareBurnParams {
567
571
  userAddress: Address;
568
572
  aaNonce: bigint;
569
573
  pointTokenAddress: Address;
570
574
  batchExecutorAddress: Address;
575
+ /** Discriminant kept for backwards compat. Always `'burnWithSig'`. */
576
+ mode?: "burnWithSig";
577
+ /** BurnRequest message the issuer burner signer signed. */
578
+ burnRequest: BurnRequest;
579
+ /** Serialized EIP-712 signature (bytes) over `burnRequest`. */
580
+ burnerSignature: Hex;
571
581
  /**
572
582
  * Optional — application-level PT fee transfer appended after burn.
573
583
  * Used for gas reimbursement on the sponsored path. Set both
@@ -580,17 +590,6 @@ interface PrepareBurnCommonParams {
580
590
  verificationGasLimit?: bigint;
581
591
  preVerificationGas?: bigint;
582
592
  }
583
- interface PrepareBurnDirectParams extends PrepareBurnCommonParams {
584
- mode: "burn";
585
- amount: bigint;
586
- }
587
- interface PrepareBurnWithSigParams extends PrepareBurnCommonParams {
588
- mode: "burnWithSig";
589
- /** BurnRequest message the issuer burner signer signed. */
590
- burnRequest: BurnRequest;
591
- /** Serialized EIP-712 signature (bytes) over `burnRequest`. */
592
- burnerSignature: Hex;
593
- }
594
593
 
595
594
  interface FeeManagerConfig {
596
595
  /** Provider used for gas price reads. */
@@ -627,7 +626,7 @@ interface FeeManagerConfig {
627
626
  * (PT for mint/burn, USDT for swap/perp_deposit) — not hardcoded to USDT.
628
627
  *
629
628
  * **Operator rebalancing is gone.** In v1.4 the operator no longer holds
630
- * ETH directly — gas is paid by Coinbase Paymaster via the paymaster-proxy
629
+ * ETH directly — gas is paid by PAFI sponsor-relayer via the paymaster-proxy
631
630
  * (see [SPONSORED_PATH_FLOW.md]). The fee collected here is an
632
631
  * application-level ERC-20 transfer inside the same UserOp batch, not a
633
632
  * reimbursement to a wallet that needs topping up.
@@ -985,67 +984,6 @@ interface ApiUserResponse {
985
984
  balance: bigint;
986
985
  isMinter: boolean;
987
986
  }
988
- interface ApiRedeemRequest {
989
- userAddress: Address;
990
- /** PT amount to burn. */
991
- amount: bigint;
992
- /** ERC-4337 account nonce for the user's EOA. */
993
- aaNonce: bigint;
994
- }
995
- interface ApiRedeemResponse {
996
- /** Pending credit lock id — poll `/user` to track PENDING → CREDITED. */
997
- lockId: string;
998
- /** Unsigned UserOp — attach paymaster data + user signature, then submit. */
999
- userOp: PartialUserOperation;
1000
- /** Seconds until the pending credit lock expires if the burn doesn't land. */
1001
- expiresInSeconds: number;
1002
- /** BurnRequest deadline (unix seconds) — FE can surface a countdown. */
1003
- signatureDeadline: bigint;
1004
- }
1005
- interface ApiTopUpRequest {
1006
- userAddress: Address;
1007
- /** Total points the voucher requires off-chain. */
1008
- requiredAmount: bigint;
1009
- /** ERC-4337 account nonce for the user's EOA. */
1010
- aaNonce: bigint;
1011
- }
1012
- type ApiTopUpResponse = {
1013
- /** Off-chain balance already covers the required amount — no burn needed. */
1014
- action: "NO_TOP_UP_NEEDED";
1015
- offChainBalance: bigint;
1016
- } | {
1017
- /** Combined off-chain + on-chain is still insufficient — cannot fulfill. */
1018
- action: "INSUFFICIENT_ONCHAIN";
1019
- offChainBalance: bigint;
1020
- onChainBalance: bigint;
1021
- shortfall: bigint;
1022
- } | {
1023
- /** Burn of `shortfall` PT initiated — FE submits the returned UserOp. */
1024
- action: "TOP_UP_STARTED";
1025
- shortfall: bigint;
1026
- redeem: ApiRedeemResponse;
1027
- };
1028
- interface ApiClaimRequest {
1029
- chainId: number;
1030
- pointTokenAddress: Address;
1031
- /** PT amount to mint. */
1032
- amount: bigint;
1033
- /** ERC-4337 account nonce for the user's EOA (from EntryPoint). */
1034
- aaNonce: bigint;
1035
- /** Unix seconds — when the MintRequest signature expires. */
1036
- deadline: bigint;
1037
- /** Optional operator fee (PT) deducted inside the same UserOp batch. */
1038
- feeAmount?: bigint;
1039
- feeRecipient?: Address;
1040
- }
1041
- interface ApiClaimResponse {
1042
- /** Off-chain lock id — poll `/user` to track PENDING → MINTED. */
1043
- lockId: string;
1044
- /** Unsigned UserOp — attach paymaster data + user signature, then submit. */
1045
- userOp: PartialUserOperation;
1046
- /** Seconds until the off-chain lock expires if the UserOp is not submitted. */
1047
- expiresInSeconds: number;
1048
- }
1049
987
  type PoolsProvider = (request: ApiPoolsRequest) => Promise<ApiPoolsResponse>;
1050
988
 
1051
989
  interface IssuerApiHandlersConfig {
@@ -1075,20 +1013,6 @@ interface IssuerApiHandlersConfig {
1075
1013
  feeManager?: FeeManager;
1076
1014
  /** Required by `handlePools`; omit to disable the endpoint. */
1077
1015
  poolsProvider?: PoolsProvider;
1078
- /**
1079
- * Required by `handleClaim`; omit to disable the endpoint.
1080
- * Wires policy evaluation + ledger locking + MintRequest signing
1081
- * into a single atomic handler so callers cannot accidentally skip
1082
- * the policy check.
1083
- */
1084
- claim?: {
1085
- policy: IPolicyEngine;
1086
- relayService: RelayService;
1087
- issuerSignerWallet: WalletClient;
1088
- batchExecutorAddress: Address;
1089
- /** How long to hold the off-chain lock while the UserOp is in flight. Default: 15 min. */
1090
- lockDurationMs?: number;
1091
- };
1092
1016
  }
1093
1017
  /**
1094
1018
  * Framework-agnostic HTTP handlers that match the endpoints a `PafiSDK`
@@ -1115,7 +1039,6 @@ declare class IssuerApiHandlers {
1115
1039
  private readonly pafiWebUrl?;
1116
1040
  private readonly feeManager?;
1117
1041
  private readonly poolsProvider?;
1118
- private readonly claim?;
1119
1042
  constructor(config: IssuerApiHandlersConfig);
1120
1043
  /** `GET /auth/nonce` */
1121
1044
  handleGetNonce(): Promise<ApiNonceResponse>;
@@ -1147,22 +1070,6 @@ declare class IssuerApiHandlers {
1147
1070
  * balance.
1148
1071
  */
1149
1072
  handleUser(userAddress: Address, request: ApiUserRequest): Promise<ApiUserResponse>;
1150
- /**
1151
- * `POST /claim`
1152
- *
1153
- * Policy gate + ledger lock + MintRequest signing in a single atomic
1154
- * step. Returns an unsigned UserOp the frontend attaches paymaster data
1155
- * to and submits via EIP-7702 + Bundler.
1156
- *
1157
- * Order of operations:
1158
- * 1. Validate request fields.
1159
- * 2. policy.evaluate() — throws if denied; cannot be bypassed.
1160
- * 3. ledger.lockForMinting() — reserves the balance.
1161
- * 4. Read on-chain mintRequestNonce + token name in parallel.
1162
- * 5. relayService.prepareMint() — sign MintRequest + encode UserOp.
1163
- * 6. On any error after step 3, release the lock before re-throwing.
1164
- */
1165
- handleClaim(userAddress: Address, request: ApiClaimRequest): Promise<ApiClaimResponse>;
1166
1073
  }
1167
1074
 
1168
1075
  /**
@@ -1171,7 +1078,7 @@ declare class IssuerApiHandlers {
1171
1078
  * User has on-chain PT, wants to convert back to off-chain points. The
1172
1079
  * issuer backend signs a `BurnRequest` with its burner signer, reserves
1173
1080
  * an off-chain pending credit, and returns an unsigned UserOp. The FE
1174
- * submits the UserOp via EIP-7702 + Coinbase Paymaster. On confirmation,
1081
+ * submits the UserOp via EIP-7702 + PAFI sponsor-relayer. On confirmation,
1175
1082
  * `Transfer(user → 0x0)` is emitted; `BurnIndexer` resolves the pending
1176
1083
  * credit to a real off-chain credit.
1177
1084
  *
@@ -1333,70 +1240,6 @@ declare class PTRedeemHandler {
1333
1240
  private _handleAfterNonceLock;
1334
1241
  }
1335
1242
 
1336
- /**
1337
- * v1.4 reverse flow — **Variant B**: auto top-up on voucher redemption.
1338
- *
1339
- * User tries to redeem a voucher for `requiredAmount` off-chain points
1340
- * but their off-chain balance is short. If their on-chain PT balance is
1341
- * enough to cover the shortfall, this handler auto-triggers a burn for
1342
- * exactly the shortfall amount so the voucher can proceed.
1343
- *
1344
- * Required off-chain: 500
1345
- * Available off-chain: 300
1346
- * Shortfall: 200
1347
- * On-chain PT: 250 ← enough, top-up fires
1348
- * → burn 200 PT, credit 200 off-chain, voucher proceeds with 500
1349
- *
1350
- * Delegates the actual burn construction to {@link PTRedeemHandler}
1351
- * — this handler is pure business logic (shortfall math + on-chain
1352
- * balance check) on top.
1353
- *
1354
- * v1.4 note: user no longer pre-signs a `BurnConsent`. The issuer
1355
- * backend signs a `BurnRequest` itself (see `PTRedeemHandler`), so
1356
- * this handler only needs `userAddress + requiredAmount + aaNonce`.
1357
- */
1358
- interface TopUpRedemptionHandlerConfig {
1359
- ledger: IPointLedger;
1360
- ptRedeemHandler: PTRedeemHandler;
1361
- provider: PublicClient;
1362
- /** PointToken contract address (chain-specific). */
1363
- pointTokenAddress: Address;
1364
- }
1365
- interface TopUpRedemptionRequest {
1366
- /** Address extracted from the verified JWT — must match `userAddress`. */
1367
- authenticatedAddress: Address;
1368
- userAddress: Address;
1369
- /** Total points the voucher redemption requires off-chain. */
1370
- requiredAmount: bigint;
1371
- /** ERC-4337 account nonce for the user's EOA. */
1372
- aaNonce: bigint;
1373
- }
1374
- type TopUpRedemptionResponse = {
1375
- action: "NO_TOP_UP_NEEDED";
1376
- offChainBalance: bigint;
1377
- } | {
1378
- action: "INSUFFICIENT_ONCHAIN";
1379
- offChainBalance: bigint;
1380
- onChainBalance: bigint;
1381
- shortfall: bigint;
1382
- } | {
1383
- action: "TOP_UP_STARTED";
1384
- shortfall: bigint;
1385
- redeem: PTRedeemResponse;
1386
- };
1387
- declare class TopUpRedemptionError extends Error {
1388
- code: "UNAUTHORIZED" | "INSUFFICIENT_ONCHAIN_BALANCE" | "LEDGER_NOT_SUPPORTED";
1389
- constructor(code: "UNAUTHORIZED" | "INSUFFICIENT_ONCHAIN_BALANCE" | "LEDGER_NOT_SUPPORTED", message: string);
1390
- }
1391
- declare class TopUpRedemptionHandler {
1392
- private readonly ledger;
1393
- private readonly ptRedeemHandler;
1394
- private readonly provider;
1395
- private readonly pointTokenAddress;
1396
- constructor(config: TopUpRedemptionHandlerConfig);
1397
- handle(request: TopUpRedemptionRequest): Promise<TopUpRedemptionResponse>;
1398
- }
1399
-
1400
1243
  interface RetryConfig {
1401
1244
  maxAttempts?: number;
1402
1245
  initialDelayMs?: number;
@@ -1656,6 +1499,29 @@ interface IPendingUserOpStore {
1656
1499
  */
1657
1500
  declare function serializeEntryToJsonRpc(entry: PendingUserOpEntry, signature: Hex, variant?: "sponsored" | "fallback"): Record<string, string | null>;
1658
1501
 
1502
+ /**
1503
+ * In-memory `IPendingUserOpStore` for **single-instance dev / test
1504
+ * harnesses only**.
1505
+ *
1506
+ * Multi-instance deployments (k8s, PM2 cluster) MUST use a shared store
1507
+ * — typically Redis with a TTL key or Postgres with `expires_at`. If
1508
+ * `prepare` lands on instance A and `submit` on instance B, an
1509
+ * in-memory store on A loses the entry.
1510
+ *
1511
+ * Entries are evicted lazily on `get()` if expired. Periodic sweep is
1512
+ * not implemented — the in-memory map's footprint scales with
1513
+ * outstanding pending UserOps, which is bounded by the issuer's lock
1514
+ * duration (default 15 min).
1515
+ */
1516
+ declare class MemoryPendingUserOpStore implements IPendingUserOpStore {
1517
+ private readonly entries;
1518
+ private readonly now;
1519
+ constructor(now?: () => number);
1520
+ save(lockId: string, entry: PendingUserOpEntry, ttlSeconds: number): Promise<void>;
1521
+ get(lockId: string): Promise<PendingUserOpEntry | null>;
1522
+ delete(lockId: string): Promise<void>;
1523
+ }
1524
+
1659
1525
  /**
1660
1526
  * Re-shape `UserOpTypedData` so all `bigint` fields become hex strings —
1661
1527
  * required for JSON transport over HTTP. Mirrors the inverse of what
@@ -2367,17 +2233,6 @@ interface IssuerServiceConfig {
2367
2233
  * throws "not configured" at request time.
2368
2234
  */
2369
2235
  poolsProvider?: PoolsProvider;
2370
- /**
2371
- * Enables `handleClaim`. The factory combines these with the shared
2372
- * `policy` + `relayService` instances already wired by the factory.
2373
- * Omit to disable the `/claim` endpoint.
2374
- */
2375
- claim?: {
2376
- issuerSignerWallet: WalletClient;
2377
- /** Defaults to the PAFI-deployed BatchExecutor for the target chain. */
2378
- batchExecutorAddress?: Address;
2379
- lockDurationMs?: number;
2380
- };
2381
2236
  indexer?: {
2382
2237
  fromBlock?: bigint;
2383
2238
  cursorStore?: IIndexerCursorStore;
@@ -2457,13 +2312,13 @@ interface IssuerApiAdapterConfig {
2457
2312
  /** Optional issuer id — when omitted, sponsorAuth is skipped (returns `undefined`). */
2458
2313
  pafiIssuerId?: string;
2459
2314
  /** Sig-gated mint handler. Required for `claim` / `claimPrepare`. */
2460
- ptClaimHandler: PTClaimHandler;
2315
+ ptClaimHandler?: PTClaimHandler | null;
2461
2316
  /** Reverse-flow handler. Required for `redeem` / `redeemPrepare`. */
2462
2317
  ptRedeemHandler?: PTRedeemHandler | null;
2463
2318
  /** PT → USDT swap handler. Required for `swap`. */
2464
- swapHandler: SwapHandler;
2319
+ swapHandler?: SwapHandler | null;
2465
2320
  /** Orderly perp-deposit handler. Required for `perpDeposit`. */
2466
- perpHandler: PerpDepositHandler;
2321
+ perpHandler?: PerpDepositHandler | null;
2467
2322
  /** Pending UserOp store — required for mobile prepare/submit. */
2468
2323
  pendingUserOpStore: IPendingUserOpStore;
2469
2324
  /** PAFI backend client — required for mobile submit + delegate submit + status fallback. */
@@ -2661,6 +2516,13 @@ declare class IssuerApiAdapter {
2661
2516
  private buildSponsorAuth;
2662
2517
  private runMobilePrepare;
2663
2518
  private assertRedeemHandler;
2519
+ /**
2520
+ * Narrow an optional handler to non-null and throw a clear error when
2521
+ * the issuer wired the adapter without it. Lets issuers opt out of
2522
+ * flows they don't expose (gg56 ships only mobile claim/redeem, so
2523
+ * `swapHandler` + `perpHandler` aren't constructed).
2524
+ */
2525
+ private assertHandler;
2664
2526
  }
2665
2527
 
2666
2528
  /**
@@ -3074,4 +2936,4 @@ declare class IssuerStateValidator {
3074
2936
  /** SDK package version — bumped on every release */
3075
2937
  declare const PAFI_ISSUER_SDK_VERSION = "0.4.0";
3076
2938
 
3077
- export { type ApiClaimRequest, type ApiClaimResponse, type ApiConfigResponse, type ApiGasFeeResponse, type ApiLoginRequest, type ApiLoginResponse, type ApiNonceResponse, type ApiPoolsRequest, type ApiPoolsResponse, type ApiRedeemRequest, type ApiRedeemResponse, type ApiTopUpRequest, type ApiTopUpResponse, type ApiUserRequest, type ApiUserResponse, type AuthContext, AuthError, type AuthErrorCode, AuthService, type AuthServiceConfig, BalanceAggregator, type BalanceAggregatorConfig, BundlerNotConfiguredError, BundlerRejectedError, type BurnEvent, BurnIndexer, type BurnIndexerConfig, type BurnStatusParams, type BurnStatusResponse, type ClaimDto, type CombinedBalance, type ConfigDto, type DecodedCallDto, DefaultPolicyEngine, type DefaultPolicyEngineOptions, type DelegatePrepareDto, type DelegateStatusDto, FeeManager, type FeeManagerConfig, type GasFeeDto, type HandleDelegateSubmitParams, type HandleDelegateSubmitResult, type HandleMobilePrepareParams, type HandleMobilePrepareResult, type HandleMobileSubmitParams, type IIndexerCursorStore, type IPendingUserOpStore, type IPointLedger, type IPolicyEngine, type ISessionStore, InMemoryCursorStore, IssuerApiAdapter, type IssuerApiAdapterConfig, IssuerApiHandlers, type IssuerApiHandlersConfig, type IssuerRegistryRecord, type IssuerService, type IssuerServiceConfig, IssuerStateError, IssuerStateValidator, LockNotFoundError, type LockedMintRequest, type LoginResult, MemorySessionStore, type MemorySessionStoreOptions, type MintEvent, type MintStatusParams, type MintStatusResponse, type MintingStatus, type MobilePrepareDto, type MobileSubmitDto, type NativePtQuoterConfig, NonceManager, PAFI_ISSUER_SDK_VERSION, PTClaimError, PTClaimHandler, type PTClaimHandlerConfig, type PTClaimRequest, type PTClaimResponse, PTRedeemError, PTRedeemHandler, type PTRedeemHandlerConfig, type PTRedeemRequest, type PTRedeemResponse, PafiBackendClient, type PafiBackendConfig, PafiBackendError, type PafiBackendErrorCode, PafiSdkError, type PendingCredit, type PendingUserOpEntry, PendingUserOpForbiddenError, PendingUserOpNotFoundError, type PerpDepositDto, PerpDepositError, PerpDepositHandler, type PerpDepositHandlerConfig, type PerpDepositRequest, type PerpDepositResponse, PointIndexer, type PointIndexerConfig, type PolicyDecision, type PolicyEvalRequest, type PoolsDto, type PoolsProvider, type PreValidateMintResult, type PrepareBurnDirectParams, type PrepareBurnParams, type PrepareBurnWithSigParams, type PrepareMintParams, type PrepareMobileUserOpParams, type PrepareMobileUserOpResult, type PreparedUserOp, type QuoteDto, type QuotePointTokenToUsdtParams, type QuotePointTokenToUsdtResult, type RedeemDto, type RedeemPrepareDto, RelayError, type RelayErrorCode, RelayService, type RelayUserOpParams, type RelayUserOpRequest, type RelayUserOpResponse, type RequestPaymasterParams, type RetryConfig, type SdkErrorBody, type SdkErrorHttpStatus, type SdkErrorMapperFactories, type SdkErrorStatus, type SerializedUserOpTypedData, type Session, type SponsorshipRequest, type SponsorshipResponse, type SponsorshipTarget, type SponsorshipUserOp, type SubgraphNativeUsdtQuoterConfig, type SubgraphPoolsProviderConfig, type SwapDto, SwapError, SwapHandler, type SwapHandlerConfig, type SwapRequest, type SwapResponse, TopUpRedemptionError, TopUpRedemptionHandler, type TopUpRedemptionHandlerConfig, type TopUpRedemptionRequest, type TopUpRedemptionResponse, type UserDto, authenticateRequest, createIssuerService, createNativePtQuoter, createSdkErrorMapper, createSubgraphNativeUsdtQuoter, createSubgraphPoolsProvider, handleClaimStatus, handleDelegateSubmit, handleMobilePrepare, handleMobileSubmit, handleRedeemStatus, mergePaymasterFields, prepareMobileUserOp, quotePointTokenToUsdt, relayUserOp, requestPaymaster, serializeEntryToJsonRpc, serializeUserOpTypedData };
2939
+ export { type ApiConfigResponse, type ApiGasFeeResponse, type ApiLoginRequest, type ApiLoginResponse, type ApiNonceResponse, type ApiPoolsRequest, type ApiPoolsResponse, type ApiUserRequest, type ApiUserResponse, type AuthContext, AuthError, type AuthErrorCode, AuthService, type AuthServiceConfig, BalanceAggregator, type BalanceAggregatorConfig, BundlerNotConfiguredError, BundlerRejectedError, type BurnEvent, BurnIndexer, type BurnIndexerConfig, type BurnStatusParams, type BurnStatusResponse, type ClaimDto, type CombinedBalance, type ConfigDto, type DecodedCallDto, DefaultPolicyEngine, type DefaultPolicyEngineOptions, type DelegatePrepareDto, type DelegateStatusDto, FeeManager, type FeeManagerConfig, type GasFeeDto, type HandleDelegateSubmitParams, type HandleDelegateSubmitResult, type HandleMobilePrepareParams, type HandleMobilePrepareResult, type HandleMobileSubmitParams, type IIndexerCursorStore, type IPendingUserOpStore, type IPointLedger, type IPolicyEngine, type ISessionStore, InMemoryCursorStore, IssuerApiAdapter, type IssuerApiAdapterConfig, IssuerApiHandlers, type IssuerApiHandlersConfig, type IssuerRegistryRecord, type IssuerService, type IssuerServiceConfig, IssuerStateError, IssuerStateValidator, LockNotFoundError, type LockedMintRequest, type LoginResult, MemoryPendingUserOpStore, MemorySessionStore, type MemorySessionStoreOptions, type MintEvent, type MintStatusParams, type MintStatusResponse, type MintingStatus, type MobilePrepareDto, type MobileSubmitDto, type NativePtQuoterConfig, NonceManager, PAFI_ISSUER_SDK_VERSION, PTClaimError, PTClaimHandler, type PTClaimHandlerConfig, type PTClaimRequest, type PTClaimResponse, PTRedeemError, PTRedeemHandler, type PTRedeemHandlerConfig, type PTRedeemRequest, type PTRedeemResponse, PafiBackendClient, type PafiBackendConfig, PafiBackendError, type PafiBackendErrorCode, PafiSdkError, type PendingCredit, type PendingUserOpEntry, PendingUserOpForbiddenError, PendingUserOpNotFoundError, type PerpDepositDto, PerpDepositError, PerpDepositHandler, type PerpDepositHandlerConfig, type PerpDepositRequest, type PerpDepositResponse, PointIndexer, type PointIndexerConfig, type PolicyDecision, type PolicyEvalRequest, type PoolsDto, type PoolsProvider, type PreValidateMintResult, type PrepareBurnParams, type PrepareMintParams, type PrepareMobileUserOpParams, type PrepareMobileUserOpResult, type PreparedUserOp, type QuoteDto, type QuotePointTokenToUsdtParams, type QuotePointTokenToUsdtResult, type RedeemDto, type RedeemPrepareDto, RelayError, type RelayErrorCode, RelayService, type RelayUserOpParams, type RelayUserOpRequest, type RelayUserOpResponse, type RequestPaymasterParams, type RetryConfig, type SdkErrorBody, type SdkErrorHttpStatus, type SdkErrorMapperFactories, type SdkErrorStatus, type SerializedUserOpTypedData, type Session, type SponsorshipRequest, type SponsorshipResponse, type SponsorshipTarget, type SponsorshipUserOp, type SubgraphNativeUsdtQuoterConfig, type SubgraphPoolsProviderConfig, type SwapDto, SwapError, SwapHandler, type SwapHandlerConfig, type SwapRequest, type SwapResponse, type UserDto, authenticateRequest, createIssuerService, createNativePtQuoter, createSdkErrorMapper, createSubgraphNativeUsdtQuoter, createSubgraphPoolsProvider, handleClaimStatus, handleDelegateSubmit, handleMobilePrepare, handleMobileSubmit, handleRedeemStatus, mergePaymasterFields, prepareMobileUserOp, quotePointTokenToUsdt, relayUserOp, requestPaymaster, serializeEntryToJsonRpc, serializeUserOpTypedData };