@panoptic-eng/sdk 1.0.69 → 1.0.71

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.
@@ -24,7 +24,8 @@ const infuraChains = {
24
24
  const RPC_PROVIDER_PRESETS = {
25
25
  alchemy: {
26
26
  apiKeyEnv: () => ["ALCHEMY_API_KEY"],
27
- endpoint: (chainId, apiKey) => isAlchemyChainId(chainId) ? { url: `https://${alchemyChains[chainId]}.g.alchemy.com/v2/${apiKey}` } : void 0
27
+ endpoint: (chainId, apiKey) => isAlchemyChainId(chainId) ? { url: `https://${alchemyChains[chainId]}.g.alchemy.com/v2/${apiKey}` } : void 0,
28
+ wsEndpoint: (chainId, apiKey) => isAlchemyChainId(chainId) ? getAlchemyWsRpcUrl(chainId, apiKey) : void 0
28
29
  },
29
30
  infura: {
30
31
  apiKeyEnv: () => ["INFURA_API_KEY"],
@@ -9704,7 +9704,7 @@ function diagnoseOracleSafeMode(state, parameters, onchainLevel) {
9704
9704
  * Exported so callers can display the constant; prefer {@link applyMintBuffer}
9705
9705
  * over multiplying by it directly, which is how the rounding bug reappears.
9706
9706
  */
9707
- const MINT_BUFFER = 10666667n;
9707
+ const MINT_BUFFER = 10750000n;
9708
9708
  /** `RiskEngine.DECIMALS` — the denominator {@link MINT_BUFFER} is taken over. */
9709
9709
  const MINT_BUFFER_DENOMINATOR = 10000000n;
9710
9710
  /** The compiled-in default, matching the deployed RiskEngine. */
@@ -1,7 +1,7 @@
1
1
  import { StateViewAbi } from "./StateView-q4yMpBY6.js";
2
- import { PanopticError, getBlockMeta, getPool, getPoolMetadata, stateViewAbi, submitWrite, uniswapV3PoolAbi } from "./rates-B-eRYOTS.js";
2
+ import { PanopticError, getBlockMeta, getPool, getPoolMetadata, stateViewAbi, submitWrite, uniswapV3PoolAbi } from "./rates-DlqTkuXt.js";
3
3
  import { getLegLiquidityRange, tickToSqrtPriceX96 } from "./greeks-DNPP24KL.js";
4
- import { decodeAllLegs, decodeTokenId } from "./writes-D53wWDT-.js";
4
+ import { decodeAllLegs, decodeTokenId } from "./writes-DBu2ltcP.js";
5
5
  import { BaseError, ContractFunctionRevertedError, ExecutionRevertedError, encodeAbiParameters, encodeFunctionData, encodePacked, erc20Abi, isAddressEqual, maxUint256, toHex, zeroAddress } from "viem";
6
6
  import Decimal from "decimal.js";
7
7
 
@@ -393,6 +393,32 @@ function getLpFundingDeposit({ funding, availableInQuote, minimumInQuote = 0n, q
393
393
  amount1: quoteTokenIndex === 1 ? quoteAmount : ceilDiv(assetValue * priceSquared, Q96$1 * Q96$1)
394
394
  };
395
395
  }
396
+ /**
397
+ * Largest raw size whose range principal needs at most `amount` of the given token.
398
+ * Undefined when the price sits outside every range on that token's side, so no
399
+ * amount of that token buys any liquidity.
400
+ */
401
+ function getLpPositionSizeForTokenAmount(params) {
402
+ const { tokenIndex, amount,...funding } = params;
403
+ if (amount < 0n) throw new Error("Invalid LP token amount");
404
+ if (amount === 0n) return 0n;
405
+ const principalFor = (positionSize) => {
406
+ const { principal } = getLpPositionFunding({
407
+ ...funding,
408
+ positionSize
409
+ });
410
+ return tokenIndex === 0 ? principal.amount0 : principal.amount1;
411
+ };
412
+ let low = 0n;
413
+ let high = (1n << 128n) - 1n;
414
+ if (principalFor(high) === 0n) return void 0;
415
+ while (low < high) {
416
+ const mid = (low + high + 1n) / 2n;
417
+ if (principalFor(mid) <= amount) low = mid;
418
+ else high = mid - 1n;
419
+ }
420
+ return low;
421
+ }
396
422
  /** Largest raw size funded by available collateral, including native-token rounding. */
397
423
  function getMaxLpPositionSize(params) {
398
424
  if (params.minimumRequirement && (params.minimumRequirement.referenceSize <= 0n || params.minimumRequirement.requiredInQuote < 0n)) throw new Error("Invalid reference requirement");
@@ -2198,4 +2224,4 @@ async function swapExactOutViaRouterAndWait(params) {
2198
2224
  }
2199
2225
 
2200
2226
  //#endregion
2201
- export { AmountExceedsUint128Error, InvalidSwapTokenError, MSG_SENDER, MissingSweepRecipientError, PERMIT2_ADDRESS, QuoterUnavailableError, SETTLE_ALL, SWAP_EXACT_IN_SINGLE, SWAP_EXACT_OUT_SINGLE, SWEEP, TAKE_ALL, UNISWAP_V3_ADDRESSES, UNISWAP_V4_ADDRESSES, UnsupportedChainError, V3_SWAP_EXACT_IN, V3_SWAP_EXACT_OUT, V4_SWAP, approveErc20ForPermit2, approveErc20ForPermit2AndWait, approveRouterViaPermit2, approveRouterViaPermit2AndWait, buildV3ExactOutSwapExecuteArgs, buildV3ExactOutSwapExecuteCalldata, buildV3SwapExecuteArgs, buildV3SwapExecuteCalldata, buildV4ExactOutSwapExecuteArgs, buildV4ExactOutSwapExecuteCalldata, buildV4SwapExecuteArgs, buildV4SwapExecuteCalldata, calculatePositionVolatilityMetrics, checkRouterApproval, encodeV3Path, feesFromFeeGrowthDelta, getLpDepositAmounts, getLpDepositBreakdown, getLpFundingDeposit, getLpPositionFunding, getMaxLpPositionSize, getPriceHistory, getUnhedgedLpRanges, getUniswapV3Addresses, getUniswapV3LpPositionState, getUniswapV4Addresses, getUniswapV4LpPositionState, prepareLiquidityGamma, preparePositionGamma, quoteSwapExactInViaRouter, quoteSwapExactInViaV3Router, quoteSwapExactOutViaRouter, quoteSwapExactOutViaV3Router, quoteV3ExactIn, quoteV3ExactOut, quoteV4ExactInByPoolKey, resolveSwapRoute, resolveV3SwapRoute, swapExactInViaRouter, swapExactInViaRouterAndWait, swapExactInViaV3Router, swapExactOutViaRouter, swapExactOutViaRouterAndWait, swapExactOutViaV3Router, valuePositionAccrual };
2227
+ export { AmountExceedsUint128Error, InvalidSwapTokenError, MSG_SENDER, MissingSweepRecipientError, PERMIT2_ADDRESS, QuoterUnavailableError, SETTLE_ALL, SWAP_EXACT_IN_SINGLE, SWAP_EXACT_OUT_SINGLE, SWEEP, TAKE_ALL, UNISWAP_V3_ADDRESSES, UNISWAP_V4_ADDRESSES, UnsupportedChainError, V3_SWAP_EXACT_IN, V3_SWAP_EXACT_OUT, V4_SWAP, approveErc20ForPermit2, approveErc20ForPermit2AndWait, approveRouterViaPermit2, approveRouterViaPermit2AndWait, buildV3ExactOutSwapExecuteArgs, buildV3ExactOutSwapExecuteCalldata, buildV3SwapExecuteArgs, buildV3SwapExecuteCalldata, buildV4ExactOutSwapExecuteArgs, buildV4ExactOutSwapExecuteCalldata, buildV4SwapExecuteArgs, buildV4SwapExecuteCalldata, calculatePositionVolatilityMetrics, checkRouterApproval, encodeV3Path, feesFromFeeGrowthDelta, getLpDepositAmounts, getLpDepositBreakdown, getLpFundingDeposit, getLpPositionFunding, getLpPositionSizeForTokenAmount, getMaxLpPositionSize, getPriceHistory, getUnhedgedLpRanges, getUniswapV3Addresses, getUniswapV3LpPositionState, getUniswapV4Addresses, getUniswapV4LpPositionState, prepareLiquidityGamma, preparePositionGamma, quoteSwapExactInViaRouter, quoteSwapExactInViaV3Router, quoteSwapExactOutViaRouter, quoteSwapExactOutViaV3Router, quoteV3ExactIn, quoteV3ExactOut, quoteV4ExactInByPoolKey, resolveSwapRoute, resolveV3SwapRoute, swapExactInViaRouter, swapExactInViaRouterAndWait, swapExactInViaV3Router, swapExactOutViaRouter, swapExactOutViaRouterAndWait, swapExactOutViaV3Router, valuePositionAccrual };
@@ -21,6 +21,8 @@ type RpcProviderPreset = {
21
21
  url: string;
22
22
  headers?: Record<string, string>;
23
23
  } | undefined;
24
+ /** Websocket endpoint for `chainId`, or undefined when the vendor does not serve one. */
25
+ wsEndpoint?: (chainId: number, apiKey: string) => string | undefined;
24
26
  };
25
27
  declare const alchemyChains: {
26
28
  readonly 1: "eth-mainnet";
@@ -74,6 +76,12 @@ declare const DEFAULT_RPC_PROVIDERS: readonly RpcProviderName[];
74
76
  * Blank values count as unset. Throws when nothing resolves.
75
77
  */
76
78
  declare function resolveRpcEndpoints(chainId: number, env: RpcEnv, options?: ResolveRpcEndpointsOptions): RpcEndpoint[];
79
+ /**
80
+ * Websocket RPC URL for `chainId`: `RPC_WS_URL_<chainId>`, else the first preset
81
+ * in `RPC_PROVIDERS` (or the defaults) that has an API key and serves websockets.
82
+ * Returns undefined when nothing is configured; throws on a non-ws(s) URL.
83
+ */
84
+ declare function resolveRpcWsUrl(chainId: number, env: RpcEnv): string | undefined;
77
85
 
78
86
  //#endregion
79
87
  //#region src/rpc/transport.d.ts
@@ -111,5 +119,5 @@ declare function rpcForkArgs(endpoints: readonly RpcEndpoint[]): {
111
119
  declare function ponderRpc(endpoints: readonly RpcEndpoint[]): string | string[] | Transport;
112
120
 
113
121
  //#endregion
114
- export { AlchemyChainId, DEFAULT_RPC_PROVIDERS, RPC_PROVIDER_PRESETS, ResolveRpcEndpointsOptions, RpcEndpoint, RpcEnv, RpcHttpConfig, RpcProviderName, RpcProviderPreset, RpcTransportOptions, getAlchemyRpcUrl, getAlchemyWsRpcUrl, ponderRpc, redactRpcSecrets, resolveRpcEndpoints, rpcForkArgs, rpcHttp, rpcTransport };
122
+ export { AlchemyChainId, DEFAULT_RPC_PROVIDERS, RPC_PROVIDER_PRESETS, ResolveRpcEndpointsOptions, RpcEndpoint, RpcEnv, RpcHttpConfig, RpcProviderName, RpcProviderPreset, RpcTransportOptions, getAlchemyRpcUrl, getAlchemyWsRpcUrl, ponderRpc, redactRpcSecrets, resolveRpcEndpoints, resolveRpcWsUrl, rpcForkArgs, rpcHttp, rpcTransport };
115
123
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","names":["RpcProviderPreset","Record","alchemyChains","AlchemyChainId","RpcProviderName","RPC_PROVIDER_PRESETS","Readonly","isRpcProviderName","getAlchemyRpcUrl","getAlchemyWsRpcUrl","redactRpcSecrets","RpcProviderName","RpcEnv","Record","Readonly","RpcEndpoint","ResolveRpcEndpointsOptions","DEFAULT_RPC_PROVIDERS","resolveRpcEndpoints","viem1","HttpTransportConfig","Transport","RpcEndpoint","RpcHttpConfig","Omit","rpcHttp","viem0","RpcSchema","HttpTransport","RpcTransportOptions","rpcTransport","failover","requestsPerSecond","rpcForkArgs","ponderRpc"],"sources":["../../src/rpc/providers.d.ts","../../src/rpc/redact.d.ts","../../src/rpc/resolve.d.ts","../../src/rpc/transport.d.ts"],"sourcesContent":null,"mappings":";;;;;;;;;;;;;;;KAKYA,iBAAAA;;;;;IAAAA,GAAAA,EAAAA,MAAAA;IASEE,OAAAA,CAAAA,EAHIW,MAYjB,CAAA,MAAA,EAAA,MAAA,CAAA;EACWV,CAAAA,GAAAA,SAAAA;AACZ,CAAA;AACA,cAZcD,aAYiF,EAAA;EAAA,SAAA,CAAA,EAAA,aAAA;EAAA,SAApCS,GAAAA,EAAAA,iBAAAA;EAAe,SAAEX,KAAAA,EAAAA,aAAAA;EAAiB,SAAzCa,IAAAA,EAAAA,cAAAA;EAAM,SAAfC,EAAAA,EAAAA,aAAAA;EAAQ,SAAA,GAAA,EAAA,kBAAA;EAE3BN,SAAAA,IAAAA,EAAAA,mBAA0BL;EAC1BM,SAAAA,QAAAA,EAAAA,aAA4BN;;KALxCA,cAAAA,gBAA8BD;KAC9BS,eAAAA;cACSN,sBAAsBS,SAASD,OAAOF,iBAAiBX;iBAEpDQ,gBAAAA,UAA0BL;iBAC1BM,kBAAAA,UAA4BN;;;;;;;iBCxB5BO,gBAAAA;;;;KCJZE,MAAAA,GAASE,SAASD;KAClBS,WAAAA;;UAEAX;;;WAGCE;;KAEDG,0BAAAA;EFJAhB;EASEE,YAAAA,CAAAA,EAAAA,SASb,MAAA,EAAA;EACWC;EACAQ,gBAAAA,CAAAA,EAAe,SEZKA,eFYL,EAAA;AAC3B,CAAA;AAA+F,cEX1EM,qBFW0E,EAAA,SEX1CN,eFW0C,EAAA;;;;;AAA5C;AAEnD;AACA;;;;;iBEFwBO,mBAAAA,uBAA0CN,kBAAkBI,6BAA6BM;;;;KCzBrGC,aAAAA,GAAgBC,KAAKJ;;iBAETK,OAAAA,WAAkBH,sBAAsBC,gBAAqEJ,KAAAA,CAAtCS,cAAlBF,KAAAA,CAA+CC,SAAAA;KAChHE,mBAAAA,GAAsBN;;;;;AHAlC;EAScrB,QAAAA,CAAAA,EAAAA,OASb;EACWC;EACAQ,iBAAAA,CAAe,EAAA,MAAA;AAC3B,CAAA;;;;;AAA2CG,iBGPnBgB,YAAAA,CHOmBhB,SAAAA,EAAAA,SGPcQ,WHOdR,EAAAA,EAAAA;EAAAA,QAAAA;EAAAA,iBAAAA;EAAAA,GAAAA;AAAAA,CAAAA,CAAAA,EGP0Ee,mBHO1Ef,CAAAA,EGPgGO,SHOhGP;AAAQ;AAE3BN,iBGPAyB,WAAAA,CHO0B9B,SAAAA,EAAc,SGPRmB,WHOQ,EAAA,CAAA,EAAA;EACxCb,OAAAA,EAAAA,MAAAA;;;;;;;iBGAAyB,SAAAA,qBAA8BZ,oCAAoCD"}
1
+ {"version":3,"file":"index.d.ts","names":["RpcProviderPreset","Record","alchemyChains","AlchemyChainId","RpcProviderName","RPC_PROVIDER_PRESETS","Readonly","isRpcProviderName","getAlchemyRpcUrl","getAlchemyWsRpcUrl","redactRpcSecrets","RpcProviderName","RpcEnv","Record","Readonly","RpcEndpoint","ResolveRpcEndpointsOptions","DEFAULT_RPC_PROVIDERS","resolveRpcEndpoints","resolveRpcWsUrl","viem1","HttpTransportConfig","Transport","RpcEndpoint","RpcHttpConfig","Omit","rpcHttp","viem0","RpcSchema","HttpTransport","RpcTransportOptions","rpcTransport","failover","requestsPerSecond","rpcForkArgs","ponderRpc"],"sources":["../../src/rpc/providers.d.ts","../../src/rpc/redact.d.ts","../../src/rpc/resolve.d.ts","../../src/rpc/transport.d.ts"],"sourcesContent":null,"mappings":";;;;;;;;;;;;;;;KAKYA,iBAAAA;;;;;IAAAA,GAAAA,EAAAA,MAAAA;IAWEE,OAAAA,CAAAA,EALIW,MAcjB,CAAA,MAAA,EAAA,MAAA,CAAA;EACWV,CAAAA,GAAAA,SAAAA;EACAQ;EACSN,UAAAA,CAAAA,EAAAA,CAAAA,OAAAA,EAA0E,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,GAAA,MAAA,GAAA,SAAA;CAAA;cAZjFH,aAY6CS,EAAAA;EAAe,SAAEX,CAAAA,EAAAA,aAAAA;EAAiB,SAAzCa,GAAAA,EAAAA,iBAAAA;EAAM,SAAfC,KAAAA,EAAAA,aAAAA;EAAQ,SAAA,IAAA,EAAA,cAAA;EAE3BN,SAAAA,EAAAA,EAAAA,aAAgB;EAChBC,SAAAA,GAAAA,EAAAA,kBAA4BN;;;;KALxCA,cAAAA,gBAA8BD;KAC9BS,eAAAA;cACSN,sBAAsBS,SAASD,OAAOF,iBAAiBX;iBAEpDQ,gBAAAA,UAA0BL;ACzB1BO,iBD0BAD,kBAAAA,CC1BgB,OAAA,ED0BYN,cC1BZ,EAAA,aAAA,EAAA,MAAA,CAAA,EAAA,MAAA,CAAA;;;;;;;iBAAhBO,gBAAAA;;;;KCJZE,MAAAA,GAASE,SAASD;KAClBU,WAAAA;;UAEAZ;;;WAGCE;;KAEDG,0BAAAA;EFJAhB;EAWEE,YAAAA,CAAAA,EAAAA,SASb,MAAA,EAAA;EACWC;EACAQ,gBAAAA,CAAAA,EAAe,SEdKA,eFcL,EAAA;AAC3B,CAAA;AAA+F,cEb1EM,qBFa0E,EAAA,SEb1CN,eFa0C,EAAA;;;;;AAA5C;AAEnD;AACA;;;;;iBEJwBO,mBAAAA,uBAA0CN,kBAAkBI,6BAA6BO;;;;ADtBjH;;iBC4BwBJ,eAAAA,uBAAsCP;;;;KC/BlDY,aAAAA,GAAgBC,KAAKJ;;iBAETK,OAAAA,WAAkBH,sBAAsBC,gBAAqEJ,KAAAA,CAAtCS,cAAlBF,KAAAA,CAA+CC,SAAAA;KAChHE,mBAAAA,GAAsBN;;;;;AHAlC;EAWctB,QAAAA,CAAAA,EAAAA,OASb;EACWC;EACAQ,iBAAAA,CAAe,EAAA,MAAA;AAC3B,CAAA;;;;;AAA2CG,iBGTnBiB,YAAAA,CHSmBjB,SAAAA,EAAAA,SGTcS,WHSdT,EAAAA,EAAAA;EAAAA,QAAAA;EAAAA,iBAAAA;EAAAA,GAAAA;AAAAA,CAAAA,CAAAA,EGT0EgB,mBHS1EhB,CAAAA,EGTgGQ,SHShGR;AAAQ;AAE3BN,iBGTA0B,WAAAA,CHS0B/B,SAAAA,EAAAA,SGTMoB,WHSQ,EAAA,CAAA,EAAA;EACxCd,OAAAA,EAAAA,MAAAA;;;;;;;iBGFA0B,SAAAA,qBAA8BZ,oCAAoCD"}
package/dist/rpc/index.js CHANGED
@@ -26,7 +26,8 @@ const infuraChains = {
26
26
  const RPC_PROVIDER_PRESETS = {
27
27
  alchemy: {
28
28
  apiKeyEnv: () => ["ALCHEMY_API_KEY"],
29
- endpoint: (chainId, apiKey) => isAlchemyChainId(chainId) ? { url: `https://${alchemyChains[chainId]}.g.alchemy.com/v2/${apiKey}` } : void 0
29
+ endpoint: (chainId, apiKey) => isAlchemyChainId(chainId) ? { url: `https://${alchemyChains[chainId]}.g.alchemy.com/v2/${apiKey}` } : void 0,
30
+ wsEndpoint: (chainId, apiKey) => isAlchemyChainId(chainId) ? getAlchemyWsRpcUrl(chainId, apiKey) : void 0
30
31
  },
31
32
  infura: {
32
33
  apiKeyEnv: () => ["INFURA_API_KEY"],
@@ -106,6 +107,14 @@ function isHttpUrl(value) {
106
107
  return false;
107
108
  }
108
109
  }
110
+ function isWsUrl(value) {
111
+ try {
112
+ const { protocol } = new URL(value);
113
+ return protocol === "ws:" || protocol === "wss:";
114
+ } catch {
115
+ return false;
116
+ }
117
+ }
109
118
  function presetApiKey(name, chainId, env) {
110
119
  for (const envName of RPC_PROVIDER_PRESETS[name].apiKeyEnv(chainId)) {
111
120
  const key = present(env[envName]);
@@ -194,6 +203,29 @@ function resolveRpcEndpoints(chainId, env, options = {}) {
194
203
  ...keyEnv
195
204
  ].join(", ")}`);
196
205
  }
206
+ /**
207
+ * Websocket RPC URL for `chainId`: `RPC_WS_URL_<chainId>`, else the first preset
208
+ * in `RPC_PROVIDERS` (or the defaults) that has an API key and serves websockets.
209
+ * Returns undefined when nothing is configured; throws on a non-ws(s) URL.
210
+ */
211
+ function resolveRpcWsUrl(chainId, env) {
212
+ const envName = `RPC_WS_URL_${chainId}`;
213
+ const explicit = present(env[envName]);
214
+ if (explicit !== void 0) {
215
+ if (!isWsUrl(explicit)) throw new Error(`${envName} must be a ws(s) URL`);
216
+ return explicit;
217
+ }
218
+ const providers = present(env.RPC_PROVIDERS) ? splitList(env.RPC_PROVIDERS) : DEFAULT_RPC_PROVIDERS;
219
+ for (const name of providers) {
220
+ if (!isRpcProviderName(name)) continue;
221
+ const wsEndpoint = RPC_PROVIDER_PRESETS[name].wsEndpoint;
222
+ const apiKey = presetApiKey(name, chainId, env);
223
+ if (wsEndpoint === void 0 || apiKey === void 0) continue;
224
+ const url = wsEndpoint(chainId, apiKey);
225
+ if (url !== void 0) return url;
226
+ }
227
+ return void 0;
228
+ }
197
229
 
198
230
  //#endregion
199
231
  //#region src/rpc/rateLimit.ts
@@ -266,5 +298,5 @@ function ponderRpc(endpoints) {
266
298
  }
267
299
 
268
300
  //#endregion
269
- export { DEFAULT_RPC_PROVIDERS, RPC_PROVIDER_PRESETS, getAlchemyRpcUrl, getAlchemyWsRpcUrl, ponderRpc, redactRpcSecrets, resolveRpcEndpoints, rpcForkArgs, rpcHttp, rpcTransport };
301
+ export { DEFAULT_RPC_PROVIDERS, RPC_PROVIDER_PRESETS, getAlchemyRpcUrl, getAlchemyWsRpcUrl, ponderRpc, redactRpcSecrets, resolveRpcEndpoints, resolveRpcWsUrl, rpcForkArgs, rpcHttp, rpcTransport };
270
302
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["chainId: number","infuraChains: Record<number, string>","RPC_PROVIDER_PRESETS: Readonly<Record<RpcProviderName, RpcProviderPreset>>","name: string","chainId: AlchemyChainId","alchemyApiKey: string","raw: string","text: string | undefined","DEFAULT_RPC_PROVIDERS: readonly RpcProviderName[]","value: string | undefined","envName: string","headers: Record<string, string>","value: string","name: RpcProviderName","chainId: number","env: RpcEnv","legacyUrlEnv: readonly string[]","providers: readonly string[]","endpoints: RpcEndpoint[]","options: ResolveRpcEndpointsOptions","requestsPerSecond: number","fetchFn: NonNullable<HttpTransportConfig['fetchFn']>","endpoint: RpcEndpoint","config: RpcHttpConfig","endpoints: readonly RpcEndpoint[]"],"sources":["../../src/rpc/providers.ts","../../src/rpc/redact.ts","../../src/rpc/resolve.ts","../../src/rpc/rateLimit.ts","../../src/rpc/transport.ts"],"sourcesContent":["/**\n * The only place that knows RPC vendor URL formats and credentials. Supporting\n * a new vendor means adding one preset here; services select it through env\n * (see `resolveRpcEndpoints`).\n */\n\nexport type RpcProviderPreset = {\n /** Env vars holding the API key for `chainId`, highest precedence first. */\n apiKeyEnv: (chainId: number) => readonly string[]\n /** Endpoint for `chainId`, or undefined when the vendor does not serve it. */\n endpoint: (\n chainId: number,\n apiKey: string,\n ) => { url: string; headers?: Record<string, string> } | undefined\n}\n\nconst alchemyChains = {\n 1: 'eth-mainnet',\n 137: 'polygon-mainnet',\n 42161: 'arb-mainnet',\n 8453: 'base-mainnet',\n 10: 'opt-mainnet',\n 130: 'unichain-mainnet',\n 4663: 'robinhood-mainnet',\n 11155111: 'eth-sepolia',\n} as const\n\nexport type AlchemyChainId = keyof typeof alchemyChains\n\nfunction isAlchemyChainId(chainId: number): chainId is AlchemyChainId {\n return chainId in alchemyChains\n}\n\nconst infuraChains: Record<number, string> = {\n 1: 'mainnet',\n 10: 'optimism-mainnet',\n 137: 'polygon-mainnet',\n 8453: 'base-mainnet',\n 42161: 'arbitrum-mainnet',\n 43114: 'avalanche-mainnet',\n 11155111: 'sepolia',\n}\n\nexport type RpcProviderName = 'alchemy' | 'infura' | 'uniblock'\n\nexport const RPC_PROVIDER_PRESETS: Readonly<Record<RpcProviderName, RpcProviderPreset>> = {\n alchemy: {\n apiKeyEnv: () => ['ALCHEMY_API_KEY'],\n endpoint: (chainId, apiKey) =>\n isAlchemyChainId(chainId)\n ? { url: `https://${alchemyChains[chainId]}.g.alchemy.com/v2/${apiKey}` }\n : undefined,\n },\n infura: {\n apiKeyEnv: () => ['INFURA_API_KEY'],\n endpoint: (chainId, apiKey) =>\n infuraChains[chainId]\n ? { url: `https://${infuraChains[chainId]}.infura.io/v3/${apiKey}` }\n : undefined,\n },\n uniblock: {\n apiKeyEnv: () => ['UNIBLOCK_API_KEY'],\n // Uniblock accepts the key only as a header, and serves keyless requests\n // from an anonymous tier — callers must never send it without one.\n endpoint: (chainId, apiKey) => ({\n url: `https://api.uniblock.dev/uni/v1/json-rpc?chainId=${chainId}`,\n headers: { 'x-api-key': apiKey },\n }),\n },\n}\n\nexport function isRpcProviderName(name: string): name is RpcProviderName {\n return Object.prototype.hasOwnProperty.call(RPC_PROVIDER_PRESETS, name)\n}\n\nexport function getAlchemyRpcUrl(chainId: AlchemyChainId, alchemyApiKey: string): string {\n if (alchemyChains[chainId]) {\n return `https://${alchemyChains[chainId]}.g.alchemy.com/v2/${alchemyApiKey}`\n } else {\n throw new Error(`Unsupported chainId: ${chainId}`)\n }\n}\n\nexport function getAlchemyWsRpcUrl(chainId: AlchemyChainId, alchemyApiKey: string): string {\n if (alchemyChains[chainId]) {\n return `wss://${alchemyChains[chainId]}.g.alchemy.com/v2/${alchemyApiKey}`\n } else {\n throw new Error(`Unsupported chainId: ${chainId}`)\n }\n}\n","const URL_PATTERN = /\\b(?:https?|wss?):\\/\\/[^\\s\"'<>)]+/giu\n// Unquoted authentication values can contain commas and quotes, so mask through the line boundary.\nconst CREDENTIAL_HEADER_PATTERN =\n /\\b(x-api-key|authorization|proxy-authorization)([\"']?\\s*[:=]\\s*)(?:([\"'])(?:\\\\.|(?!\\3)[^\\\\\\r\\n])*\\3|[^\\r\\n]+)/giu\n\nfunction redactUrl(raw: string): string {\n try {\n const url = new URL(raw)\n const port = url.port ? `:${url.port}` : ''\n return `${url.protocol}//${url.hostname}${port}/<redacted>`\n } catch {\n return '<redacted-url>'\n }\n}\n\n/**\n * Strip RPC credentials from text before it is logged or shown. Providers\n * embed keys in the URL path or query, so every URL keeps only its origin;\n * credential header values are masked too.\n */\nexport function redactRpcSecrets(text: string | undefined): string {\n if (!text) return ''\n return text\n .replace(CREDENTIAL_HEADER_PATTERN, '$1$2$3<redacted>$3')\n .replace(URL_PATTERN, redactUrl)\n}\n","import { type RpcProviderName, isRpcProviderName, RPC_PROVIDER_PRESETS } from './providers'\n\nexport type RpcEnv = Readonly<Record<string, string | undefined>>\n\nexport type RpcEndpoint = {\n /** Preset name, or `'url'` for an explicit URL entry. */\n source: RpcProviderName | 'url'\n url: string\n /** Credentials that must accompany every request to `url`, and only to `url`. */\n headers: Record<string, string>\n}\n\nexport type ResolveRpcEndpointsOptions = {\n /** Service-specific URL variables honoured when `RPC_URL_<chainId>` is unset, in order. */\n legacyUrlEnv?: readonly string[]\n /** Presets tried, in order, when no URL is configured. Overridden by `RPC_PROVIDERS`. */\n defaultProviders?: readonly RpcProviderName[]\n}\n\nexport const DEFAULT_RPC_PROVIDERS: readonly RpcProviderName[] = ['alchemy', 'uniblock']\n\nfunction present(value: string | undefined): string | undefined {\n const trimmed = value?.trim()\n return trimmed ? trimmed : undefined\n}\n\nfunction splitList(value: string | undefined): string[] {\n return (value ?? '')\n .split(',')\n .map((entry) => entry.trim())\n .filter((entry) => entry !== '')\n}\n\nfunction parseHeaders(value: string | undefined, envName: string): Record<string, string> {\n const headers: Record<string, string> = {}\n for (const pair of splitHeaderPairs(value)) {\n const separator = pair.indexOf(':')\n const name = pair.slice(0, separator).trim()\n if (separator <= 0 || name === '') {\n throw new Error(`${envName} must be \"Name: value\" pairs separated by \";\"`)\n }\n headers[name] = pair.slice(separator + 1).trim()\n }\n return headers\n}\n\nfunction splitHeaderPairs(value: string | undefined): string[] {\n return (value ?? '')\n .split(';')\n .map((pair) => pair.trim())\n .filter((pair) => pair !== '')\n}\n\nfunction isHttpUrl(value: string): boolean {\n try {\n const { protocol } = new URL(value)\n return protocol === 'http:' || protocol === 'https:'\n } catch {\n return false\n }\n}\n\nfunction presetApiKey(name: RpcProviderName, chainId: number, env: RpcEnv) {\n for (const envName of RPC_PROVIDER_PRESETS[name].apiKeyEnv(chainId)) {\n const key = present(env[envName])\n if (key !== undefined) return key\n }\n return undefined\n}\n\nfunction presetEndpoint(\n name: RpcProviderName,\n chainId: number,\n env: RpcEnv,\n): RpcEndpoint | undefined {\n const apiKey = presetApiKey(name, chainId, env)\n if (apiKey === undefined) return undefined\n const endpoint = RPC_PROVIDER_PRESETS[name].endpoint(chainId, apiKey)\n return endpoint && { source: name, url: endpoint.url, headers: endpoint.headers ?? {} }\n}\n\nfunction explicitEndpoints(chainId: number, env: RpcEnv): RpcEndpoint[] {\n const listEnv = `RPC_URL_${chainId}`\n return splitList(env[listEnv]).map((entry, index) => {\n if (isHttpUrl(entry)) {\n const headersEnv = `RPC_HEADERS_${chainId}_${index}`\n return { source: 'url', url: entry, headers: parseHeaders(env[headersEnv], headersEnv) }\n }\n if (!isRpcProviderName(entry)) {\n throw new Error(`${listEnv} entry \"${entry}\" is neither an http(s) URL nor a known provider`)\n }\n const endpoint = presetEndpoint(entry, chainId, env)\n if (endpoint === undefined) {\n const keyEnv = RPC_PROVIDER_PRESETS[entry].apiKeyEnv(chainId).join(' or ')\n throw new Error(\n `${listEnv} lists \"${entry}\", which needs ${keyEnv} and must serve chain ${chainId}`,\n )\n }\n return endpoint\n })\n}\n\nfunction legacyEndpoints(env: RpcEnv, legacyUrlEnv: readonly string[]): RpcEndpoint[] {\n return legacyUrlEnv.flatMap((envName) =>\n splitList(env[envName]).map((url): RpcEndpoint => ({ source: 'url', url, headers: {} })),\n )\n}\n\nfunction firstPresetEndpoint(\n chainId: number,\n env: RpcEnv,\n providers: readonly string[],\n): RpcEndpoint | undefined {\n for (const name of providers) {\n if (!isRpcProviderName(name)) {\n throw new Error(`RPC_PROVIDERS entry \"${name}\" is not a known provider`)\n }\n const endpoint = presetEndpoint(name, chainId, env)\n if (endpoint !== undefined) return endpoint\n }\n return undefined\n}\n\nfunction dedupe(endpoints: RpcEndpoint[]): RpcEndpoint[] {\n const seen = new Set<string>()\n return endpoints.filter((endpoint) => {\n const key = `${endpoint.url}\\n${JSON.stringify(endpoint.headers)}`\n if (seen.has(key)) return false\n seen.add(key)\n return true\n })\n}\n\n/**\n * Ordered RPC endpoints for `chainId` (primary first, the rest failover):\n *\n * 1. `RPC_URL_<chainId>` — comma-separated URLs and/or preset names; entry `n`\n * gets headers from `RPC_HEADERS_<chainId>_<n>` (\"Name: value;Name: value\").\n * 2. Otherwise the service's legacy URL variables (`legacyUrlEnv`).\n * 3. Otherwise the first preset in `RPC_PROVIDERS` (or `defaultProviders`)\n * that has an API key and serves the chain.\n *\n * Blank values count as unset. Throws when nothing resolves.\n */\nexport function resolveRpcEndpoints(\n chainId: number,\n env: RpcEnv,\n options: ResolveRpcEndpointsOptions = {},\n): RpcEndpoint[] {\n const explicit = explicitEndpoints(chainId, env)\n if (explicit.length > 0) return dedupe(explicit)\n\n const legacyUrlEnv = options.legacyUrlEnv ?? []\n const legacy = legacyEndpoints(env, legacyUrlEnv)\n if (legacy.length > 0) return dedupe(legacy)\n\n const providers = present(env.RPC_PROVIDERS)\n ? splitList(env.RPC_PROVIDERS)\n : (options.defaultProviders ?? DEFAULT_RPC_PROVIDERS)\n const preset = firstPresetEndpoint(chainId, env, providers)\n if (preset !== undefined) return [preset]\n\n const keyEnv = [\n ...new Set(\n providers.flatMap((name) =>\n isRpcProviderName(name) ? RPC_PROVIDER_PRESETS[name].apiKeyEnv(chainId) : [],\n ),\n ),\n ]\n throw new Error(\n `No RPC configured for chain ${chainId}: set ${[`RPC_URL_${chainId}`, ...legacyUrlEnv, ...keyEnv].join(', ')}`,\n )\n}\n","import type { HttpTransportConfig } from 'viem'\n\n/** Limits HTTP attempts, including retries, across clients sharing this fetch function. */\nexport function rateLimitedRpcFetch(\n requestsPerSecond: number,\n fetchFn: NonNullable<HttpTransportConfig['fetchFn']> = fetch,\n): NonNullable<HttpTransportConfig['fetchFn']> {\n if (!Number.isFinite(requestsPerSecond) || requestsPerSecond <= 0) {\n throw new Error('RPC requestsPerSecond must be positive and finite')\n }\n const intervalMs = Math.ceil(1_000 / requestsPerSecond)\n let nextStart = 0\n let tail = Promise.resolve()\n\n return (input, init) => {\n const signal = init?.signal ?? (input instanceof Request ? input.signal : undefined)\n const request = tail.then(async () => {\n signal?.throwIfAborted()\n const delay = nextStart - Date.now()\n if (delay > 0) await new Promise<void>((resolve) => setTimeout(resolve, delay))\n signal?.throwIfAborted()\n nextStart = Date.now() + intervalMs\n return fetchFn(input, init)\n })\n tail = request.then(\n () => undefined,\n () => undefined,\n )\n return request\n }\n}\n","import { type HttpTransportConfig, type Transport, fallback, http } from 'viem'\n\nimport { rateLimitedRpcFetch } from './rateLimit'\nimport type { RpcEndpoint } from './resolve'\n\nexport type RpcHttpConfig = Omit<HttpTransportConfig, 'fetchOptions'>\n\n/** viem HTTP transport for one endpoint, carrying its credential headers. */\nexport function rpcHttp(endpoint: RpcEndpoint, config: RpcHttpConfig = {}) {\n return http(endpoint.url, { ...config, fetchOptions: { headers: endpoint.headers } })\n}\n\nexport type RpcTransportOptions = RpcHttpConfig & {\n /**\n * Fail over to later endpoints. Disable for clients that submit\n * transactions: a tx broadcast through one provider and retried through\n * another surfaces as \"already known\" / \"nonce too low\" although it was sent.\n */\n failover?: boolean\n /** Shared HTTP attempt limit, including retries and failover. Disables HTTP batching. */\n requestsPerSecond?: number\n}\n\n/**\n * Transport over resolved endpoints: plain HTTP for one endpoint, otherwise an\n * unranked viem `fallback` in configured order.\n */\nexport function rpcTransport(\n endpoints: readonly RpcEndpoint[],\n { failover = true, requestsPerSecond, ...config }: RpcTransportOptions = {},\n): Transport {\n const httpConfig =\n requestsPerSecond === undefined\n ? config\n : {\n ...config,\n batch: false as const,\n fetchFn: rateLimitedRpcFetch(requestsPerSecond, config.fetchFn),\n }\n const [primary, ...rest] = endpoints\n if (primary === undefined) throw new Error('rpcTransport needs at least one endpoint')\n if (!failover || rest.length === 0) return rpcHttp(primary, httpConfig)\n return fallback(\n endpoints.map((endpoint) => rpcHttp(endpoint, httpConfig)),\n { rank: false },\n )\n}\n\n/** anvil fork arguments for the primary endpoint (`--fork-header` only when it needs one). */\nexport function rpcForkArgs(endpoints: readonly RpcEndpoint[]): {\n forkUrl: string\n forkHeader?: string\n} {\n const [primary] = endpoints\n if (primary === undefined) throw new Error('rpcForkArgs needs at least one endpoint')\n const headers = Object.entries(primary.headers)\n if (headers.length === 0) return { forkUrl: primary.url }\n if (headers.length > 1) throw new Error('anvil --fork-header supports one header per fork')\n const [[name, value]] = headers\n return { forkUrl: primary.url, forkHeader: `${name}: ${value}` }\n}\n\n/**\n * Value for a Ponder chain's `rpc`. Header-free endpoints stay plain URLs so\n * Ponder keeps its own load balancing; credential headers need a transport.\n */\nexport function ponderRpc(endpoints: readonly RpcEndpoint[]): string | string[] | Transport {\n if (endpoints.some((endpoint) => Object.keys(endpoint.headers).length > 0)) {\n return rpcTransport(endpoints)\n }\n const urls = endpoints.map((endpoint) => endpoint.url)\n return urls.length === 1 ? urls[0] : urls\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["chainId: number","infuraChains: Record<number, string>","RPC_PROVIDER_PRESETS: Readonly<Record<RpcProviderName, RpcProviderPreset>>","name: string","chainId: AlchemyChainId","alchemyApiKey: string","raw: string","text: string | undefined","DEFAULT_RPC_PROVIDERS: readonly RpcProviderName[]","value: string | undefined","envName: string","headers: Record<string, string>","value: string","name: RpcProviderName","chainId: number","env: RpcEnv","legacyUrlEnv: readonly string[]","providers: readonly string[]","endpoints: RpcEndpoint[]","options: ResolveRpcEndpointsOptions","requestsPerSecond: number","fetchFn: NonNullable<HttpTransportConfig['fetchFn']>","endpoint: RpcEndpoint","config: RpcHttpConfig","endpoints: readonly RpcEndpoint[]"],"sources":["../../src/rpc/providers.ts","../../src/rpc/redact.ts","../../src/rpc/resolve.ts","../../src/rpc/rateLimit.ts","../../src/rpc/transport.ts"],"sourcesContent":["/**\n * The only place that knows RPC vendor URL formats and credentials. Supporting\n * a new vendor means adding one preset here; services select it through env\n * (see `resolveRpcEndpoints`).\n */\n\nexport type RpcProviderPreset = {\n /** Env vars holding the API key for `chainId`, highest precedence first. */\n apiKeyEnv: (chainId: number) => readonly string[]\n /** Endpoint for `chainId`, or undefined when the vendor does not serve it. */\n endpoint: (\n chainId: number,\n apiKey: string,\n ) => { url: string; headers?: Record<string, string> } | undefined\n /** Websocket endpoint for `chainId`, or undefined when the vendor does not serve one. */\n wsEndpoint?: (chainId: number, apiKey: string) => string | undefined\n}\n\nconst alchemyChains = {\n 1: 'eth-mainnet',\n 137: 'polygon-mainnet',\n 42161: 'arb-mainnet',\n 8453: 'base-mainnet',\n 10: 'opt-mainnet',\n 130: 'unichain-mainnet',\n 4663: 'robinhood-mainnet',\n 11155111: 'eth-sepolia',\n} as const\n\nexport type AlchemyChainId = keyof typeof alchemyChains\n\nfunction isAlchemyChainId(chainId: number): chainId is AlchemyChainId {\n return chainId in alchemyChains\n}\n\nconst infuraChains: Record<number, string> = {\n 1: 'mainnet',\n 10: 'optimism-mainnet',\n 137: 'polygon-mainnet',\n 8453: 'base-mainnet',\n 42161: 'arbitrum-mainnet',\n 43114: 'avalanche-mainnet',\n 11155111: 'sepolia',\n}\n\nexport type RpcProviderName = 'alchemy' | 'infura' | 'uniblock'\n\nexport const RPC_PROVIDER_PRESETS: Readonly<Record<RpcProviderName, RpcProviderPreset>> = {\n alchemy: {\n apiKeyEnv: () => ['ALCHEMY_API_KEY'],\n endpoint: (chainId, apiKey) =>\n isAlchemyChainId(chainId)\n ? { url: `https://${alchemyChains[chainId]}.g.alchemy.com/v2/${apiKey}` }\n : undefined,\n wsEndpoint: (chainId, apiKey) =>\n isAlchemyChainId(chainId) ? getAlchemyWsRpcUrl(chainId, apiKey) : undefined,\n },\n infura: {\n apiKeyEnv: () => ['INFURA_API_KEY'],\n endpoint: (chainId, apiKey) =>\n infuraChains[chainId]\n ? { url: `https://${infuraChains[chainId]}.infura.io/v3/${apiKey}` }\n : undefined,\n },\n uniblock: {\n apiKeyEnv: () => ['UNIBLOCK_API_KEY'],\n // Uniblock accepts the key only as a header, and serves keyless requests\n // from an anonymous tier — callers must never send it without one.\n endpoint: (chainId, apiKey) => ({\n url: `https://api.uniblock.dev/uni/v1/json-rpc?chainId=${chainId}`,\n headers: { 'x-api-key': apiKey },\n }),\n },\n}\n\nexport function isRpcProviderName(name: string): name is RpcProviderName {\n return Object.prototype.hasOwnProperty.call(RPC_PROVIDER_PRESETS, name)\n}\n\nexport function getAlchemyRpcUrl(chainId: AlchemyChainId, alchemyApiKey: string): string {\n if (alchemyChains[chainId]) {\n return `https://${alchemyChains[chainId]}.g.alchemy.com/v2/${alchemyApiKey}`\n } else {\n throw new Error(`Unsupported chainId: ${chainId}`)\n }\n}\n\nexport function getAlchemyWsRpcUrl(chainId: AlchemyChainId, alchemyApiKey: string): string {\n if (alchemyChains[chainId]) {\n return `wss://${alchemyChains[chainId]}.g.alchemy.com/v2/${alchemyApiKey}`\n } else {\n throw new Error(`Unsupported chainId: ${chainId}`)\n }\n}\n","const URL_PATTERN = /\\b(?:https?|wss?):\\/\\/[^\\s\"'<>)]+/giu\n// Unquoted authentication values can contain commas and quotes, so mask through the line boundary.\nconst CREDENTIAL_HEADER_PATTERN =\n /\\b(x-api-key|authorization|proxy-authorization)([\"']?\\s*[:=]\\s*)(?:([\"'])(?:\\\\.|(?!\\3)[^\\\\\\r\\n])*\\3|[^\\r\\n]+)/giu\n\nfunction redactUrl(raw: string): string {\n try {\n const url = new URL(raw)\n const port = url.port ? `:${url.port}` : ''\n return `${url.protocol}//${url.hostname}${port}/<redacted>`\n } catch {\n return '<redacted-url>'\n }\n}\n\n/**\n * Strip RPC credentials from text before it is logged or shown. Providers\n * embed keys in the URL path or query, so every URL keeps only its origin;\n * credential header values are masked too.\n */\nexport function redactRpcSecrets(text: string | undefined): string {\n if (!text) return ''\n return text\n .replace(CREDENTIAL_HEADER_PATTERN, '$1$2$3<redacted>$3')\n .replace(URL_PATTERN, redactUrl)\n}\n","import { type RpcProviderName, isRpcProviderName, RPC_PROVIDER_PRESETS } from './providers'\n\nexport type RpcEnv = Readonly<Record<string, string | undefined>>\n\nexport type RpcEndpoint = {\n /** Preset name, or `'url'` for an explicit URL entry. */\n source: RpcProviderName | 'url'\n url: string\n /** Credentials that must accompany every request to `url`, and only to `url`. */\n headers: Record<string, string>\n}\n\nexport type ResolveRpcEndpointsOptions = {\n /** Service-specific URL variables honoured when `RPC_URL_<chainId>` is unset, in order. */\n legacyUrlEnv?: readonly string[]\n /** Presets tried, in order, when no URL is configured. Overridden by `RPC_PROVIDERS`. */\n defaultProviders?: readonly RpcProviderName[]\n}\n\nexport const DEFAULT_RPC_PROVIDERS: readonly RpcProviderName[] = ['alchemy', 'uniblock']\n\nfunction present(value: string | undefined): string | undefined {\n const trimmed = value?.trim()\n return trimmed ? trimmed : undefined\n}\n\nfunction splitList(value: string | undefined): string[] {\n return (value ?? '')\n .split(',')\n .map((entry) => entry.trim())\n .filter((entry) => entry !== '')\n}\n\nfunction parseHeaders(value: string | undefined, envName: string): Record<string, string> {\n const headers: Record<string, string> = {}\n for (const pair of splitHeaderPairs(value)) {\n const separator = pair.indexOf(':')\n const name = pair.slice(0, separator).trim()\n if (separator <= 0 || name === '') {\n throw new Error(`${envName} must be \"Name: value\" pairs separated by \";\"`)\n }\n headers[name] = pair.slice(separator + 1).trim()\n }\n return headers\n}\n\nfunction splitHeaderPairs(value: string | undefined): string[] {\n return (value ?? '')\n .split(';')\n .map((pair) => pair.trim())\n .filter((pair) => pair !== '')\n}\n\nfunction isHttpUrl(value: string): boolean {\n try {\n const { protocol } = new URL(value)\n return protocol === 'http:' || protocol === 'https:'\n } catch {\n return false\n }\n}\n\nfunction isWsUrl(value: string): boolean {\n try {\n const { protocol } = new URL(value)\n return protocol === 'ws:' || protocol === 'wss:'\n } catch {\n return false\n }\n}\n\nfunction presetApiKey(name: RpcProviderName, chainId: number, env: RpcEnv) {\n for (const envName of RPC_PROVIDER_PRESETS[name].apiKeyEnv(chainId)) {\n const key = present(env[envName])\n if (key !== undefined) return key\n }\n return undefined\n}\n\nfunction presetEndpoint(\n name: RpcProviderName,\n chainId: number,\n env: RpcEnv,\n): RpcEndpoint | undefined {\n const apiKey = presetApiKey(name, chainId, env)\n if (apiKey === undefined) return undefined\n const endpoint = RPC_PROVIDER_PRESETS[name].endpoint(chainId, apiKey)\n return endpoint && { source: name, url: endpoint.url, headers: endpoint.headers ?? {} }\n}\n\nfunction explicitEndpoints(chainId: number, env: RpcEnv): RpcEndpoint[] {\n const listEnv = `RPC_URL_${chainId}`\n return splitList(env[listEnv]).map((entry, index) => {\n if (isHttpUrl(entry)) {\n const headersEnv = `RPC_HEADERS_${chainId}_${index}`\n return { source: 'url', url: entry, headers: parseHeaders(env[headersEnv], headersEnv) }\n }\n if (!isRpcProviderName(entry)) {\n throw new Error(`${listEnv} entry \"${entry}\" is neither an http(s) URL nor a known provider`)\n }\n const endpoint = presetEndpoint(entry, chainId, env)\n if (endpoint === undefined) {\n const keyEnv = RPC_PROVIDER_PRESETS[entry].apiKeyEnv(chainId).join(' or ')\n throw new Error(\n `${listEnv} lists \"${entry}\", which needs ${keyEnv} and must serve chain ${chainId}`,\n )\n }\n return endpoint\n })\n}\n\nfunction legacyEndpoints(env: RpcEnv, legacyUrlEnv: readonly string[]): RpcEndpoint[] {\n return legacyUrlEnv.flatMap((envName) =>\n splitList(env[envName]).map((url): RpcEndpoint => ({ source: 'url', url, headers: {} })),\n )\n}\n\nfunction firstPresetEndpoint(\n chainId: number,\n env: RpcEnv,\n providers: readonly string[],\n): RpcEndpoint | undefined {\n for (const name of providers) {\n if (!isRpcProviderName(name)) {\n throw new Error(`RPC_PROVIDERS entry \"${name}\" is not a known provider`)\n }\n const endpoint = presetEndpoint(name, chainId, env)\n if (endpoint !== undefined) return endpoint\n }\n return undefined\n}\n\nfunction dedupe(endpoints: RpcEndpoint[]): RpcEndpoint[] {\n const seen = new Set<string>()\n return endpoints.filter((endpoint) => {\n const key = `${endpoint.url}\\n${JSON.stringify(endpoint.headers)}`\n if (seen.has(key)) return false\n seen.add(key)\n return true\n })\n}\n\n/**\n * Ordered RPC endpoints for `chainId` (primary first, the rest failover):\n *\n * 1. `RPC_URL_<chainId>` — comma-separated URLs and/or preset names; entry `n`\n * gets headers from `RPC_HEADERS_<chainId>_<n>` (\"Name: value;Name: value\").\n * 2. Otherwise the service's legacy URL variables (`legacyUrlEnv`).\n * 3. Otherwise the first preset in `RPC_PROVIDERS` (or `defaultProviders`)\n * that has an API key and serves the chain.\n *\n * Blank values count as unset. Throws when nothing resolves.\n */\nexport function resolveRpcEndpoints(\n chainId: number,\n env: RpcEnv,\n options: ResolveRpcEndpointsOptions = {},\n): RpcEndpoint[] {\n const explicit = explicitEndpoints(chainId, env)\n if (explicit.length > 0) return dedupe(explicit)\n\n const legacyUrlEnv = options.legacyUrlEnv ?? []\n const legacy = legacyEndpoints(env, legacyUrlEnv)\n if (legacy.length > 0) return dedupe(legacy)\n\n const providers = present(env.RPC_PROVIDERS)\n ? splitList(env.RPC_PROVIDERS)\n : (options.defaultProviders ?? DEFAULT_RPC_PROVIDERS)\n const preset = firstPresetEndpoint(chainId, env, providers)\n if (preset !== undefined) return [preset]\n\n const keyEnv = [\n ...new Set(\n providers.flatMap((name) =>\n isRpcProviderName(name) ? RPC_PROVIDER_PRESETS[name].apiKeyEnv(chainId) : [],\n ),\n ),\n ]\n throw new Error(\n `No RPC configured for chain ${chainId}: set ${[`RPC_URL_${chainId}`, ...legacyUrlEnv, ...keyEnv].join(', ')}`,\n )\n}\n\n/**\n * Websocket RPC URL for `chainId`: `RPC_WS_URL_<chainId>`, else the first preset\n * in `RPC_PROVIDERS` (or the defaults) that has an API key and serves websockets.\n * Returns undefined when nothing is configured; throws on a non-ws(s) URL.\n */\nexport function resolveRpcWsUrl(chainId: number, env: RpcEnv): string | undefined {\n const envName = `RPC_WS_URL_${chainId}`\n const explicit = present(env[envName])\n if (explicit !== undefined) {\n if (!isWsUrl(explicit)) throw new Error(`${envName} must be a ws(s) URL`)\n return explicit\n }\n const providers = present(env.RPC_PROVIDERS)\n ? splitList(env.RPC_PROVIDERS)\n : DEFAULT_RPC_PROVIDERS\n for (const name of providers) {\n if (!isRpcProviderName(name)) continue\n const wsEndpoint = RPC_PROVIDER_PRESETS[name].wsEndpoint\n const apiKey = presetApiKey(name, chainId, env)\n if (wsEndpoint === undefined || apiKey === undefined) continue\n const url = wsEndpoint(chainId, apiKey)\n if (url !== undefined) return url\n }\n return undefined\n}\n","import type { HttpTransportConfig } from 'viem'\n\n/** Limits HTTP attempts, including retries, across clients sharing this fetch function. */\nexport function rateLimitedRpcFetch(\n requestsPerSecond: number,\n fetchFn: NonNullable<HttpTransportConfig['fetchFn']> = fetch,\n): NonNullable<HttpTransportConfig['fetchFn']> {\n if (!Number.isFinite(requestsPerSecond) || requestsPerSecond <= 0) {\n throw new Error('RPC requestsPerSecond must be positive and finite')\n }\n const intervalMs = Math.ceil(1_000 / requestsPerSecond)\n let nextStart = 0\n let tail = Promise.resolve()\n\n return (input, init) => {\n const signal = init?.signal ?? (input instanceof Request ? input.signal : undefined)\n const request = tail.then(async () => {\n signal?.throwIfAborted()\n const delay = nextStart - Date.now()\n if (delay > 0) await new Promise<void>((resolve) => setTimeout(resolve, delay))\n signal?.throwIfAborted()\n nextStart = Date.now() + intervalMs\n return fetchFn(input, init)\n })\n tail = request.then(\n () => undefined,\n () => undefined,\n )\n return request\n }\n}\n","import { type HttpTransportConfig, type Transport, fallback, http } from 'viem'\n\nimport { rateLimitedRpcFetch } from './rateLimit'\nimport type { RpcEndpoint } from './resolve'\n\nexport type RpcHttpConfig = Omit<HttpTransportConfig, 'fetchOptions'>\n\n/** viem HTTP transport for one endpoint, carrying its credential headers. */\nexport function rpcHttp(endpoint: RpcEndpoint, config: RpcHttpConfig = {}) {\n return http(endpoint.url, { ...config, fetchOptions: { headers: endpoint.headers } })\n}\n\nexport type RpcTransportOptions = RpcHttpConfig & {\n /**\n * Fail over to later endpoints. Disable for clients that submit\n * transactions: a tx broadcast through one provider and retried through\n * another surfaces as \"already known\" / \"nonce too low\" although it was sent.\n */\n failover?: boolean\n /** Shared HTTP attempt limit, including retries and failover. Disables HTTP batching. */\n requestsPerSecond?: number\n}\n\n/**\n * Transport over resolved endpoints: plain HTTP for one endpoint, otherwise an\n * unranked viem `fallback` in configured order.\n */\nexport function rpcTransport(\n endpoints: readonly RpcEndpoint[],\n { failover = true, requestsPerSecond, ...config }: RpcTransportOptions = {},\n): Transport {\n const httpConfig =\n requestsPerSecond === undefined\n ? config\n : {\n ...config,\n batch: false as const,\n fetchFn: rateLimitedRpcFetch(requestsPerSecond, config.fetchFn),\n }\n const [primary, ...rest] = endpoints\n if (primary === undefined) throw new Error('rpcTransport needs at least one endpoint')\n if (!failover || rest.length === 0) return rpcHttp(primary, httpConfig)\n return fallback(\n endpoints.map((endpoint) => rpcHttp(endpoint, httpConfig)),\n { rank: false },\n )\n}\n\n/** anvil fork arguments for the primary endpoint (`--fork-header` only when it needs one). */\nexport function rpcForkArgs(endpoints: readonly RpcEndpoint[]): {\n forkUrl: string\n forkHeader?: string\n} {\n const [primary] = endpoints\n if (primary === undefined) throw new Error('rpcForkArgs needs at least one endpoint')\n const headers = Object.entries(primary.headers)\n if (headers.length === 0) return { forkUrl: primary.url }\n if (headers.length > 1) throw new Error('anvil --fork-header supports one header per fork')\n const [[name, value]] = headers\n return { forkUrl: primary.url, forkHeader: `${name}: ${value}` }\n}\n\n/**\n * Value for a Ponder chain's `rpc`. Header-free endpoints stay plain URLs so\n * Ponder keeps its own load balancing; credential headers need a transport.\n */\nexport function ponderRpc(endpoints: readonly RpcEndpoint[]): string | string[] | Transport {\n if (endpoints.some((endpoint) => Object.keys(endpoint.headers).length > 0)) {\n return rpcTransport(endpoints)\n }\n const urls = endpoints.map((endpoint) => endpoint.url)\n return urls.length === 1 ? urls[0] : urls\n}\n"],"mappings":"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"}
@@ -300,6 +300,15 @@ declare function getLpFundingDeposit({
300
300
  amount0: bigint;
301
301
  amount1: bigint;
302
302
  };
303
+ /**
304
+ * Largest raw size whose range principal needs at most `amount` of the given token.
305
+ * Undefined when the price sits outside every range on that token's side, so no
306
+ * amount of that token buys any liquidity.
307
+ */
308
+ declare function getLpPositionSizeForTokenAmount(params: Omit<LpPositionFundingParams, 'positionSize'> & {
309
+ tokenIndex: 0 | 1;
310
+ amount: bigint;
311
+ }): bigint | undefined;
303
312
  /** Largest raw size funded by available collateral, including native-token rounding. */
304
313
  declare function getMaxLpPositionSize(params: Omit<LpPositionFundingParams, 'positionSize'> & {
305
314
  availableInQuote: bigint;
@@ -1781,5 +1790,5 @@ declare function swapExactOutViaRouter(params: SwapExactOutViaRouterParams): Pro
1781
1790
  declare function swapExactOutViaRouterAndWait(params: SwapExactOutViaRouterParams): Promise<TxReceipt>;
1782
1791
 
1783
1792
  //#endregion
1784
- export { AmountExceedsUint128Error, ApproveErc20ForPermit2Params, ApproveRouterViaPermit2Params, BuildV3ExactOutSwapCalldataArgs, BuildV3SwapCalldataArgs, BuildV4ExactOutSwapCalldataArgs, BuildV4SwapCalldataArgs, CheckRouterApprovalParams, ExpectedTimeInRangeInput, InvalidSwapTokenError, LP_RANGE_HORIZONS_DAYS, LP_RANGE_HORIZONS_YEARS, LpAmounts, LpFeeCandle, LpFeeRange, LpGreeks, LpGreeksInput, LpPositionFundingParams, LpPositionHistoryEvent, MSG_SENDER, MissingSweepRecipientError, PERMIT2_ADDRESS, QuoteSwapExactInViaRouterParams, QuoteSwapExactInViaV3RouterParams, QuoteSwapExactOutViaRouterParams, QuoteSwapExactOutViaV3RouterParams, QuoteV3ExactInParams, QuoteV3ExactOutParams, QuoteV4ExactInByPoolKeyParams, QuoterUnavailableError, RangeProbabilityInput, RangeStats, RangeStatsInput, ResolveSwapRouteParams, ResolveV3SwapRouteParams, ResolvedSwapRoute, ResolvedV3SwapRoute, RouterApprovalStatus, SETTLE_ALL, SWAP_EXACT_IN_SINGLE, SWAP_EXACT_OUT_SINGLE, SWEEP, SwapExactInQuote, SwapExactInViaRouterParams, SwapExactInViaV3RouterParams, SwapExactOutQuote, SwapExactOutViaRouterParams, SwapExactOutViaV3RouterParams, TAKE_ALL, UNISWAP_V3_ADDRESSES, UNISWAP_V4_ADDRESSES, UniswapV3Addresses, UniswapV4Addresses, UnsupportedChainError, V3ExactInQuote, V3ExactOutQuote, V3_SWAP_EXACT_IN, V3_SWAP_EXACT_OUT, V4ExactInQuote, V4_SWAP, annualizeLpFeeReturn, approveErc20ForPermit2, approveErc20ForPermit2AndWait, approveRouterViaPermit2, approveRouterViaPermit2AndWait, buildV3ExactOutSwapExecuteArgs, buildV3ExactOutSwapExecuteCalldata, buildV3SwapExecuteArgs, buildV3SwapExecuteCalldata, buildV4ExactOutSwapExecuteArgs, buildV4ExactOutSwapExecuteCalldata, buildV4SwapExecuteArgs, buildV4SwapExecuteCalldata, calculateLpPositionVolatility, calculateV3LpAccounting, checkRouterApproval, encodeV3Path, estimateLpFees, expectedTimeInRange, getAmountsForLiquidity, getLpDepositAmounts, getLpDepositBreakdown, getLpFeeReturnSeries, getLpFundingDeposit, getLpGreeks, getLpPositionFunding, getLpPositionHistory, getMaxLpPositionSize, getUnhedgedLpRanges, getUniswapV3Addresses, getUniswapV3PoolBalances, getUniswapV4Addresses, getV3LpHistoryAccounting, normalCdf, pInRangeAt, quoteSwapExactInViaRouter, quoteSwapExactInViaV3Router, quoteSwapExactOutViaRouter, quoteSwapExactOutViaV3Router, quoteTokenPrices, quoteV3ExactIn, quoteV3ExactOut, quoteV4ExactInByPoolKey, rangeStats, resolveSwapRoute, resolveV3SwapRoute, summarizeLpPositionHistory, swapExactInViaRouter, swapExactInViaRouterAndWait, swapExactInViaV3Router, swapExactOutViaRouter, swapExactOutViaRouterAndWait, swapExactOutViaV3Router };
1793
+ export { AmountExceedsUint128Error, ApproveErc20ForPermit2Params, ApproveRouterViaPermit2Params, BuildV3ExactOutSwapCalldataArgs, BuildV3SwapCalldataArgs, BuildV4ExactOutSwapCalldataArgs, BuildV4SwapCalldataArgs, CheckRouterApprovalParams, ExpectedTimeInRangeInput, InvalidSwapTokenError, LP_RANGE_HORIZONS_DAYS, LP_RANGE_HORIZONS_YEARS, LpAmounts, LpFeeCandle, LpFeeRange, LpGreeks, LpGreeksInput, LpPositionFundingParams, LpPositionHistoryEvent, MSG_SENDER, MissingSweepRecipientError, PERMIT2_ADDRESS, QuoteSwapExactInViaRouterParams, QuoteSwapExactInViaV3RouterParams, QuoteSwapExactOutViaRouterParams, QuoteSwapExactOutViaV3RouterParams, QuoteV3ExactInParams, QuoteV3ExactOutParams, QuoteV4ExactInByPoolKeyParams, QuoterUnavailableError, RangeProbabilityInput, RangeStats, RangeStatsInput, ResolveSwapRouteParams, ResolveV3SwapRouteParams, ResolvedSwapRoute, ResolvedV3SwapRoute, RouterApprovalStatus, SETTLE_ALL, SWAP_EXACT_IN_SINGLE, SWAP_EXACT_OUT_SINGLE, SWEEP, SwapExactInQuote, SwapExactInViaRouterParams, SwapExactInViaV3RouterParams, SwapExactOutQuote, SwapExactOutViaRouterParams, SwapExactOutViaV3RouterParams, TAKE_ALL, UNISWAP_V3_ADDRESSES, UNISWAP_V4_ADDRESSES, UniswapV3Addresses, UniswapV4Addresses, UnsupportedChainError, V3ExactInQuote, V3ExactOutQuote, V3_SWAP_EXACT_IN, V3_SWAP_EXACT_OUT, V4ExactInQuote, V4_SWAP, annualizeLpFeeReturn, approveErc20ForPermit2, approveErc20ForPermit2AndWait, approveRouterViaPermit2, approveRouterViaPermit2AndWait, buildV3ExactOutSwapExecuteArgs, buildV3ExactOutSwapExecuteCalldata, buildV3SwapExecuteArgs, buildV3SwapExecuteCalldata, buildV4ExactOutSwapExecuteArgs, buildV4ExactOutSwapExecuteCalldata, buildV4SwapExecuteArgs, buildV4SwapExecuteCalldata, calculateLpPositionVolatility, calculateV3LpAccounting, checkRouterApproval, encodeV3Path, estimateLpFees, expectedTimeInRange, getAmountsForLiquidity, getLpDepositAmounts, getLpDepositBreakdown, getLpFeeReturnSeries, getLpFundingDeposit, getLpGreeks, getLpPositionFunding, getLpPositionHistory, getLpPositionSizeForTokenAmount, getMaxLpPositionSize, getUnhedgedLpRanges, getUniswapV3Addresses, getUniswapV3PoolBalances, getUniswapV4Addresses, getV3LpHistoryAccounting, normalCdf, pInRangeAt, quoteSwapExactInViaRouter, quoteSwapExactInViaV3Router, quoteSwapExactOutViaRouter, quoteSwapExactOutViaV3Router, quoteTokenPrices, quoteV3ExactIn, quoteV3ExactOut, quoteV4ExactInByPoolKey, rangeStats, resolveSwapRoute, resolveV3SwapRoute, summarizeLpPositionHistory, swapExactInViaRouter, swapExactInViaRouterAndWait, swapExactInViaV3Router, swapExactOutViaRouter, swapExactOutViaRouterAndWait, swapExactOutViaV3Router };
1785
1794
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","names":["LpFeeCandle","LpFeeRange","estimateLpFees","candles","ranges","feePips","z","changeSchema","ZodEnum","ZodString","ZodTransform","ZodPipe","ZodNullable","core","$strip","ZodObject","collectSchema","LpPositionHistoryEvent","infer","getLpPositionHistory","url","positionId","signal","AbortSignal","Promise","summarizeLpPositionHistory","Address","PublicClient","getLpPositionHistory","LpPositionHistoryEvent","calculateV3LpAccounting","events","inventory","claimable","prices","endBlock","token0Decimals","token1Decimals","getV3LpHistoryAccounting","client","history","nfpmAddress","poolAddress","tickLower","tickUpper","ReturnType","Awaited","Promise","LpFeeRange","getLpDepositAmounts","getLpDepositBreakdown","LpPositionFundingParams","getUnhedgedLpRanges","tokenId","positionSize","tickSpacing","Pick","getLpPositionFunding","getLpFundingDeposit","funding","availableInQuote","minimumInQuote","quoteTokenIndex","valuationSqrtPriceX96","quotePercent","ReturnType","getMaxLpPositionSize","Omit","Decimal","LpFeeRange","annualizeLpFeeReturn","getLpFeeReturnSeries","points","ranges","startTick","T","LpAmounts","LpGreeks","LpGreeksInput","getAmountsForLiquidity","getLpGreeks","Decimal","preparePositionGamma","tokenId","positionSize","quoteIsToken0","quoteDecimals","prepareLiquidityGamma","chunks","PositionVolatilityObservation","Value","VolatilityComparisonReason","calculatePositionVolatilityMetrics","observations","netPremium","baseFees","valuePositionAccrual","snapshots","BlockMeta","Address","PoolMetadata","BlockMeta","PoolHealthStatus","CollateralTracker","RiskEngine","PoolKey","Pool","Utilization","Address","Hash","PanopticEventType","BaseEvent","OptionMintedEvent","OptionBurntEvent","AccountLiquidatedEvent","ForcedExercisedEvent","PremiumSettledEvent","DepositEvent","WithdrawEvent","BorrowRateUpdatedEvent","LiquidityChunkUpdatedEvent","ProtocolLossRealizedEvent","ModifyLiquidityEvent","SwapEvent","DonateEvent","PanopticEvent","LegUpdate","EventSubscription","SyncEvent","Address","Hash","PanopticEvent","TxResult","TxReceipt","Promise","TxResultWithReceipt","TxBroadcaster","TxOverrides","NonceManager","DispatchCall","PanopticError","Error","PanopticError","BlockMeta","Position","PositionGreeks","TokenFlow","SimulationResult","T","OpenPositionSimulation","ClosePositionSimulation","ForceExerciseSimulation","SettlePremiumFromSimulation","LiquidateSimulation","SettleSimulation","DepositSimulation","WithdrawSimulation","DispatchSimulation","PublicClient","BlockMeta","PoolVersionConfig","StreamiaLeg","UniswapFeeSnapshot","UniswapFeeHistoryResult","GetUniswapFeeHistoryParams","getUniswapFeeHistory","Promise","UniswapBlockData","Map","fetchUniswapFeeData","computeUniswapFeesForBlock","feeGrowthInsideX128","PositionVolatilityObservation","UniswapFeeSnapshot","calculateLpPositionVolatility","liquidity","tickLower","tickUpper","quoteIsToken0","quoteDecimals","snapshots","priceObservations","___panoptic_v2_greeks_positionVolatility0","VolatilityComparisonReason","Decimal","quoteTokenPrices","Map","normalCdf","RangeProbabilityInput","pInRangeAt","ExpectedTimeInRangeInput","expectedTimeInRange","RangeStatsInput","RangeStats","rangeStats","LP_RANGE_HORIZONS_DAYS","LP_RANGE_HORIZONS_YEARS","Address","UniswapV3Addresses","UNISWAP_V3_ADDRESSES","Record","getUniswapV3Addresses","Partial","Address","PublicClient","getUniswapV3PoolBalances","client","pools","Map","Promise","Address","Hex","V3_SWAP_EXACT_IN","V3_SWAP_EXACT_OUT","MSG_SENDER","BuildV3SwapCalldataArgs","encodeV3Path","buildV3SwapExecuteArgs","buildV3SwapExecuteCalldata","BuildV3ExactOutSwapCalldataArgs","buildV3ExactOutSwapExecuteArgs","buildV3ExactOutSwapExecuteCalldata","Address","PublicClient","UniswapV3Addresses","QuoteV3ExactInParams","Partial","V3ExactInQuote","quoteV3ExactIn","Promise","QuoteV3ExactOutParams","V3ExactOutQuote","quoteV3ExactOut","Address","UniswapV4Addresses","PERMIT2_ADDRESS","UNISWAP_V4_ADDRESSES","Record","getUniswapV4Addresses","Partial","Address","PublicClient","WalletClient","PoolKey","TxOverrides","UniswapV4Addresses","SwapExactInViaRouterParams","Partial","QuoteSwapExactInViaRouterParams","SwapExactInQuote","SwapExactOutViaRouterParams","QuoteSwapExactOutViaRouterParams","SwapExactOutQuote","CheckRouterApprovalParams","RouterApprovalStatus","ApproveErc20ForPermit2Params","ApproveRouterViaPermit2Params","Address","PublicClient","SimulationResult","SwapExactInQuote","SwapExactOutQuote","UniswapV3Addresses","QuoteSwapExactInViaV3RouterParams","Partial","quoteSwapExactInViaV3Router","Promise","QuoteSwapExactOutViaV3RouterParams","quoteSwapExactOutViaV3Router","Address","PublicClient","ResolvedV3SwapRoute","ResolveV3SwapRouteParams","resolveV3SwapRoute","Promise","Address","PublicClient","WalletClient","TxOverrides","TxResult","UniswapV4Addresses","UniswapV3Addresses","SwapExactInViaV3RouterParams","Partial","swapExactInViaV3Router","Promise","SwapExactOutViaV3RouterParams","swapExactOutViaV3Router","Address","Hex","PoolKey","V4_SWAP","SWAP_EXACT_IN_SINGLE","SETTLE_ALL","TAKE_ALL","TAKE","SWAP_EXACT_OUT_SINGLE","SWEEP","BuildV4SwapCalldataArgs","buildV4SwapExecuteArgs","buildV4SwapExecuteCalldata","BuildV4ExactOutSwapCalldataArgs","buildV4ExactOutSwapExecuteArgs","buildV4ExactOutSwapExecuteCalldata","Address","PanopticError","UnsupportedChainError","Error","InvalidSwapTokenError","AmountExceedsUint128Error","MissingSweepRecipientError","QuoterUnavailableError","TxReceipt","TxResult","ApproveErc20ForPermit2Params","ApproveRouterViaPermit2Params","CheckRouterApprovalParams","RouterApprovalStatus","checkRouterApproval","Promise","approveErc20ForPermit2","approveErc20ForPermit2AndWait","approveRouterViaPermit2","approveRouterViaPermit2AndWait","SimulationResult","QuoteSwapExactInViaRouterParams","QuoteSwapExactOutViaRouterParams","SwapExactInQuote","SwapExactOutQuote","quoteSwapExactInViaRouter","Promise","quoteSwapExactOutViaRouter","PublicClient","PoolKey","UniswapV4Addresses","QuoteV4ExactInByPoolKeyParams","Partial","V4ExactInQuote","quoteV4ExactInByPoolKey","Promise","Address","PublicClient","PoolKey","ResolvedSwapRoute","ResolveSwapRouteParams","resolveSwapRoute","Promise","TxReceipt","TxResult","SwapExactInViaRouterParams","SwapExactOutViaRouterParams","swapExactInViaRouter","Promise","swapExactInViaRouterAndWait","swapExactOutViaRouter","swapExactOutViaRouterAndWait"],"sources":["../../src/uniswap/estimateLpFees.d.ts","../../src/uniswap/lpHistory.d.ts","../../src/uniswap/lpAccounting.d.ts","../../src/uniswap/lpDeposit.d.ts","../../src/uniswap/lpFeeReturn.d.ts","../../src/uniswap/lpGreeks.d.ts","../../src/panoptic/v2/greeks/positionVolatility.d.ts","../../src/panoptic/v2/types/meta.d.ts","../../src/panoptic/v2/types/pool.d.ts","../../src/panoptic/v2/types/events.d.ts","../../src/panoptic/v2/types/tx.d.ts","../../src/panoptic/v2/errors/base.d.ts","../../src/panoptic/v2/types/simulation.d.ts","../../src/panoptic/v2/reads/uniswapFeeHistory.d.ts","../../src/uniswap/lpVolatility.d.ts","../../src/uniswap/quoteTokenPrices.d.ts","../../src/uniswap/rangeProbability.d.ts","../../src/uniswap/v3/addresses.d.ts","../../src/uniswap/v3/poolBalances.d.ts","../../src/uniswap/v3/router/encodeSwap.d.ts","../../src/uniswap/v3/router/quote.d.ts","../../src/uniswap/v4/addresses.d.ts","../../src/uniswap/v4/router/types.d.ts","../../src/uniswap/v3/router/quoteViaRouter.d.ts","../../src/uniswap/v3/router/resolveRoute.d.ts","../../src/uniswap/v3/router/swap.d.ts","../../src/uniswap/v4/router/encodeSwap.d.ts","../../src/uniswap/v4/router/errors.d.ts","../../src/uniswap/v4/router/permit2.d.ts","../../src/uniswap/v4/router/quote.d.ts","../../src/uniswap/v4/router/quoteByPoolKey.d.ts","../../src/uniswap/v4/router/resolvePoolKey.d.ts","../../src/uniswap/v4/router/swap.d.ts"],"sourcesContent":null,"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","names":["LpFeeCandle","LpFeeRange","estimateLpFees","candles","ranges","feePips","z","changeSchema","ZodEnum","ZodString","ZodTransform","ZodPipe","ZodNullable","core","$strip","ZodObject","collectSchema","LpPositionHistoryEvent","infer","getLpPositionHistory","url","positionId","signal","AbortSignal","Promise","summarizeLpPositionHistory","Address","PublicClient","getLpPositionHistory","LpPositionHistoryEvent","calculateV3LpAccounting","events","inventory","claimable","prices","endBlock","token0Decimals","token1Decimals","getV3LpHistoryAccounting","client","history","nfpmAddress","poolAddress","tickLower","tickUpper","ReturnType","Awaited","Promise","LpFeeRange","getLpDepositAmounts","getLpDepositBreakdown","LpPositionFundingParams","getUnhedgedLpRanges","tokenId","positionSize","tickSpacing","Pick","getLpPositionFunding","getLpFundingDeposit","funding","availableInQuote","minimumInQuote","quoteTokenIndex","valuationSqrtPriceX96","quotePercent","ReturnType","getLpPositionSizeForTokenAmount","Omit","getMaxLpPositionSize","Decimal","LpFeeRange","annualizeLpFeeReturn","getLpFeeReturnSeries","points","ranges","startTick","T","LpAmounts","LpGreeks","LpGreeksInput","getAmountsForLiquidity","getLpGreeks","Decimal","preparePositionGamma","tokenId","positionSize","quoteIsToken0","quoteDecimals","prepareLiquidityGamma","chunks","PositionVolatilityObservation","Value","VolatilityComparisonReason","calculatePositionVolatilityMetrics","observations","netPremium","baseFees","valuePositionAccrual","snapshots","BlockMeta","Address","PoolMetadata","BlockMeta","PoolHealthStatus","CollateralTracker","RiskEngine","PoolKey","Pool","Utilization","Address","Hash","PanopticEventType","BaseEvent","OptionMintedEvent","OptionBurntEvent","AccountLiquidatedEvent","ForcedExercisedEvent","PremiumSettledEvent","DepositEvent","WithdrawEvent","BorrowRateUpdatedEvent","LiquidityChunkUpdatedEvent","ProtocolLossRealizedEvent","ModifyLiquidityEvent","SwapEvent","DonateEvent","PanopticEvent","LegUpdate","EventSubscription","SyncEvent","Address","Hash","PanopticEvent","TxResult","TxReceipt","Promise","TxResultWithReceipt","TxBroadcaster","TxOverrides","NonceManager","DispatchCall","PanopticError","Error","PanopticError","BlockMeta","Position","PositionGreeks","TokenFlow","SimulationResult","T","OpenPositionSimulation","ClosePositionSimulation","ForceExerciseSimulation","SettlePremiumFromSimulation","LiquidateSimulation","SettleSimulation","DepositSimulation","WithdrawSimulation","DispatchSimulation","PublicClient","BlockMeta","PoolVersionConfig","StreamiaLeg","UniswapFeeSnapshot","UniswapFeeHistoryResult","GetUniswapFeeHistoryParams","getUniswapFeeHistory","Promise","UniswapBlockData","Map","fetchUniswapFeeData","computeUniswapFeesForBlock","feeGrowthInsideX128","PositionVolatilityObservation","UniswapFeeSnapshot","calculateLpPositionVolatility","liquidity","tickLower","tickUpper","quoteIsToken0","quoteDecimals","snapshots","priceObservations","___panoptic_v2_greeks_positionVolatility0","VolatilityComparisonReason","Decimal","quoteTokenPrices","Map","normalCdf","RangeProbabilityInput","pInRangeAt","ExpectedTimeInRangeInput","expectedTimeInRange","RangeStatsInput","RangeStats","rangeStats","LP_RANGE_HORIZONS_DAYS","LP_RANGE_HORIZONS_YEARS","Address","UniswapV3Addresses","UNISWAP_V3_ADDRESSES","Record","getUniswapV3Addresses","Partial","Address","PublicClient","getUniswapV3PoolBalances","client","pools","Map","Promise","Address","Hex","V3_SWAP_EXACT_IN","V3_SWAP_EXACT_OUT","MSG_SENDER","BuildV3SwapCalldataArgs","encodeV3Path","buildV3SwapExecuteArgs","buildV3SwapExecuteCalldata","BuildV3ExactOutSwapCalldataArgs","buildV3ExactOutSwapExecuteArgs","buildV3ExactOutSwapExecuteCalldata","Address","PublicClient","UniswapV3Addresses","QuoteV3ExactInParams","Partial","V3ExactInQuote","quoteV3ExactIn","Promise","QuoteV3ExactOutParams","V3ExactOutQuote","quoteV3ExactOut","Address","UniswapV4Addresses","PERMIT2_ADDRESS","UNISWAP_V4_ADDRESSES","Record","getUniswapV4Addresses","Partial","Address","PublicClient","WalletClient","PoolKey","TxOverrides","UniswapV4Addresses","SwapExactInViaRouterParams","Partial","QuoteSwapExactInViaRouterParams","SwapExactInQuote","SwapExactOutViaRouterParams","QuoteSwapExactOutViaRouterParams","SwapExactOutQuote","CheckRouterApprovalParams","RouterApprovalStatus","ApproveErc20ForPermit2Params","ApproveRouterViaPermit2Params","Address","PublicClient","SimulationResult","SwapExactInQuote","SwapExactOutQuote","UniswapV3Addresses","QuoteSwapExactInViaV3RouterParams","Partial","quoteSwapExactInViaV3Router","Promise","QuoteSwapExactOutViaV3RouterParams","quoteSwapExactOutViaV3Router","Address","PublicClient","ResolvedV3SwapRoute","ResolveV3SwapRouteParams","resolveV3SwapRoute","Promise","Address","PublicClient","WalletClient","TxOverrides","TxResult","UniswapV4Addresses","UniswapV3Addresses","SwapExactInViaV3RouterParams","Partial","swapExactInViaV3Router","Promise","SwapExactOutViaV3RouterParams","swapExactOutViaV3Router","Address","Hex","PoolKey","V4_SWAP","SWAP_EXACT_IN_SINGLE","SETTLE_ALL","TAKE_ALL","TAKE","SWAP_EXACT_OUT_SINGLE","SWEEP","BuildV4SwapCalldataArgs","buildV4SwapExecuteArgs","buildV4SwapExecuteCalldata","BuildV4ExactOutSwapCalldataArgs","buildV4ExactOutSwapExecuteArgs","buildV4ExactOutSwapExecuteCalldata","Address","PanopticError","UnsupportedChainError","Error","InvalidSwapTokenError","AmountExceedsUint128Error","MissingSweepRecipientError","QuoterUnavailableError","TxReceipt","TxResult","ApproveErc20ForPermit2Params","ApproveRouterViaPermit2Params","CheckRouterApprovalParams","RouterApprovalStatus","checkRouterApproval","Promise","approveErc20ForPermit2","approveErc20ForPermit2AndWait","approveRouterViaPermit2","approveRouterViaPermit2AndWait","SimulationResult","QuoteSwapExactInViaRouterParams","QuoteSwapExactOutViaRouterParams","SwapExactInQuote","SwapExactOutQuote","quoteSwapExactInViaRouter","Promise","quoteSwapExactOutViaRouter","PublicClient","PoolKey","UniswapV4Addresses","QuoteV4ExactInByPoolKeyParams","Partial","V4ExactInQuote","quoteV4ExactInByPoolKey","Promise","Address","PublicClient","PoolKey","ResolvedSwapRoute","ResolveSwapRouteParams","resolveSwapRoute","Promise","TxReceipt","TxResult","SwapExactInViaRouterParams","SwapExactOutViaRouterParams","swapExactInViaRouter","Promise","swapExactInViaRouterAndWait","swapExactOutViaRouter","swapExactOutViaRouterAndWait"],"sources":["../../src/uniswap/estimateLpFees.d.ts","../../src/uniswap/lpHistory.d.ts","../../src/uniswap/lpAccounting.d.ts","../../src/uniswap/lpDeposit.d.ts","../../src/uniswap/lpFeeReturn.d.ts","../../src/uniswap/lpGreeks.d.ts","../../src/panoptic/v2/greeks/positionVolatility.d.ts","../../src/panoptic/v2/types/meta.d.ts","../../src/panoptic/v2/types/pool.d.ts","../../src/panoptic/v2/types/events.d.ts","../../src/panoptic/v2/types/tx.d.ts","../../src/panoptic/v2/errors/base.d.ts","../../src/panoptic/v2/types/simulation.d.ts","../../src/panoptic/v2/reads/uniswapFeeHistory.d.ts","../../src/uniswap/lpVolatility.d.ts","../../src/uniswap/quoteTokenPrices.d.ts","../../src/uniswap/rangeProbability.d.ts","../../src/uniswap/v3/addresses.d.ts","../../src/uniswap/v3/poolBalances.d.ts","../../src/uniswap/v3/router/encodeSwap.d.ts","../../src/uniswap/v3/router/quote.d.ts","../../src/uniswap/v4/addresses.d.ts","../../src/uniswap/v4/router/types.d.ts","../../src/uniswap/v3/router/quoteViaRouter.d.ts","../../src/uniswap/v3/router/resolveRoute.d.ts","../../src/uniswap/v3/router/swap.d.ts","../../src/uniswap/v4/router/encodeSwap.d.ts","../../src/uniswap/v4/router/errors.d.ts","../../src/uniswap/v4/router/permit2.d.ts","../../src/uniswap/v4/router/quote.d.ts","../../src/uniswap/v4/router/quoteByPoolKey.d.ts","../../src/uniswap/v4/router/resolvePoolKey.d.ts","../../src/uniswap/v4/router/swap.d.ts"],"sourcesContent":null,"mappings":"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AAA,EAAAA,KAAAA,CAAAA,E0BqCgB2S,K1BrChB3S;;;;;;;;;iB2BGDsT,mBAAAA,SAA4BF,4BAA4BoC,QAAQnC;A5BWxF;;;AAAkDpP,iB4BP1BuP,sBAAAA,C5BO0BvP,MAAAA,E4BPKiP,4B5BOLjP,CAAAA,E4BPoCuR,O5BOpCvR,C4BP4CmR,Q5BO5CnR,CAAAA;;;;AAEnB,iB4BLPwP,6BAAAA,C5BKO,MAAA,E4BL+BP,4B5BK/B,CAAA,E4BL8DsC,O5BK9D,C4BLsEL,S5BKtE,CAAA;;;;AC7BjBrV,iB2B4BU4T,uBAAAA,C3BdP,MAAA,E2BcuCP,6B3BdvC,CAAA,E2BcuEqC,O3BdvE,C2Bc+EJ,Q3Bd/E,CAAA;;;;AATqBvV,iB2B2Bd8T,8BAAAA,C3B3BgB1T,MAAAA,E2B2BuBkT,6B3B3BvBlT,CAAAA,E2B2BuDuV,O3B3BvDvV,C2B2B+DkV,S3B3B/DlV,CAAAA;;;;ADKxC;;;;;;;iB6BCwBgU,yBAAAA,SAAkCJ,kCAAkC2B,QAAQ5B,iBAAiBG;;;;;;A7BgBrH;;AAAyCrU,iB6BRjByU,0BAAAA,C7BQiBzU,MAAAA,E6BRkBoU,gC7BQlBpU,CAAAA,E6BRqD8V,O7BQrD9V,C6BR6DkU,gB7BQ7DlU,C6BR8EsU,iB7BQ9EtU,CAAAA,CAAAA;;;;U8BpBxB6U,6BAAAA;UACLM;;WAECC;;;;;cAKGN,QAAQF;;A9BYA7U,U8BVPgV,cAAAA,C9BUqB;EAAA,SAAA,EAAA,MAAA;EAAA,gBAAG/U,EAAAA,MAAAA;EAAO,WAAEuE,EAAAA,MAAAA;;;;AAEnB;;;iB8BFPyQ,uBAAAA,SAAgCH,gCAAgCiB,QAAQf;;;;A9BjBhG;;;U+BHiBM,iBAAAA;;WAEJD;;;;YAICF;;;;E/BcUnV,cAAAA,EAAAA,MAAc;;;;;AAChBF,U+BNLyV,sBAAAA,C/BMKzV;EAAW,MACZsE,E+BNTgR,Y/BMShR;EAAU,WAAA,E+BLd+Q,O/BKc;;W+BHlBA;;A9B3BW;;;;;;AAOQ/U,iB8B4BRoV,gBAAAA,C9B5BUjV,MAAAA,E8B4BegV,sB9B5BfhV,CAAAA,E8B4BwCwV,O9B5BxCxV,C8B4BgD+U,iB9B5BhD/U,CAAAA;;;;;;;;;;;;ADqBlC;;;;;;;AAE+B;;;iBgCFPuV,oBAAAA,SAA6BF,6BAA6BG,QAAQJ;A/B5BlE;;;AAMCvV,iB+B0BD4V,2BAAAA,C/B1BGzV,MAAAA,E+B0BiCqV,0B/B1BjCrV,CAAAA,E+B0B8DwV,O/B1B9DxV,C+B0BsEmV,S/B1BtEnV,CAAAA;;;;;;;;;;;;AAKbH,iB+BiCU6V,qBAAAA,C/BjCRxV,MAAAA,E+BiCsCoV,2B/BjCtCpV,CAAAA,E+BiCoEsV,O/BjCpEtV,C+BiC4EkV,Q/BjC5ElV,CAAAA;;;;AAEOL,iB+BmCC8V,4BAAAA,C/BnCC3V,MAAAA,E+BmCoCsV,2B/BnCpCtV,CAAAA,E+BmCkEwV,O/BnClExV,C+BmC0EmV,S/BnC1EnV,CAAAA"}
@@ -5431,6 +5431,32 @@ function getLpFundingDeposit({ funding, availableInQuote, minimumInQuote = 0n, q
5431
5431
  amount1: quoteTokenIndex === 1 ? quoteAmount : ceilDiv(assetValue * priceSquared, Q96$4 * Q96$4)
5432
5432
  };
5433
5433
  }
5434
+ /**
5435
+ * Largest raw size whose range principal needs at most `amount` of the given token.
5436
+ * Undefined when the price sits outside every range on that token's side, so no
5437
+ * amount of that token buys any liquidity.
5438
+ */
5439
+ function getLpPositionSizeForTokenAmount(params) {
5440
+ const { tokenIndex, amount,...funding } = params;
5441
+ if (amount < 0n) throw new Error("Invalid LP token amount");
5442
+ if (amount === 0n) return 0n;
5443
+ const principalFor = (positionSize) => {
5444
+ const { principal } = getLpPositionFunding({
5445
+ ...funding,
5446
+ positionSize
5447
+ });
5448
+ return tokenIndex === 0 ? principal.amount0 : principal.amount1;
5449
+ };
5450
+ let low = 0n;
5451
+ let high = (1n << 128n) - 1n;
5452
+ if (principalFor(high) === 0n) return void 0;
5453
+ while (low < high) {
5454
+ const mid = (low + high + 1n) / 2n;
5455
+ if (principalFor(mid) <= amount) low = mid;
5456
+ else high = mid - 1n;
5457
+ }
5458
+ return low;
5459
+ }
5434
5460
  /** Largest raw size funded by available collateral, including native-token rounding. */
5435
5461
  function getMaxLpPositionSize(params) {
5436
5462
  if (params.minimumRequirement && (params.minimumRequirement.referenceSize <= 0n || params.minimumRequirement.requiredInQuote < 0n)) throw new Error("Invalid reference requirement");
@@ -8429,5 +8455,5 @@ async function swapExactOutViaRouterAndWait(params) {
8429
8455
  }
8430
8456
 
8431
8457
  //#endregion
8432
- export { AmountExceedsUint128Error, InvalidSwapTokenError, LP_RANGE_HORIZONS_DAYS, LP_RANGE_HORIZONS_YEARS, MSG_SENDER, MissingSweepRecipientError, PERMIT2_ADDRESS, QuoterUnavailableError, SETTLE_ALL, SWAP_EXACT_IN_SINGLE, SWAP_EXACT_OUT_SINGLE, SWEEP, TAKE_ALL, UNISWAP_V3_ADDRESSES, UNISWAP_V4_ADDRESSES, UnsupportedChainError, V3_SWAP_EXACT_IN, V3_SWAP_EXACT_OUT, V4_SWAP, annualizeLpFeeReturn, approveErc20ForPermit2, approveErc20ForPermit2AndWait, approveRouterViaPermit2, approveRouterViaPermit2AndWait, buildV3ExactOutSwapExecuteArgs, buildV3ExactOutSwapExecuteCalldata, buildV3SwapExecuteArgs, buildV3SwapExecuteCalldata, buildV4ExactOutSwapExecuteArgs, buildV4ExactOutSwapExecuteCalldata, buildV4SwapExecuteArgs, buildV4SwapExecuteCalldata, calculateLpPositionVolatility, calculateV3LpAccounting, checkRouterApproval, encodeV3Path, estimateLpFees, expectedTimeInRange, getAmountsForLiquidity, getLpDepositAmounts, getLpDepositBreakdown, getLpFeeReturnSeries, getLpFundingDeposit, getLpGreeks, getLpPositionFunding, getLpPositionHistory, getMaxLpPositionSize, getUnhedgedLpRanges, getUniswapV3Addresses, getUniswapV3PoolBalances, getUniswapV4Addresses, getV3LpHistoryAccounting, normalCdf, pInRangeAt, quoteSwapExactInViaRouter, quoteSwapExactInViaV3Router, quoteSwapExactOutViaRouter, quoteSwapExactOutViaV3Router, quoteTokenPrices, quoteV3ExactIn, quoteV3ExactOut, quoteV4ExactInByPoolKey, rangeStats, resolveSwapRoute, resolveV3SwapRoute, summarizeLpPositionHistory, swapExactInViaRouter, swapExactInViaRouterAndWait, swapExactInViaV3Router, swapExactOutViaRouter, swapExactOutViaRouterAndWait, swapExactOutViaV3Router };
8458
+ export { AmountExceedsUint128Error, InvalidSwapTokenError, LP_RANGE_HORIZONS_DAYS, LP_RANGE_HORIZONS_YEARS, MSG_SENDER, MissingSweepRecipientError, PERMIT2_ADDRESS, QuoterUnavailableError, SETTLE_ALL, SWAP_EXACT_IN_SINGLE, SWAP_EXACT_OUT_SINGLE, SWEEP, TAKE_ALL, UNISWAP_V3_ADDRESSES, UNISWAP_V4_ADDRESSES, UnsupportedChainError, V3_SWAP_EXACT_IN, V3_SWAP_EXACT_OUT, V4_SWAP, annualizeLpFeeReturn, approveErc20ForPermit2, approveErc20ForPermit2AndWait, approveRouterViaPermit2, approveRouterViaPermit2AndWait, buildV3ExactOutSwapExecuteArgs, buildV3ExactOutSwapExecuteCalldata, buildV3SwapExecuteArgs, buildV3SwapExecuteCalldata, buildV4ExactOutSwapExecuteArgs, buildV4ExactOutSwapExecuteCalldata, buildV4SwapExecuteArgs, buildV4SwapExecuteCalldata, calculateLpPositionVolatility, calculateV3LpAccounting, checkRouterApproval, encodeV3Path, estimateLpFees, expectedTimeInRange, getAmountsForLiquidity, getLpDepositAmounts, getLpDepositBreakdown, getLpFeeReturnSeries, getLpFundingDeposit, getLpGreeks, getLpPositionFunding, getLpPositionHistory, getLpPositionSizeForTokenAmount, getMaxLpPositionSize, getUnhedgedLpRanges, getUniswapV3Addresses, getUniswapV3PoolBalances, getUniswapV4Addresses, getV3LpHistoryAccounting, normalCdf, pInRangeAt, quoteSwapExactInViaRouter, quoteSwapExactInViaV3Router, quoteSwapExactOutViaRouter, quoteSwapExactOutViaV3Router, quoteTokenPrices, quoteV3ExactIn, quoteV3ExactOut, quoteV4ExactInByPoolKey, rangeStats, resolveSwapRoute, resolveV3SwapRoute, summarizeLpPositionHistory, swapExactInViaRouter, swapExactInViaRouterAndWait, swapExactInViaV3Router, swapExactOutViaRouter, swapExactOutViaRouterAndWait, swapExactOutViaV3Router };
8433
8459
  //# sourceMappingURL=index.js.map