@pafi-dev/core 0.3.0-beta.4 → 0.3.0-beta.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (64) hide show
  1. package/dist/abi/index.cjs +2 -6
  2. package/dist/abi/index.cjs.map +1 -1
  3. package/dist/abi/index.d.cts +1 -286
  4. package/dist/abi/index.d.ts +1 -286
  5. package/dist/abi/index.js +1 -5
  6. package/dist/{chunk-5YH4D7QF.js → chunk-7UBO7DY5.js} +1 -1
  7. package/dist/{chunk-FGKLDKJK.cjs → chunk-ALCWYDVG.cjs} +1 -1
  8. package/dist/{chunk-FGKLDKJK.cjs.map → chunk-ALCWYDVG.cjs.map} +1 -1
  9. package/dist/{chunk-X3I5XWAR.cjs → chunk-CQCSQPWG.cjs} +2 -15
  10. package/dist/chunk-CQCSQPWG.cjs.map +1 -0
  11. package/dist/{chunk-CXFUP2YK.cjs → chunk-EDR5SFJN.cjs} +46 -6
  12. package/dist/chunk-EDR5SFJN.cjs.map +1 -0
  13. package/dist/{chunk-VQSRCMMK.js → chunk-QGO6X6LG.js} +2 -15
  14. package/dist/chunk-QGO6X6LG.js.map +1 -0
  15. package/dist/{chunk-IK4UK7KT.js → chunk-W23EJNYG.js} +44 -4
  16. package/dist/chunk-W23EJNYG.js.map +1 -0
  17. package/dist/contract/index.cjs +2 -5
  18. package/dist/contract/index.cjs.map +1 -1
  19. package/dist/contract/index.d.cts +2 -4
  20. package/dist/contract/index.d.ts +2 -4
  21. package/dist/contract/index.js +1 -4
  22. package/dist/eip712/index.d.cts +1 -1
  23. package/dist/eip712/index.d.ts +1 -1
  24. package/dist/{index-BYL8Nn-n.d.ts → index-B06IJlHe.d.ts} +1 -1
  25. package/dist/{index-B5OJ9Kcx.d.cts → index-B7pGBych.d.cts} +1 -1
  26. package/dist/index.cjs +36 -122
  27. package/dist/index.cjs.map +1 -1
  28. package/dist/index.d.cts +64 -115
  29. package/dist/index.d.ts +64 -115
  30. package/dist/index.js +34 -120
  31. package/dist/index.js.map +1 -1
  32. package/dist/quoting/index.d.cts +1 -1
  33. package/dist/quoting/index.d.ts +1 -1
  34. package/dist/swap/index.cjs +2 -3
  35. package/dist/swap/index.cjs.map +1 -1
  36. package/dist/swap/index.d.cts +2 -2
  37. package/dist/swap/index.d.ts +2 -2
  38. package/dist/swap/index.js +1 -2
  39. package/dist/{types-DGDlKiDe.d.ts → types-b5_Tokjl.d.cts} +1 -17
  40. package/dist/{types-DGDlKiDe.d.cts → types-b5_Tokjl.d.ts} +1 -17
  41. package/package.json +1 -1
  42. package/dist/chunk-27V32VNM.cjs +0 -370
  43. package/dist/chunk-27V32VNM.cjs.map +0 -1
  44. package/dist/chunk-4RYBJLF3.js +0 -370
  45. package/dist/chunk-4RYBJLF3.js.map +0 -1
  46. package/dist/chunk-5QJZT7VB.cjs +0 -46
  47. package/dist/chunk-5QJZT7VB.cjs.map +0 -1
  48. package/dist/chunk-CXFUP2YK.cjs.map +0 -1
  49. package/dist/chunk-IK4UK7KT.js.map +0 -1
  50. package/dist/chunk-L74CZAVQ.cjs +0 -99
  51. package/dist/chunk-L74CZAVQ.cjs.map +0 -1
  52. package/dist/chunk-P56TUGTS.js +0 -46
  53. package/dist/chunk-P56TUGTS.js.map +0 -1
  54. package/dist/chunk-VQSRCMMK.js.map +0 -1
  55. package/dist/chunk-X3I5XWAR.cjs.map +0 -1
  56. package/dist/chunk-X4IXUTTD.js +0 -99
  57. package/dist/chunk-X4IXUTTD.js.map +0 -1
  58. package/dist/relay/index.cjs +0 -19
  59. package/dist/relay/index.cjs.map +0 -1
  60. package/dist/relay/index.d.cts +0 -75
  61. package/dist/relay/index.d.ts +0 -75
  62. package/dist/relay/index.js +0 -19
  63. package/dist/relay/index.js.map +0 -1
  64. /package/dist/{chunk-5YH4D7QF.js.map → chunk-7UBO7DY5.js.map} +0 -0
@@ -1,99 +0,0 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
-
3
- var _chunk27V32VNMcjs = require('./chunk-27V32VNM.cjs');
4
-
5
-
6
- var _chunk5QJZT7VBcjs = require('./chunk-5QJZT7VB.cjs');
7
-
8
- // src/relay/calldata.ts
9
-
10
-
11
-
12
-
13
-
14
- var _viem = require('viem');
15
- function encodeExtData(minAmountOut, feeInUsdt) {
16
- return _viem.encodeAbiParameters.call(void 0,
17
- [{ type: "uint256" }, { type: "uint256" }],
18
- [minAmountOut, feeInUsdt]
19
- );
20
- }
21
- function decodeExtData(extData) {
22
- const [minAmountOut, feeInUsdt] = _viem.decodeAbiParameters.call(void 0,
23
- [{ type: "uint256" }, { type: "uint256" }],
24
- extData
25
- );
26
- return { minAmountOut, feeInUsdt };
27
- }
28
- function buildRelaySwapParams(params) {
29
- return {
30
- swapParams: {
31
- path: params.quote.path,
32
- deadline: params.deadline
33
- },
34
- extData: encodeExtData(params.minAmountOut, params.feeInUsdt)
35
- };
36
- }
37
- function encodeMintAndSwap(mint, swap) {
38
- return _viem.encodeFunctionData.call(void 0, {
39
- abi: _chunk27V32VNMcjs.relayAbi,
40
- functionName: "mintAndSwap",
41
- args: [mint, swap]
42
- });
43
- }
44
- function decodeMintAndSwap(calldata) {
45
- const { args } = _viem.decodeFunctionData.call(void 0, {
46
- abi: _chunk27V32VNMcjs.relayAbi,
47
- data: calldata
48
- });
49
- const [rawMint, rawSwap] = args;
50
- const mint = {
51
- pointToken: rawMint.pointToken,
52
- receiver: rawMint.receiver,
53
- amount: rawMint.amount,
54
- deadline: rawMint.deadline,
55
- minterSig: rawMint.minterSig,
56
- receiverSig: rawMint.receiverSig,
57
- extData: rawMint.extData
58
- };
59
- const swap = {
60
- path: rawSwap.path.map(
61
- (hop) => ({
62
- intermediateCurrency: hop.intermediateCurrency,
63
- fee: hop.fee,
64
- tickSpacing: hop.tickSpacing,
65
- hooks: hop.hooks,
66
- hookData: hop.hookData
67
- })
68
- ),
69
- deadline: rawSwap.deadline
70
- };
71
- return { mint, swap };
72
- }
73
-
74
- // src/relay/simulate.ts
75
- async function simulateMintAndSwap(client, relayAddress, mint, swap, from) {
76
- try {
77
- const gasEstimate = await client.estimateContractGas({
78
- address: relayAddress,
79
- abi: _chunk27V32VNMcjs.relayAbi,
80
- functionName: "mintAndSwap",
81
- args: [mint, swap],
82
- account: from
83
- });
84
- return { success: true, gasEstimate };
85
- } catch (error) {
86
- const message = error instanceof Error ? error.message : "Unknown simulation error";
87
- throw new (0, _chunk5QJZT7VBcjs.SimulationError)("mintAndSwap", message);
88
- }
89
- }
90
-
91
-
92
-
93
-
94
-
95
-
96
-
97
-
98
- exports.encodeExtData = encodeExtData; exports.decodeExtData = decodeExtData; exports.buildRelaySwapParams = buildRelaySwapParams; exports.encodeMintAndSwap = encodeMintAndSwap; exports.decodeMintAndSwap = decodeMintAndSwap; exports.simulateMintAndSwap = simulateMintAndSwap;
99
- //# sourceMappingURL=chunk-L74CZAVQ.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["/Users/phitran/Pacific-Finance/pafi-backend/pafi-sdk/packages/core/dist/chunk-L74CZAVQ.cjs","../src/relay/calldata.ts","../src/relay/simulate.ts"],"names":[],"mappings":"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","file":"/Users/phitran/Pacific-Finance/pafi-backend/pafi-sdk/packages/core/dist/chunk-L74CZAVQ.cjs","sourcesContent":[null,"import {\n decodeFunctionData,\n encodeFunctionData,\n encodeAbiParameters,\n decodeAbiParameters,\n} from \"viem\";\nimport type { Hex } from \"viem\";\nimport { relayAbi } from \"../abi/relay\";\nimport type { MintParams, PathKey, SwapParams } from \"../types\";\n\n/**\n * Encode extData for ReceiverConsent and MintParams.\n * extData = abi.encode(uint256 minAmountOut, uint256 feeInUsdt)\n */\nexport function encodeExtData(minAmountOut: bigint, feeInUsdt: bigint): Hex {\n return encodeAbiParameters(\n [{ type: \"uint256\" }, { type: \"uint256\" }],\n [minAmountOut, feeInUsdt],\n );\n}\n\n/**\n * Decode extData back to { minAmountOut, feeInUsdt }.\n */\nexport function decodeExtData(extData: Hex): {\n minAmountOut: bigint;\n feeInUsdt: bigint;\n} {\n const [minAmountOut, feeInUsdt] = decodeAbiParameters(\n [{ type: \"uint256\" }, { type: \"uint256\" }],\n extData,\n );\n return { minAmountOut, feeInUsdt };\n}\n\n/**\n * Build SwapParams and extData from a quote result for Relay.mintAndSwap.\n *\n * @param quote - Quote result containing the path\n * @param minAmountOut - Minimum acceptable USDT output (caller applies slippage)\n * @param feeInUsdt - Fixed USDT fee for the relayer\n * @param deadline - Swap deadline (unix timestamp)\n *\n * @deprecated Since v1.4 — the `claimAndSwap` flow is retired. The\n * Issuer App now performs mint-only claims; swaps happen on PAFI Web.\n * For PT→USDT swap batch calls on PAFI Web, use\n * `buildSwapWithGasDeduction()` (v1.5). This helper is kept for legacy\n * consumers still on v0.2.x and will be removed in v2.0.\n */\nexport function buildRelaySwapParams(params: {\n quote: { path: PathKey[] };\n minAmountOut: bigint;\n feeInUsdt: bigint;\n deadline: bigint;\n}): { swapParams: SwapParams; extData: Hex } {\n return {\n swapParams: {\n path: params.quote.path,\n deadline: params.deadline,\n },\n extData: encodeExtData(params.minAmountOut, params.feeInUsdt),\n };\n}\n\n/**\n * Encode calldata for the legacy `Relayer.mintAndSwap()` function.\n *\n * @deprecated Since v1.4 — the `claimAndSwap` flow is retired. Use\n * `Relayer.mint()` instead (via `@pafi-dev/issuer` RelayService in v1.4).\n * Kept for legacy v0.2.x consumers; will be removed in v2.0.\n */\nexport function encodeMintAndSwap(mint: MintParams, swap: SwapParams): Hex {\n return encodeFunctionData({\n abi: relayAbi,\n functionName: \"mintAndSwap\",\n args: [mint, swap],\n });\n}\n\nexport function decodeMintAndSwap(calldata: Hex): {\n mint: MintParams;\n swap: SwapParams;\n} {\n const { args } = decodeFunctionData({\n abi: relayAbi,\n data: calldata,\n });\n\n const [rawMint, rawSwap] = args as [\n {\n pointToken: `0x${string}`;\n receiver: `0x${string}`;\n amount: bigint;\n deadline: bigint;\n minterSig: Hex;\n receiverSig: Hex;\n extData: Hex;\n },\n {\n path: ReadonlyArray<{\n intermediateCurrency: `0x${string}`;\n fee: number;\n tickSpacing: number;\n hooks: `0x${string}`;\n hookData: Hex;\n }>;\n deadline: bigint;\n },\n ];\n\n const mint: MintParams = {\n pointToken: rawMint.pointToken,\n receiver: rawMint.receiver,\n amount: rawMint.amount,\n deadline: rawMint.deadline,\n minterSig: rawMint.minterSig,\n receiverSig: rawMint.receiverSig,\n extData: rawMint.extData,\n };\n\n const swap: SwapParams = {\n path: rawSwap.path.map(\n (hop): PathKey => ({\n intermediateCurrency: hop.intermediateCurrency,\n fee: hop.fee,\n tickSpacing: hop.tickSpacing,\n hooks: hop.hooks,\n hookData: hop.hookData,\n }),\n ),\n deadline: rawSwap.deadline,\n };\n\n return { mint, swap };\n}\n","import type { Address, PublicClient } from \"viem\";\nimport { relayAbi } from \"../abi/relay\";\nimport type { MintParams, SwapParams } from \"../types\";\nimport { SimulationError } from \"../errors\";\n\nexport interface SimulationResult {\n success: boolean;\n gasEstimate: bigint;\n}\n\n/**\n * Simulate a Relay.mintAndSwap call via eth_call (no gas spent).\n *\n * Runs the full flow — signature verification, minting, swap via PoolManager,\n * fee split — without submitting a transaction. If the simulation reverts,\n * throws a `SimulationError` with the revert reason.\n *\n * Call this AFTER both signatures are collected but BEFORE submitting the tx.\n *\n * @param client - viem PublicClient\n * @param relayAddress - Relay contract address\n * @param mint - MintParams (with real minterSig + receiverSig)\n * @param swap - SwapParams (path + deadline)\n * @param from - Address that will call mintAndSwap (the relayer)\n */\nexport async function simulateMintAndSwap(\n client: PublicClient,\n relayAddress: Address,\n mint: MintParams,\n swap: SwapParams,\n from: Address,\n): Promise<SimulationResult> {\n try {\n const gasEstimate = await client.estimateContractGas({\n address: relayAddress,\n abi: relayAbi,\n functionName: \"mintAndSwap\",\n args: [mint, swap],\n account: from,\n });\n\n return { success: true, gasEstimate };\n } catch (error: unknown) {\n const message =\n error instanceof Error ? error.message : \"Unknown simulation error\";\n throw new SimulationError(\"mintAndSwap\", message);\n }\n}\n"]}
@@ -1,46 +0,0 @@
1
- // src/errors.ts
2
- var PafiSDKError = class extends Error {
3
- constructor(message) {
4
- super(message);
5
- this.name = "PafiSDKError";
6
- }
7
- };
8
- var ConfigurationError = class extends PafiSDKError {
9
- constructor(message) {
10
- super(message);
11
- this.name = "ConfigurationError";
12
- }
13
- };
14
- var SigningError = class extends PafiSDKError {
15
- constructor(message) {
16
- super(message);
17
- this.name = "SigningError";
18
- }
19
- };
20
- var SimulationError = class extends PafiSDKError {
21
- constructor(operation, reason) {
22
- super(`Simulation failed for ${operation}: ${reason}`);
23
- this.operation = operation;
24
- this.reason = reason;
25
- this.name = "SimulationError";
26
- }
27
- operation;
28
- reason;
29
- };
30
- var ApiError = class extends PafiSDKError {
31
- constructor(message, status) {
32
- super(message);
33
- this.status = status;
34
- this.name = "ApiError";
35
- }
36
- status;
37
- };
38
-
39
- export {
40
- PafiSDKError,
41
- ConfigurationError,
42
- SigningError,
43
- SimulationError,
44
- ApiError
45
- };
46
- //# sourceMappingURL=chunk-P56TUGTS.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/errors.ts"],"sourcesContent":["export class PafiSDKError extends Error {\n constructor(message: string) {\n super(message);\n this.name = \"PafiSDKError\";\n }\n}\n\nexport class ConfigurationError extends PafiSDKError {\n constructor(message: string) {\n super(message);\n this.name = \"ConfigurationError\";\n }\n}\n\nexport class SigningError extends PafiSDKError {\n constructor(message: string) {\n super(message);\n this.name = \"SigningError\";\n }\n}\n\nexport class SimulationError extends PafiSDKError {\n constructor(\n public operation: string,\n public reason: string,\n ) {\n super(`Simulation failed for ${operation}: ${reason}`);\n this.name = \"SimulationError\";\n }\n}\n\nexport class ApiError extends PafiSDKError {\n constructor(\n message: string,\n public status?: number,\n ) {\n super(message);\n this.name = \"ApiError\";\n }\n}\n"],"mappings":";AAAO,IAAM,eAAN,cAA2B,MAAM;AAAA,EACtC,YAAY,SAAiB;AAC3B,UAAM,OAAO;AACb,SAAK,OAAO;AAAA,EACd;AACF;AAEO,IAAM,qBAAN,cAAiC,aAAa;AAAA,EACnD,YAAY,SAAiB;AAC3B,UAAM,OAAO;AACb,SAAK,OAAO;AAAA,EACd;AACF;AAEO,IAAM,eAAN,cAA2B,aAAa;AAAA,EAC7C,YAAY,SAAiB;AAC3B,UAAM,OAAO;AACb,SAAK,OAAO;AAAA,EACd;AACF;AAEO,IAAM,kBAAN,cAA8B,aAAa;AAAA,EAChD,YACS,WACA,QACP;AACA,UAAM,yBAAyB,SAAS,KAAK,MAAM,EAAE;AAH9C;AACA;AAGP,SAAK,OAAO;AAAA,EACd;AAAA,EALS;AAAA,EACA;AAKX;AAEO,IAAM,WAAN,cAAuB,aAAa;AAAA,EACzC,YACE,SACO,QACP;AACA,UAAM,OAAO;AAFN;AAGP,SAAK,OAAO;AAAA,EACd;AAAA,EAJS;AAKX;","names":[]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/contract/pointToken.ts","../src/contract/issuerRegistry.ts","../src/contract/mintingOracle.ts","../src/contract/relay.ts"],"sourcesContent":["import type { Address, PublicClient } from \"viem\";\nimport { pointTokenAbi } from \"../abi/pointToken\";\n\nexport async function getMintRequestNonce(\n client: PublicClient,\n pointToken: Address,\n receiver: Address,\n): Promise<bigint> {\n return client.readContract({\n address: pointToken,\n abi: pointTokenAbi,\n functionName: \"mintRequestNonces\",\n args: [receiver],\n });\n}\n\nexport async function getReceiverConsentNonce(\n client: PublicClient,\n pointToken: Address,\n receiver: Address,\n): Promise<bigint> {\n return client.readContract({\n address: pointToken,\n abi: pointTokenAbi,\n functionName: \"receiverConsentNonces\",\n args: [receiver],\n });\n}\n\nexport async function isMinter(\n client: PublicClient,\n pointToken: Address,\n account: Address,\n): Promise<boolean> {\n return client.readContract({\n address: pointToken,\n abi: pointTokenAbi,\n functionName: \"minters\",\n args: [account],\n });\n}\n\nexport async function getTokenName(\n client: PublicClient,\n pointToken: Address,\n): Promise<string> {\n return client.readContract({\n address: pointToken,\n abi: pointTokenAbi,\n functionName: \"name\",\n });\n}\n\nexport async function getIssuer(\n client: PublicClient,\n pointToken: Address,\n): Promise<Address> {\n return client.readContract({\n address: pointToken,\n abi: pointTokenAbi,\n functionName: \"issuer\",\n });\n}\n\n/**\n * Read the ERC-20 on-chain balance for `holder`. Returned in raw 18-decimal\n * base units. Use alongside the issuer's off-chain ledger balance to render\n * a combined \"total balance\" in the app UI.\n */\nexport async function getPointTokenBalance(\n client: PublicClient,\n pointToken: Address,\n holder: Address,\n): Promise<bigint> {\n return client.readContract({\n address: pointToken,\n abi: pointTokenAbi,\n functionName: \"balanceOf\",\n args: [holder],\n });\n}\n","import type { Address, PublicClient } from \"viem\";\nimport { issuerRegistryAbi } from \"../abi/issuerRegistry\";\nimport type { Issuer } from \"../types\";\n\nexport async function getIssuer(\n client: PublicClient,\n registryAddress: Address,\n issuer: Address,\n): Promise<Issuer> {\n const result = await client.readContract({\n address: registryAddress,\n abi: issuerRegistryAbi,\n functionName: \"getIssuer\",\n args: [issuer],\n });\n\n const [\n issuerAddress,\n signerAddress,\n name,\n symbol,\n declaredTotalSupply,\n capBasisPoints,\n active,\n pointToken,\n mintingOracle,\n ] = result;\n\n return {\n issuerAddress,\n signerAddress,\n name,\n symbol,\n declaredTotalSupply,\n capBasisPoints,\n active,\n pointToken,\n mintingOracle,\n };\n}\n\nexport async function isActiveIssuer(\n client: PublicClient,\n registryAddress: Address,\n issuer: Address,\n): Promise<boolean> {\n return client.readContract({\n address: registryAddress,\n abi: issuerRegistryAbi,\n functionName: \"isActiveIssuer\",\n args: [issuer],\n });\n}\n","import type { Address, PublicClient } from \"viem\";\nimport { mintingOracleAbi } from \"../abi/mintingOracle\";\n\nexport async function verifyMintCap(\n client: PublicClient,\n oracleAddress: Address,\n issuer: Address,\n amount: bigint,\n): Promise<void> {\n await client.readContract({\n address: oracleAddress,\n abi: mintingOracleAbi,\n functionName: \"verifyMintCap\",\n args: [issuer, amount],\n });\n}\n\nexport async function getPointTokenIssuer(\n client: PublicClient,\n oracleAddress: Address,\n pointToken: Address,\n): Promise<Address> {\n return client.readContract({\n address: oracleAddress,\n abi: mintingOracleAbi,\n functionName: \"pointTokenToIssuer\",\n args: [pointToken],\n });\n}\n","import type { Address, PublicClient } from \"viem\";\nimport { relayAbi } from \"../abi/relay\";\n\nexport async function getUsdt(\n client: PublicClient,\n relayAddress: Address,\n): Promise<Address> {\n return client.readContract({\n address: relayAddress,\n abi: relayAbi,\n functionName: \"usdt\",\n });\n}\n"],"mappings":";;;;;;;;;;AAGA,eAAsB,oBACpB,QACA,YACA,UACiB;AACjB,SAAO,OAAO,aAAa;AAAA,IACzB,SAAS;AAAA,IACT,KAAK;AAAA,IACL,cAAc;AAAA,IACd,MAAM,CAAC,QAAQ;AAAA,EACjB,CAAC;AACH;AAEA,eAAsB,wBACpB,QACA,YACA,UACiB;AACjB,SAAO,OAAO,aAAa;AAAA,IACzB,SAAS;AAAA,IACT,KAAK;AAAA,IACL,cAAc;AAAA,IACd,MAAM,CAAC,QAAQ;AAAA,EACjB,CAAC;AACH;AAEA,eAAsB,SACpB,QACA,YACA,SACkB;AAClB,SAAO,OAAO,aAAa;AAAA,IACzB,SAAS;AAAA,IACT,KAAK;AAAA,IACL,cAAc;AAAA,IACd,MAAM,CAAC,OAAO;AAAA,EAChB,CAAC;AACH;AAEA,eAAsB,aACpB,QACA,YACiB;AACjB,SAAO,OAAO,aAAa;AAAA,IACzB,SAAS;AAAA,IACT,KAAK;AAAA,IACL,cAAc;AAAA,EAChB,CAAC;AACH;AAEA,eAAsB,UACpB,QACA,YACkB;AAClB,SAAO,OAAO,aAAa;AAAA,IACzB,SAAS;AAAA,IACT,KAAK;AAAA,IACL,cAAc;AAAA,EAChB,CAAC;AACH;AAOA,eAAsB,qBACpB,QACA,YACA,QACiB;AACjB,SAAO,OAAO,aAAa;AAAA,IACzB,SAAS;AAAA,IACT,KAAK;AAAA,IACL,cAAc;AAAA,IACd,MAAM,CAAC,MAAM;AAAA,EACf,CAAC;AACH;;;AC5EA,eAAsBA,WACpB,QACA,iBACA,QACiB;AACjB,QAAM,SAAS,MAAM,OAAO,aAAa;AAAA,IACvC,SAAS;AAAA,IACT,KAAK;AAAA,IACL,cAAc;AAAA,IACd,MAAM,CAAC,MAAM;AAAA,EACf,CAAC;AAED,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI;AAEJ,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;AAEA,eAAsB,eACpB,QACA,iBACA,QACkB;AAClB,SAAO,OAAO,aAAa;AAAA,IACzB,SAAS;AAAA,IACT,KAAK;AAAA,IACL,cAAc;AAAA,IACd,MAAM,CAAC,MAAM;AAAA,EACf,CAAC;AACH;;;ACjDA,eAAsB,cACpB,QACA,eACA,QACA,QACe;AACf,QAAM,OAAO,aAAa;AAAA,IACxB,SAAS;AAAA,IACT,KAAK;AAAA,IACL,cAAc;AAAA,IACd,MAAM,CAAC,QAAQ,MAAM;AAAA,EACvB,CAAC;AACH;AAEA,eAAsB,oBACpB,QACA,eACA,YACkB;AAClB,SAAO,OAAO,aAAa;AAAA,IACzB,SAAS;AAAA,IACT,KAAK;AAAA,IACL,cAAc;AAAA,IACd,MAAM,CAAC,UAAU;AAAA,EACnB,CAAC;AACH;;;ACzBA,eAAsB,QACpB,QACA,cACkB;AAClB,SAAO,OAAO,aAAa;AAAA,IACzB,SAAS;AAAA,IACT,KAAK;AAAA,IACL,cAAc;AAAA,EAChB,CAAC;AACH;","names":["getIssuer"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["/Users/phitran/Pacific-Finance/pafi-backend/pafi-sdk/packages/core/dist/chunk-X3I5XWAR.cjs","../src/contract/pointToken.ts","../src/contract/issuerRegistry.ts","../src/contract/mintingOracle.ts","../src/contract/relay.ts"],"names":["getIssuer"],"mappings":"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","file":"/Users/phitran/Pacific-Finance/pafi-backend/pafi-sdk/packages/core/dist/chunk-X3I5XWAR.cjs","sourcesContent":[null,"import type { Address, PublicClient } from \"viem\";\nimport { pointTokenAbi } from \"../abi/pointToken\";\n\nexport async function getMintRequestNonce(\n client: PublicClient,\n pointToken: Address,\n receiver: Address,\n): Promise<bigint> {\n return client.readContract({\n address: pointToken,\n abi: pointTokenAbi,\n functionName: \"mintRequestNonces\",\n args: [receiver],\n });\n}\n\nexport async function getReceiverConsentNonce(\n client: PublicClient,\n pointToken: Address,\n receiver: Address,\n): Promise<bigint> {\n return client.readContract({\n address: pointToken,\n abi: pointTokenAbi,\n functionName: \"receiverConsentNonces\",\n args: [receiver],\n });\n}\n\nexport async function isMinter(\n client: PublicClient,\n pointToken: Address,\n account: Address,\n): Promise<boolean> {\n return client.readContract({\n address: pointToken,\n abi: pointTokenAbi,\n functionName: \"minters\",\n args: [account],\n });\n}\n\nexport async function getTokenName(\n client: PublicClient,\n pointToken: Address,\n): Promise<string> {\n return client.readContract({\n address: pointToken,\n abi: pointTokenAbi,\n functionName: \"name\",\n });\n}\n\nexport async function getIssuer(\n client: PublicClient,\n pointToken: Address,\n): Promise<Address> {\n return client.readContract({\n address: pointToken,\n abi: pointTokenAbi,\n functionName: \"issuer\",\n });\n}\n\n/**\n * Read the ERC-20 on-chain balance for `holder`. Returned in raw 18-decimal\n * base units. Use alongside the issuer's off-chain ledger balance to render\n * a combined \"total balance\" in the app UI.\n */\nexport async function getPointTokenBalance(\n client: PublicClient,\n pointToken: Address,\n holder: Address,\n): Promise<bigint> {\n return client.readContract({\n address: pointToken,\n abi: pointTokenAbi,\n functionName: \"balanceOf\",\n args: [holder],\n });\n}\n","import type { Address, PublicClient } from \"viem\";\nimport { issuerRegistryAbi } from \"../abi/issuerRegistry\";\nimport type { Issuer } from \"../types\";\n\nexport async function getIssuer(\n client: PublicClient,\n registryAddress: Address,\n issuer: Address,\n): Promise<Issuer> {\n const result = await client.readContract({\n address: registryAddress,\n abi: issuerRegistryAbi,\n functionName: \"getIssuer\",\n args: [issuer],\n });\n\n const [\n issuerAddress,\n signerAddress,\n name,\n symbol,\n declaredTotalSupply,\n capBasisPoints,\n active,\n pointToken,\n mintingOracle,\n ] = result;\n\n return {\n issuerAddress,\n signerAddress,\n name,\n symbol,\n declaredTotalSupply,\n capBasisPoints,\n active,\n pointToken,\n mintingOracle,\n };\n}\n\nexport async function isActiveIssuer(\n client: PublicClient,\n registryAddress: Address,\n issuer: Address,\n): Promise<boolean> {\n return client.readContract({\n address: registryAddress,\n abi: issuerRegistryAbi,\n functionName: \"isActiveIssuer\",\n args: [issuer],\n });\n}\n","import type { Address, PublicClient } from \"viem\";\nimport { mintingOracleAbi } from \"../abi/mintingOracle\";\n\nexport async function verifyMintCap(\n client: PublicClient,\n oracleAddress: Address,\n issuer: Address,\n amount: bigint,\n): Promise<void> {\n await client.readContract({\n address: oracleAddress,\n abi: mintingOracleAbi,\n functionName: \"verifyMintCap\",\n args: [issuer, amount],\n });\n}\n\nexport async function getPointTokenIssuer(\n client: PublicClient,\n oracleAddress: Address,\n pointToken: Address,\n): Promise<Address> {\n return client.readContract({\n address: oracleAddress,\n abi: mintingOracleAbi,\n functionName: \"pointTokenToIssuer\",\n args: [pointToken],\n });\n}\n","import type { Address, PublicClient } from \"viem\";\nimport { relayAbi } from \"../abi/relay\";\n\nexport async function getUsdt(\n client: PublicClient,\n relayAddress: Address,\n): Promise<Address> {\n return client.readContract({\n address: relayAddress,\n abi: relayAbi,\n functionName: \"usdt\",\n });\n}\n"]}
@@ -1,99 +0,0 @@
1
- import {
2
- relayAbi
3
- } from "./chunk-4RYBJLF3.js";
4
- import {
5
- SimulationError
6
- } from "./chunk-P56TUGTS.js";
7
-
8
- // src/relay/calldata.ts
9
- import {
10
- decodeFunctionData,
11
- encodeFunctionData,
12
- encodeAbiParameters,
13
- decodeAbiParameters
14
- } from "viem";
15
- function encodeExtData(minAmountOut, feeInUsdt) {
16
- return encodeAbiParameters(
17
- [{ type: "uint256" }, { type: "uint256" }],
18
- [minAmountOut, feeInUsdt]
19
- );
20
- }
21
- function decodeExtData(extData) {
22
- const [minAmountOut, feeInUsdt] = decodeAbiParameters(
23
- [{ type: "uint256" }, { type: "uint256" }],
24
- extData
25
- );
26
- return { minAmountOut, feeInUsdt };
27
- }
28
- function buildRelaySwapParams(params) {
29
- return {
30
- swapParams: {
31
- path: params.quote.path,
32
- deadline: params.deadline
33
- },
34
- extData: encodeExtData(params.minAmountOut, params.feeInUsdt)
35
- };
36
- }
37
- function encodeMintAndSwap(mint, swap) {
38
- return encodeFunctionData({
39
- abi: relayAbi,
40
- functionName: "mintAndSwap",
41
- args: [mint, swap]
42
- });
43
- }
44
- function decodeMintAndSwap(calldata) {
45
- const { args } = decodeFunctionData({
46
- abi: relayAbi,
47
- data: calldata
48
- });
49
- const [rawMint, rawSwap] = args;
50
- const mint = {
51
- pointToken: rawMint.pointToken,
52
- receiver: rawMint.receiver,
53
- amount: rawMint.amount,
54
- deadline: rawMint.deadline,
55
- minterSig: rawMint.minterSig,
56
- receiverSig: rawMint.receiverSig,
57
- extData: rawMint.extData
58
- };
59
- const swap = {
60
- path: rawSwap.path.map(
61
- (hop) => ({
62
- intermediateCurrency: hop.intermediateCurrency,
63
- fee: hop.fee,
64
- tickSpacing: hop.tickSpacing,
65
- hooks: hop.hooks,
66
- hookData: hop.hookData
67
- })
68
- ),
69
- deadline: rawSwap.deadline
70
- };
71
- return { mint, swap };
72
- }
73
-
74
- // src/relay/simulate.ts
75
- async function simulateMintAndSwap(client, relayAddress, mint, swap, from) {
76
- try {
77
- const gasEstimate = await client.estimateContractGas({
78
- address: relayAddress,
79
- abi: relayAbi,
80
- functionName: "mintAndSwap",
81
- args: [mint, swap],
82
- account: from
83
- });
84
- return { success: true, gasEstimate };
85
- } catch (error) {
86
- const message = error instanceof Error ? error.message : "Unknown simulation error";
87
- throw new SimulationError("mintAndSwap", message);
88
- }
89
- }
90
-
91
- export {
92
- encodeExtData,
93
- decodeExtData,
94
- buildRelaySwapParams,
95
- encodeMintAndSwap,
96
- decodeMintAndSwap,
97
- simulateMintAndSwap
98
- };
99
- //# sourceMappingURL=chunk-X4IXUTTD.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/relay/calldata.ts","../src/relay/simulate.ts"],"sourcesContent":["import {\n decodeFunctionData,\n encodeFunctionData,\n encodeAbiParameters,\n decodeAbiParameters,\n} from \"viem\";\nimport type { Hex } from \"viem\";\nimport { relayAbi } from \"../abi/relay\";\nimport type { MintParams, PathKey, SwapParams } from \"../types\";\n\n/**\n * Encode extData for ReceiverConsent and MintParams.\n * extData = abi.encode(uint256 minAmountOut, uint256 feeInUsdt)\n */\nexport function encodeExtData(minAmountOut: bigint, feeInUsdt: bigint): Hex {\n return encodeAbiParameters(\n [{ type: \"uint256\" }, { type: \"uint256\" }],\n [minAmountOut, feeInUsdt],\n );\n}\n\n/**\n * Decode extData back to { minAmountOut, feeInUsdt }.\n */\nexport function decodeExtData(extData: Hex): {\n minAmountOut: bigint;\n feeInUsdt: bigint;\n} {\n const [minAmountOut, feeInUsdt] = decodeAbiParameters(\n [{ type: \"uint256\" }, { type: \"uint256\" }],\n extData,\n );\n return { minAmountOut, feeInUsdt };\n}\n\n/**\n * Build SwapParams and extData from a quote result for Relay.mintAndSwap.\n *\n * @param quote - Quote result containing the path\n * @param minAmountOut - Minimum acceptable USDT output (caller applies slippage)\n * @param feeInUsdt - Fixed USDT fee for the relayer\n * @param deadline - Swap deadline (unix timestamp)\n *\n * @deprecated Since v1.4 — the `claimAndSwap` flow is retired. The\n * Issuer App now performs mint-only claims; swaps happen on PAFI Web.\n * For PT→USDT swap batch calls on PAFI Web, use\n * `buildSwapWithGasDeduction()` (v1.5). This helper is kept for legacy\n * consumers still on v0.2.x and will be removed in v2.0.\n */\nexport function buildRelaySwapParams(params: {\n quote: { path: PathKey[] };\n minAmountOut: bigint;\n feeInUsdt: bigint;\n deadline: bigint;\n}): { swapParams: SwapParams; extData: Hex } {\n return {\n swapParams: {\n path: params.quote.path,\n deadline: params.deadline,\n },\n extData: encodeExtData(params.minAmountOut, params.feeInUsdt),\n };\n}\n\n/**\n * Encode calldata for the legacy `Relayer.mintAndSwap()` function.\n *\n * @deprecated Since v1.4 — the `claimAndSwap` flow is retired. Use\n * `Relayer.mint()` instead (via `@pafi-dev/issuer` RelayService in v1.4).\n * Kept for legacy v0.2.x consumers; will be removed in v2.0.\n */\nexport function encodeMintAndSwap(mint: MintParams, swap: SwapParams): Hex {\n return encodeFunctionData({\n abi: relayAbi,\n functionName: \"mintAndSwap\",\n args: [mint, swap],\n });\n}\n\nexport function decodeMintAndSwap(calldata: Hex): {\n mint: MintParams;\n swap: SwapParams;\n} {\n const { args } = decodeFunctionData({\n abi: relayAbi,\n data: calldata,\n });\n\n const [rawMint, rawSwap] = args as [\n {\n pointToken: `0x${string}`;\n receiver: `0x${string}`;\n amount: bigint;\n deadline: bigint;\n minterSig: Hex;\n receiverSig: Hex;\n extData: Hex;\n },\n {\n path: ReadonlyArray<{\n intermediateCurrency: `0x${string}`;\n fee: number;\n tickSpacing: number;\n hooks: `0x${string}`;\n hookData: Hex;\n }>;\n deadline: bigint;\n },\n ];\n\n const mint: MintParams = {\n pointToken: rawMint.pointToken,\n receiver: rawMint.receiver,\n amount: rawMint.amount,\n deadline: rawMint.deadline,\n minterSig: rawMint.minterSig,\n receiverSig: rawMint.receiverSig,\n extData: rawMint.extData,\n };\n\n const swap: SwapParams = {\n path: rawSwap.path.map(\n (hop): PathKey => ({\n intermediateCurrency: hop.intermediateCurrency,\n fee: hop.fee,\n tickSpacing: hop.tickSpacing,\n hooks: hop.hooks,\n hookData: hop.hookData,\n }),\n ),\n deadline: rawSwap.deadline,\n };\n\n return { mint, swap };\n}\n","import type { Address, PublicClient } from \"viem\";\nimport { relayAbi } from \"../abi/relay\";\nimport type { MintParams, SwapParams } from \"../types\";\nimport { SimulationError } from \"../errors\";\n\nexport interface SimulationResult {\n success: boolean;\n gasEstimate: bigint;\n}\n\n/**\n * Simulate a Relay.mintAndSwap call via eth_call (no gas spent).\n *\n * Runs the full flow — signature verification, minting, swap via PoolManager,\n * fee split — without submitting a transaction. If the simulation reverts,\n * throws a `SimulationError` with the revert reason.\n *\n * Call this AFTER both signatures are collected but BEFORE submitting the tx.\n *\n * @param client - viem PublicClient\n * @param relayAddress - Relay contract address\n * @param mint - MintParams (with real minterSig + receiverSig)\n * @param swap - SwapParams (path + deadline)\n * @param from - Address that will call mintAndSwap (the relayer)\n */\nexport async function simulateMintAndSwap(\n client: PublicClient,\n relayAddress: Address,\n mint: MintParams,\n swap: SwapParams,\n from: Address,\n): Promise<SimulationResult> {\n try {\n const gasEstimate = await client.estimateContractGas({\n address: relayAddress,\n abi: relayAbi,\n functionName: \"mintAndSwap\",\n args: [mint, swap],\n account: from,\n });\n\n return { success: true, gasEstimate };\n } catch (error: unknown) {\n const message =\n error instanceof Error ? error.message : \"Unknown simulation error\";\n throw new SimulationError(\"mintAndSwap\", message);\n }\n}\n"],"mappings":";;;;;;;;AAAA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AASA,SAAS,cAAc,cAAsB,WAAwB;AAC1E,SAAO;AAAA,IACL,CAAC,EAAE,MAAM,UAAU,GAAG,EAAE,MAAM,UAAU,CAAC;AAAA,IACzC,CAAC,cAAc,SAAS;AAAA,EAC1B;AACF;AAKO,SAAS,cAAc,SAG5B;AACA,QAAM,CAAC,cAAc,SAAS,IAAI;AAAA,IAChC,CAAC,EAAE,MAAM,UAAU,GAAG,EAAE,MAAM,UAAU,CAAC;AAAA,IACzC;AAAA,EACF;AACA,SAAO,EAAE,cAAc,UAAU;AACnC;AAgBO,SAAS,qBAAqB,QAKQ;AAC3C,SAAO;AAAA,IACL,YAAY;AAAA,MACV,MAAM,OAAO,MAAM;AAAA,MACnB,UAAU,OAAO;AAAA,IACnB;AAAA,IACA,SAAS,cAAc,OAAO,cAAc,OAAO,SAAS;AAAA,EAC9D;AACF;AASO,SAAS,kBAAkB,MAAkB,MAAuB;AACzE,SAAO,mBAAmB;AAAA,IACxB,KAAK;AAAA,IACL,cAAc;AAAA,IACd,MAAM,CAAC,MAAM,IAAI;AAAA,EACnB,CAAC;AACH;AAEO,SAAS,kBAAkB,UAGhC;AACA,QAAM,EAAE,KAAK,IAAI,mBAAmB;AAAA,IAClC,KAAK;AAAA,IACL,MAAM;AAAA,EACR,CAAC;AAED,QAAM,CAAC,SAAS,OAAO,IAAI;AAsB3B,QAAM,OAAmB;AAAA,IACvB,YAAY,QAAQ;AAAA,IACpB,UAAU,QAAQ;AAAA,IAClB,QAAQ,QAAQ;AAAA,IAChB,UAAU,QAAQ;AAAA,IAClB,WAAW,QAAQ;AAAA,IACnB,aAAa,QAAQ;AAAA,IACrB,SAAS,QAAQ;AAAA,EACnB;AAEA,QAAM,OAAmB;AAAA,IACvB,MAAM,QAAQ,KAAK;AAAA,MACjB,CAAC,SAAkB;AAAA,QACjB,sBAAsB,IAAI;AAAA,QAC1B,KAAK,IAAI;AAAA,QACT,aAAa,IAAI;AAAA,QACjB,OAAO,IAAI;AAAA,QACX,UAAU,IAAI;AAAA,MAChB;AAAA,IACF;AAAA,IACA,UAAU,QAAQ;AAAA,EACpB;AAEA,SAAO,EAAE,MAAM,KAAK;AACtB;;;AC7GA,eAAsB,oBACpB,QACA,cACA,MACA,MACA,MAC2B;AAC3B,MAAI;AACF,UAAM,cAAc,MAAM,OAAO,oBAAoB;AAAA,MACnD,SAAS;AAAA,MACT,KAAK;AAAA,MACL,cAAc;AAAA,MACd,MAAM,CAAC,MAAM,IAAI;AAAA,MACjB,SAAS;AAAA,IACX,CAAC;AAED,WAAO,EAAE,SAAS,MAAM,YAAY;AAAA,EACtC,SAAS,OAAgB;AACvB,UAAM,UACJ,iBAAiB,QAAQ,MAAM,UAAU;AAC3C,UAAM,IAAI,gBAAgB,eAAe,OAAO;AAAA,EAClD;AACF;","names":[]}
@@ -1,19 +0,0 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
-
3
-
4
-
5
-
6
-
7
-
8
- var _chunkL74CZAVQcjs = require('../chunk-L74CZAVQ.cjs');
9
- require('../chunk-27V32VNM.cjs');
10
- require('../chunk-5QJZT7VB.cjs');
11
-
12
-
13
-
14
-
15
-
16
-
17
-
18
- exports.buildRelaySwapParams = _chunkL74CZAVQcjs.buildRelaySwapParams; exports.decodeExtData = _chunkL74CZAVQcjs.decodeExtData; exports.decodeMintAndSwap = _chunkL74CZAVQcjs.decodeMintAndSwap; exports.encodeExtData = _chunkL74CZAVQcjs.encodeExtData; exports.encodeMintAndSwap = _chunkL74CZAVQcjs.encodeMintAndSwap; exports.simulateMintAndSwap = _chunkL74CZAVQcjs.simulateMintAndSwap;
19
- //# sourceMappingURL=index.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["/Users/phitran/Pacific-Finance/pafi-backend/pafi-sdk/packages/core/dist/relay/index.cjs"],"names":[],"mappings":"AAAA;AACE;AACA;AACA;AACA;AACA;AACA;AACF,yDAA8B;AAC9B,iCAA8B;AAC9B,iCAA8B;AAC9B;AACE;AACA;AACA;AACA;AACA;AACA;AACF,+XAAC","file":"/Users/phitran/Pacific-Finance/pafi-backend/pafi-sdk/packages/core/dist/relay/index.cjs"}
@@ -1,75 +0,0 @@
1
- import { Hex, PublicClient, Address } from 'viem';
2
- import { e as PathKey, d as SwapParams, c as MintParams } from '../types-DGDlKiDe.cjs';
3
-
4
- /**
5
- * Encode extData for ReceiverConsent and MintParams.
6
- * extData = abi.encode(uint256 minAmountOut, uint256 feeInUsdt)
7
- */
8
- declare function encodeExtData(minAmountOut: bigint, feeInUsdt: bigint): Hex;
9
- /**
10
- * Decode extData back to { minAmountOut, feeInUsdt }.
11
- */
12
- declare function decodeExtData(extData: Hex): {
13
- minAmountOut: bigint;
14
- feeInUsdt: bigint;
15
- };
16
- /**
17
- * Build SwapParams and extData from a quote result for Relay.mintAndSwap.
18
- *
19
- * @param quote - Quote result containing the path
20
- * @param minAmountOut - Minimum acceptable USDT output (caller applies slippage)
21
- * @param feeInUsdt - Fixed USDT fee for the relayer
22
- * @param deadline - Swap deadline (unix timestamp)
23
- *
24
- * @deprecated Since v1.4 — the `claimAndSwap` flow is retired. The
25
- * Issuer App now performs mint-only claims; swaps happen on PAFI Web.
26
- * For PT→USDT swap batch calls on PAFI Web, use
27
- * `buildSwapWithGasDeduction()` (v1.5). This helper is kept for legacy
28
- * consumers still on v0.2.x and will be removed in v2.0.
29
- */
30
- declare function buildRelaySwapParams(params: {
31
- quote: {
32
- path: PathKey[];
33
- };
34
- minAmountOut: bigint;
35
- feeInUsdt: bigint;
36
- deadline: bigint;
37
- }): {
38
- swapParams: SwapParams;
39
- extData: Hex;
40
- };
41
- /**
42
- * Encode calldata for the legacy `Relayer.mintAndSwap()` function.
43
- *
44
- * @deprecated Since v1.4 — the `claimAndSwap` flow is retired. Use
45
- * `Relayer.mint()` instead (via `@pafi-dev/issuer` RelayService in v1.4).
46
- * Kept for legacy v0.2.x consumers; will be removed in v2.0.
47
- */
48
- declare function encodeMintAndSwap(mint: MintParams, swap: SwapParams): Hex;
49
- declare function decodeMintAndSwap(calldata: Hex): {
50
- mint: MintParams;
51
- swap: SwapParams;
52
- };
53
-
54
- interface SimulationResult {
55
- success: boolean;
56
- gasEstimate: bigint;
57
- }
58
- /**
59
- * Simulate a Relay.mintAndSwap call via eth_call (no gas spent).
60
- *
61
- * Runs the full flow — signature verification, minting, swap via PoolManager,
62
- * fee split — without submitting a transaction. If the simulation reverts,
63
- * throws a `SimulationError` with the revert reason.
64
- *
65
- * Call this AFTER both signatures are collected but BEFORE submitting the tx.
66
- *
67
- * @param client - viem PublicClient
68
- * @param relayAddress - Relay contract address
69
- * @param mint - MintParams (with real minterSig + receiverSig)
70
- * @param swap - SwapParams (path + deadline)
71
- * @param from - Address that will call mintAndSwap (the relayer)
72
- */
73
- declare function simulateMintAndSwap(client: PublicClient, relayAddress: Address, mint: MintParams, swap: SwapParams, from: Address): Promise<SimulationResult>;
74
-
75
- export { type SimulationResult, buildRelaySwapParams, decodeExtData, decodeMintAndSwap, encodeExtData, encodeMintAndSwap, simulateMintAndSwap };
@@ -1,75 +0,0 @@
1
- import { Hex, PublicClient, Address } from 'viem';
2
- import { e as PathKey, d as SwapParams, c as MintParams } from '../types-DGDlKiDe.js';
3
-
4
- /**
5
- * Encode extData for ReceiverConsent and MintParams.
6
- * extData = abi.encode(uint256 minAmountOut, uint256 feeInUsdt)
7
- */
8
- declare function encodeExtData(minAmountOut: bigint, feeInUsdt: bigint): Hex;
9
- /**
10
- * Decode extData back to { minAmountOut, feeInUsdt }.
11
- */
12
- declare function decodeExtData(extData: Hex): {
13
- minAmountOut: bigint;
14
- feeInUsdt: bigint;
15
- };
16
- /**
17
- * Build SwapParams and extData from a quote result for Relay.mintAndSwap.
18
- *
19
- * @param quote - Quote result containing the path
20
- * @param minAmountOut - Minimum acceptable USDT output (caller applies slippage)
21
- * @param feeInUsdt - Fixed USDT fee for the relayer
22
- * @param deadline - Swap deadline (unix timestamp)
23
- *
24
- * @deprecated Since v1.4 — the `claimAndSwap` flow is retired. The
25
- * Issuer App now performs mint-only claims; swaps happen on PAFI Web.
26
- * For PT→USDT swap batch calls on PAFI Web, use
27
- * `buildSwapWithGasDeduction()` (v1.5). This helper is kept for legacy
28
- * consumers still on v0.2.x and will be removed in v2.0.
29
- */
30
- declare function buildRelaySwapParams(params: {
31
- quote: {
32
- path: PathKey[];
33
- };
34
- minAmountOut: bigint;
35
- feeInUsdt: bigint;
36
- deadline: bigint;
37
- }): {
38
- swapParams: SwapParams;
39
- extData: Hex;
40
- };
41
- /**
42
- * Encode calldata for the legacy `Relayer.mintAndSwap()` function.
43
- *
44
- * @deprecated Since v1.4 — the `claimAndSwap` flow is retired. Use
45
- * `Relayer.mint()` instead (via `@pafi-dev/issuer` RelayService in v1.4).
46
- * Kept for legacy v0.2.x consumers; will be removed in v2.0.
47
- */
48
- declare function encodeMintAndSwap(mint: MintParams, swap: SwapParams): Hex;
49
- declare function decodeMintAndSwap(calldata: Hex): {
50
- mint: MintParams;
51
- swap: SwapParams;
52
- };
53
-
54
- interface SimulationResult {
55
- success: boolean;
56
- gasEstimate: bigint;
57
- }
58
- /**
59
- * Simulate a Relay.mintAndSwap call via eth_call (no gas spent).
60
- *
61
- * Runs the full flow — signature verification, minting, swap via PoolManager,
62
- * fee split — without submitting a transaction. If the simulation reverts,
63
- * throws a `SimulationError` with the revert reason.
64
- *
65
- * Call this AFTER both signatures are collected but BEFORE submitting the tx.
66
- *
67
- * @param client - viem PublicClient
68
- * @param relayAddress - Relay contract address
69
- * @param mint - MintParams (with real minterSig + receiverSig)
70
- * @param swap - SwapParams (path + deadline)
71
- * @param from - Address that will call mintAndSwap (the relayer)
72
- */
73
- declare function simulateMintAndSwap(client: PublicClient, relayAddress: Address, mint: MintParams, swap: SwapParams, from: Address): Promise<SimulationResult>;
74
-
75
- export { type SimulationResult, buildRelaySwapParams, decodeExtData, decodeMintAndSwap, encodeExtData, encodeMintAndSwap, simulateMintAndSwap };
@@ -1,19 +0,0 @@
1
- import {
2
- buildRelaySwapParams,
3
- decodeExtData,
4
- decodeMintAndSwap,
5
- encodeExtData,
6
- encodeMintAndSwap,
7
- simulateMintAndSwap
8
- } from "../chunk-X4IXUTTD.js";
9
- import "../chunk-4RYBJLF3.js";
10
- import "../chunk-P56TUGTS.js";
11
- export {
12
- buildRelaySwapParams,
13
- decodeExtData,
14
- decodeMintAndSwap,
15
- encodeExtData,
16
- encodeMintAndSwap,
17
- simulateMintAndSwap
18
- };
19
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}