@pafi-dev/core 0.18.0 → 0.20.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +55 -10
- package/dist/abi/index.cjs +14 -4
- package/dist/abi/index.cjs.map +1 -1
- package/dist/abi/index.d.cts +3846 -482
- package/dist/abi/index.d.ts +3846 -482
- package/dist/abi/index.js +15 -5
- package/dist/{chunk-KRHGFUDI.cjs → chunk-245YA3CQ.cjs} +87 -20
- package/dist/chunk-245YA3CQ.cjs.map +1 -0
- package/dist/{chunk-C7VB6WTL.cjs → chunk-2CU7ZH2A.cjs} +490 -497
- package/dist/chunk-2CU7ZH2A.cjs.map +1 -0
- package/dist/chunk-2DVM77Y2.cjs +5018 -0
- package/dist/chunk-2DVM77Y2.cjs.map +1 -0
- package/dist/{chunk-UZUDJXKE.cjs → chunk-3ZT7KTN4.cjs} +5 -3
- package/dist/chunk-3ZT7KTN4.cjs.map +1 -0
- package/dist/{chunk-H3X3FYUU.js → chunk-4VPIPVV5.js} +62 -35
- package/dist/chunk-4VPIPVV5.js.map +1 -0
- package/dist/{chunk-UCO5DXD6.js → chunk-5Y7MGN56.js} +87 -20
- package/dist/chunk-5Y7MGN56.js.map +1 -0
- package/dist/chunk-DQKCPH6B.cjs +199 -0
- package/dist/chunk-DQKCPH6B.cjs.map +1 -0
- package/dist/{chunk-4TNHRZ4X.js → chunk-K4GBOB5V.js} +4 -2
- package/dist/chunk-K4GBOB5V.js.map +1 -0
- package/dist/{chunk-LF5GIN5P.js → chunk-W2DHHR2N.js} +490 -497
- package/dist/chunk-W2DHHR2N.js.map +1 -0
- package/dist/chunk-ZQVYWMOG.js +5018 -0
- package/dist/chunk-ZQVYWMOG.js.map +1 -0
- package/dist/contract/index.cjs +8 -4
- package/dist/contract/index.cjs.map +1 -1
- package/dist/contract/index.d.cts +53 -27
- package/dist/contract/index.d.ts +53 -27
- package/dist/contract/index.js +13 -9
- package/dist/eip712/index.cjs +3 -3
- package/dist/eip712/index.d.cts +7 -1
- package/dist/eip712/index.d.ts +7 -1
- package/dist/eip712/index.js +2 -2
- package/dist/index.cjs +227 -38
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +601 -11
- package/dist/index.d.ts +601 -11
- package/dist/index.js +213 -24
- package/dist/index.js.map +1 -1
- package/dist/{types-C17pznGz.d.ts → types-Hn1zUPTt.d.cts} +46 -13
- package/dist/{types-C17pznGz.d.cts → types-Hn1zUPTt.d.ts} +46 -13
- package/package.json +1 -1
- package/dist/chunk-4TNHRZ4X.js.map +0 -1
- package/dist/chunk-C7VB6WTL.cjs.map +0 -1
- package/dist/chunk-H3X3FYUU.js.map +0 -1
- package/dist/chunk-KRHGFUDI.cjs.map +0 -1
- package/dist/chunk-LF5GIN5P.js.map +0 -1
- package/dist/chunk-TRYGIC2I.cjs +0 -172
- package/dist/chunk-TRYGIC2I.cjs.map +0 -1
- package/dist/chunk-UCO5DXD6.js.map +0 -1
- package/dist/chunk-UZUDJXKE.cjs.map +0 -1
- package/dist/chunk-XXLIIWIF.cjs +0 -711
- package/dist/chunk-XXLIIWIF.cjs.map +0 -1
- package/dist/chunk-ZJXXCG5P.js +0 -711
- package/dist/chunk-ZJXXCG5P.js.map +0 -1
package/README.md
CHANGED
|
@@ -74,7 +74,8 @@ import { getContractAddresses } from "@pafi-dev/core";
|
|
|
74
74
|
|
|
75
75
|
const addr = getContractAddresses(8453); // Base mainnet
|
|
76
76
|
// addr.issuerRegistry, addr.mintingOracle, addr.mintFeeWrapper,
|
|
77
|
-
// addr.usdt, addr.
|
|
77
|
+
// addr.usdt, addr.usdc (optional, perp-deposit + sponsor-relayer stable fee),
|
|
78
|
+
// addr.batchExecutor, addr.pafiFeeRecipient,
|
|
78
79
|
// addr.chainlinkEthUsd, addr.orderlyRelay, addr.universalRouter
|
|
79
80
|
```
|
|
80
81
|
|
|
@@ -139,7 +140,35 @@ to recipients. User receives `gross × (1 - bps/10000)` net.
|
|
|
139
140
|
|
|
140
141
|
## Operator fee quoter
|
|
141
142
|
|
|
142
|
-
Two
|
|
143
|
+
Two execution paths depending on whether your caller has access to a
|
|
144
|
+
bundler-driven estimator (recommended) or needs a self-contained quote.
|
|
145
|
+
|
|
146
|
+
### Recommended: bundler-driven via `FeeManager` (issuer SDK)
|
|
147
|
+
|
|
148
|
+
For issuer backends (`@pafi-dev/issuer`) and trading helpers
|
|
149
|
+
(`@pafi-dev/trading`), the `FeeManager` class is wired with a
|
|
150
|
+
`BundlerEstimatorClient` (typically `createPafiEstimatorClient(...)`)
|
|
151
|
+
that hits PAFI sponsor-relayer's `POST /v1/estimate-gas-fee`. Server-side
|
|
152
|
+
that endpoint calls Pimlico's `eth_estimateUserOperationGas`, caches by
|
|
153
|
+
`(scenario, contract codehash, paymaster)` in Redis (5 min TTL), applies
|
|
154
|
+
PAFI's 110% premium, and returns gas units. SDK FeeManager then converts
|
|
155
|
+
to PT/USDT via the helpers below with `premiumBps: 10_000` (no
|
|
156
|
+
double-pad). This is the path used by every `/claim/prepare` and
|
|
157
|
+
`/redeem/prepare` flow.
|
|
158
|
+
|
|
159
|
+
Same Redis key is read by sponsor-relayer's `FeeValidator` when verifying
|
|
160
|
+
the submitted UserOp — so the issuer's quote and PAFI's expected fee
|
|
161
|
+
match exactly (no formula drift; only ±5% slack for ETH-price movement
|
|
162
|
+
between quote-time and submit-time).
|
|
163
|
+
|
|
164
|
+
### Self-contained: direct helpers (FE / fallback path)
|
|
165
|
+
|
|
166
|
+
When no backend round-trip is possible (FE direct `swapDirect`, or a
|
|
167
|
+
caller without `BundlerEstimatorClient` wired), use these helpers
|
|
168
|
+
directly. They run the same math but with **hardcoded** `SCENARIO_GAS_UNITS`
|
|
169
|
+
(per-scenario table) and default `premiumBps: 12_000` (legacy 120%
|
|
170
|
+
self-contained margin — higher than bundler-driven because there's no
|
|
171
|
+
PAFI-side premium to layer on).
|
|
143
172
|
|
|
144
173
|
```ts
|
|
145
174
|
import { quoteOperatorFeeUsdt, quoteOperatorFeePt } from "@pafi-dev/core";
|
|
@@ -149,7 +178,7 @@ const gasFeeUsdt = await quoteOperatorFeeUsdt({
|
|
|
149
178
|
provider, chainId: 8453, scenario: "mint",
|
|
150
179
|
});
|
|
151
180
|
|
|
152
|
-
// PT-denominated
|
|
181
|
+
// PT-denominated. Adds V3 subgraph call for ptPerUsdt.
|
|
153
182
|
const gasFeePt = await quoteOperatorFeePt({
|
|
154
183
|
provider, chainId: 8453, scenario: "mint",
|
|
155
184
|
pointTokenAddress: POINT_TOKEN,
|
|
@@ -157,13 +186,30 @@ const gasFeePt = await quoteOperatorFeePt({
|
|
|
157
186
|
});
|
|
158
187
|
```
|
|
159
188
|
|
|
160
|
-
Both return `bigint` raw units. Fallback prices (`0.1 USDT/PT
|
|
161
|
-
3000 USD/ETH
|
|
162
|
-
|
|
163
|
-
|
|
189
|
+
Both return `bigint` raw units. Fallback prices (`0.1 USDT/PT`,
|
|
190
|
+
`3000 USD/ETH`) used when oracles unreachable + `allowStaleFallback: true`.
|
|
191
|
+
|
|
192
|
+
### Scenario table
|
|
193
|
+
|
|
194
|
+
| Scenario | `gasUnits` | Notes |
|
|
195
|
+
|---|---|---|
|
|
196
|
+
| `mint` | 500_000n | Standard mint with wrapper |
|
|
197
|
+
| `burn` | 500_000n | Standard burn |
|
|
198
|
+
| `swap` | 700_000n | Single hop; multi-hop adds headroom inside the premium |
|
|
199
|
+
| `perp-deposit` | 800_000n | Heavier — Orderly Vault interaction |
|
|
200
|
+
| `delegate` | 200_000n | EIP-7702 no-op (gratis-sponsored as one-time onboarding) |
|
|
201
|
+
| `erc20-transfer` | 200_000n | Tiny 2-call batch; bypasses bundler estimator (round-trip > savings) |
|
|
202
|
+
|
|
203
|
+
### Fee math (raw bigint, no scaling shortcuts)
|
|
204
|
+
|
|
205
|
+
```
|
|
206
|
+
withPremium = gasUnits × gasPrice × premiumBps / 10000 (wei)
|
|
207
|
+
fee_USDT_6dec = withPremium × ethPrice_8dec / 10^(18+8-6)
|
|
208
|
+
fee_PT_18dec = withPremium × ethPrice_8dec × ptPerUsdt_18dec / 10^26
|
|
209
|
+
```
|
|
164
210
|
|
|
165
|
-
|
|
166
|
-
|
|
211
|
+
`ptPerUsdt_18dec` comes from the V3 subgraph (`token0Price` /
|
|
212
|
+
`token1Price` inverted to PT-per-USDT, scaled to 18 decimals).
|
|
167
213
|
|
|
168
214
|
---
|
|
169
215
|
|
|
@@ -274,7 +320,6 @@ const authorized = await isMinter(provider, pointToken, signerAddress);
|
|
|
274
320
|
## References
|
|
275
321
|
|
|
276
322
|
- Architecture: [`ARCHITECTURE.md`](../../ARCHITECTURE.md) at SDK root
|
|
277
|
-
- Fee math: [`docs/FEE_FLOW.md`](../../../docs/FEE_FLOW.md)
|
|
278
323
|
|
|
279
324
|
## License
|
|
280
325
|
|
package/dist/abi/index.cjs
CHANGED
|
@@ -4,15 +4,20 @@
|
|
|
4
4
|
|
|
5
5
|
|
|
6
6
|
|
|
7
|
-
var _chunkXXLIIWIFcjs = require('../chunk-XXLIIWIF.cjs');
|
|
8
7
|
|
|
9
8
|
|
|
10
9
|
|
|
11
10
|
|
|
12
|
-
var _chunkC7VB6WTLcjs = require('../chunk-C7VB6WTL.cjs');
|
|
13
11
|
|
|
12
|
+
var _chunk2DVM77Y2cjs = require('../chunk-2DVM77Y2.cjs');
|
|
14
13
|
|
|
15
|
-
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
var _chunk2CU7ZH2Acjs = require('../chunk-2CU7ZH2A.cjs');
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
var _chunk245YA3CQcjs = require('../chunk-245YA3CQ.cjs');
|
|
16
21
|
require('../chunk-JEQ2X3Z6.cjs');
|
|
17
22
|
|
|
18
23
|
|
|
@@ -24,5 +29,10 @@ require('../chunk-JEQ2X3Z6.cjs');
|
|
|
24
29
|
|
|
25
30
|
|
|
26
31
|
|
|
27
|
-
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
exports.erc20Abi = _chunk2DVM77Y2cjs.erc20Abi; exports.issuerRegistryAbi = _chunk2CU7ZH2Acjs.issuerRegistryAbi; exports.mintFeeWrapperAbi = _chunk2CU7ZH2Acjs.mintFeeWrapperAbi; exports.mintingOracleAbi = _chunk2CU7ZH2Acjs.mintingOracleAbi; exports.permit2Abi = _chunk2DVM77Y2cjs.permit2Abi; exports.pointModuleCoreAbi = _chunk2DVM77Y2cjs.pointModuleCoreAbi; exports.pointTokenAbi = _chunk245YA3CQcjs.pointTokenAbi; exports.pointTokenFactoryAbi = _chunk2DVM77Y2cjs.pointTokenFactoryAbi; exports.settlementVaultAbi = _chunk2DVM77Y2cjs.settlementVaultAbi; exports.tokenRegistryAbi = _chunk2DVM77Y2cjs.tokenRegistryAbi; exports.universalRouterAbi = _chunk2DVM77Y2cjs.universalRouterAbi; exports.v3QuoterV2Abi = _chunk2DVM77Y2cjs.v3QuoterV2Abi; exports.vaultFactoryAbi = _chunk2DVM77Y2cjs.vaultFactoryAbi; exports.vaultRegistryAbi = _chunk2DVM77Y2cjs.vaultRegistryAbi;
|
|
28
38
|
//# sourceMappingURL=index.cjs.map
|
package/dist/abi/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/phitran/Pacific-Finance/pafi-backend/pafi-sdk/packages/core/dist/abi/index.cjs"],"names":[],"mappings":"AAAA;AACE;AACA;AACA;AACA;AACA;AACF,yDAA8B;AAC9B;AACE;AACA;AACA;AACF,yDAA8B;AAC9B;AACE;AACF,yDAA8B;AAC9B,iCAA8B;AAC9B;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF
|
|
1
|
+
{"version":3,"sources":["/Users/phitran/Pacific-Finance/pafi-backend/pafi-sdk/packages/core/dist/abi/index.cjs"],"names":[],"mappings":"AAAA;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,yDAA8B;AAC9B;AACE;AACA;AACA;AACF,yDAA8B;AAC9B;AACE;AACF,yDAA8B;AAC9B,iCAA8B;AAC9B;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,+1BAAC","file":"/Users/phitran/Pacific-Finance/pafi-backend/pafi-sdk/packages/core/dist/abi/index.cjs"}
|