@panoptic-eng/sdk 1.0.54 → 1.0.56
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/deployments.js +2 -2
- package/dist/deployments.js.map +1 -1
- package/dist/index.d.ts +44 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +270 -50
- package/dist/index.js.map +1 -1
- package/dist/{irm-BsRdsXMS.js → irm-Dwl2er4W.js} +2 -2
- package/dist/panoptic/v2/index.d.ts +185 -1
- package/dist/panoptic/v2/index.d.ts.map +1 -1
- package/dist/panoptic/v2/index.js +327 -22
- package/dist/panoptic/v2/index.js.map +1 -1
- package/dist/panoptic/v2/react-public.d.ts +185 -1
- package/dist/panoptic/v2/react-public.d.ts.map +1 -1
- package/dist/panoptic/v2/react-public.js +327 -22
- package/dist/panoptic/v2/react-public.js.map +1 -1
- package/dist/{router-kAllFA4i.js → router-BDp3WQqI.js} +19 -10
- package/dist/{router-BhJqStSJ.js → router-CJCJkqFo.js} +1 -1
- package/dist/uniswap/index.d.ts +85 -1
- package/dist/uniswap/index.d.ts.map +1 -1
- package/dist/uniswap/index.js +131 -10
- package/dist/uniswap/index.js.map +1 -1
- package/dist/{v2-DZ8JTfEs.js → v2-DvrVwC5h.js} +306 -10
- package/dist/zodiac/index.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1,12 +1,210 @@
|
|
|
1
|
-
import { BaseError, ContractFunctionExecutionError, ContractFunctionRevertedError, concat, decodeAbiParameters, decodeFunctionData, encodeAbiParameters, encodeFunctionData, encodePacked, getAddress, hexToBigInt, keccak256, maxUint256, parseAbi, toBytes, toFunctionSelector, zeroAddress } from "viem";
|
|
1
|
+
import { BaseError, ContractFunctionExecutionError, ContractFunctionRevertedError, concat, decodeAbiParameters, decodeFunctionData, encodeAbiParameters, encodeFunctionData, encodePacked, erc20Abi, getAddress, hexToBigInt, keccak256, maxUint256, parseAbi, toBytes, toFunctionSelector, zeroAddress } from "viem";
|
|
2
|
+
import { z } from "zod";
|
|
2
3
|
import { estimateFeesPerGas, getBlock, getBlockNumber, getFeeHistory, readContract, simulateContract, writeContract } from "viem/actions";
|
|
3
4
|
import Decimal from "decimal.js";
|
|
4
5
|
import { useCallback, useEffect, useMemo, useRef, useState } from "react";
|
|
5
6
|
import { useAccount, useReadContract, useSimulateContract, useWaitForTransactionReceipt, useWriteContract } from "wagmi";
|
|
6
|
-
import { z } from "zod";
|
|
7
7
|
import { GraphQLClient } from "graphql-request";
|
|
8
8
|
import gql from "graphql-tag";
|
|
9
9
|
|
|
10
|
+
//#region src/lending/normalize.ts
|
|
11
|
+
function normalizeUnsignedBigInt(value) {
|
|
12
|
+
let normalized;
|
|
13
|
+
if (typeof value === "bigint") normalized = value;
|
|
14
|
+
else if (typeof value === "string" && /^\d+$/.test(value)) normalized = BigInt(value);
|
|
15
|
+
else if (typeof value === "number" && Number.isSafeInteger(value)) normalized = BigInt(value);
|
|
16
|
+
else throw new TypeError("Expected an unsigned bigint-compatible value");
|
|
17
|
+
if (normalized < 0n) throw new RangeError("Expected a nonnegative value");
|
|
18
|
+
return normalized;
|
|
19
|
+
}
|
|
20
|
+
function normalizeTokenDecimals(value) {
|
|
21
|
+
const normalized = typeof value === "string" && /^\d+$/.test(value) ? Number(value) : value;
|
|
22
|
+
if (typeof normalized !== "number" || !Number.isSafeInteger(normalized) || normalized < 0 || normalized > 255) throw new RangeError("Expected token decimals between 0 and 255");
|
|
23
|
+
return normalized;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
//#endregion
|
|
27
|
+
//#region src/lending/aave.ts
|
|
28
|
+
const providerAbi = parseAbi(["function getPoolDataProvider() view returns (address)", "function getPriceOracle() view returns (address)"]);
|
|
29
|
+
const dataAbi = parseAbi([
|
|
30
|
+
"function getAllReservesTokens() view returns ((string symbol, address tokenAddress)[])",
|
|
31
|
+
"function getAllATokens() view returns ((string symbol, address tokenAddress)[])",
|
|
32
|
+
"function getUserReserveData(address asset, address user) view returns (uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint40,bool)"
|
|
33
|
+
]);
|
|
34
|
+
const oracleAbi = parseAbi(["function BASE_CURRENCY_UNIT() view returns (uint256)", "function getAssetPrice(address asset) view returns (uint256)"]);
|
|
35
|
+
/** Reads accrued Aave V3 balances and oracle prices at a single block. */
|
|
36
|
+
async function getAaveHoldings({ client, provider, account }) {
|
|
37
|
+
const blockNumber = normalizeUnsignedBigInt(await client.getBlockNumber());
|
|
38
|
+
const [dataProvider, oracle] = await client.multicall({
|
|
39
|
+
blockNumber,
|
|
40
|
+
allowFailure: false,
|
|
41
|
+
contracts: [{
|
|
42
|
+
address: provider,
|
|
43
|
+
abi: providerAbi,
|
|
44
|
+
functionName: "getPoolDataProvider"
|
|
45
|
+
}, {
|
|
46
|
+
address: provider,
|
|
47
|
+
abi: providerAbi,
|
|
48
|
+
functionName: "getPriceOracle"
|
|
49
|
+
}]
|
|
50
|
+
});
|
|
51
|
+
const [reserves, receipts, rawPriceUnit] = await Promise.all([
|
|
52
|
+
client.readContract({
|
|
53
|
+
address: dataProvider,
|
|
54
|
+
abi: dataAbi,
|
|
55
|
+
functionName: "getAllReservesTokens",
|
|
56
|
+
blockNumber
|
|
57
|
+
}),
|
|
58
|
+
client.readContract({
|
|
59
|
+
address: dataProvider,
|
|
60
|
+
abi: dataAbi,
|
|
61
|
+
functionName: "getAllATokens",
|
|
62
|
+
blockNumber
|
|
63
|
+
}),
|
|
64
|
+
client.readContract({
|
|
65
|
+
address: oracle,
|
|
66
|
+
abi: oracleAbi,
|
|
67
|
+
functionName: "BASE_CURRENCY_UNIT",
|
|
68
|
+
blockNumber
|
|
69
|
+
})
|
|
70
|
+
]);
|
|
71
|
+
const priceUnit = normalizeUnsignedBigInt(rawPriceUnit);
|
|
72
|
+
const rawBalances = await client.multicall({
|
|
73
|
+
blockNumber,
|
|
74
|
+
allowFailure: false,
|
|
75
|
+
contracts: reserves.map((reserve) => ({
|
|
76
|
+
address: dataProvider,
|
|
77
|
+
abi: dataAbi,
|
|
78
|
+
functionName: "getUserReserveData",
|
|
79
|
+
args: [reserve.tokenAddress, account]
|
|
80
|
+
}))
|
|
81
|
+
});
|
|
82
|
+
const balances = rawBalances.map(([supplied, stableDebt, variableDebt]) => [
|
|
83
|
+
normalizeUnsignedBigInt(supplied),
|
|
84
|
+
normalizeUnsignedBigInt(stableDebt),
|
|
85
|
+
normalizeUnsignedBigInt(variableDebt)
|
|
86
|
+
]);
|
|
87
|
+
const holdings = await Promise.all(reserves.flatMap((reserve, i) => {
|
|
88
|
+
const [supplied, stableDebt, variableDebt] = balances[i];
|
|
89
|
+
const debt = stableDebt + variableDebt;
|
|
90
|
+
if (supplied === 0n && debt === 0n) return [];
|
|
91
|
+
return [(async () => {
|
|
92
|
+
const [rawDecimals, rawPrice] = await Promise.all([client.readContract({
|
|
93
|
+
address: reserve.tokenAddress,
|
|
94
|
+
abi: erc20Abi,
|
|
95
|
+
functionName: "decimals",
|
|
96
|
+
blockNumber
|
|
97
|
+
}), client.readContract({
|
|
98
|
+
address: oracle,
|
|
99
|
+
abi: oracleAbi,
|
|
100
|
+
functionName: "getAssetPrice",
|
|
101
|
+
args: [reserve.tokenAddress],
|
|
102
|
+
blockNumber
|
|
103
|
+
})]);
|
|
104
|
+
const decimals = normalizeTokenDecimals(rawDecimals);
|
|
105
|
+
const price = normalizeUnsignedBigInt(rawPrice);
|
|
106
|
+
return {
|
|
107
|
+
address: reserve.tokenAddress,
|
|
108
|
+
symbol: reserve.symbol,
|
|
109
|
+
decimals,
|
|
110
|
+
supplied,
|
|
111
|
+
debt,
|
|
112
|
+
price,
|
|
113
|
+
priceUnit
|
|
114
|
+
};
|
|
115
|
+
})()];
|
|
116
|
+
}));
|
|
117
|
+
return {
|
|
118
|
+
holdings,
|
|
119
|
+
receiptTokens: receipts.map((token) => token.tokenAddress),
|
|
120
|
+
blockNumber
|
|
121
|
+
};
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
//#endregion
|
|
125
|
+
//#region src/lending/morpho.ts
|
|
126
|
+
const amount = z.union([z.string().regex(/^\d+$/), z.number().int().nonnegative().safe().transform((value) => value.toString())]).transform(normalizeUnsignedBigInt);
|
|
127
|
+
const asset = z.object({
|
|
128
|
+
address: z.string().transform((value) => getAddress(value)),
|
|
129
|
+
symbol: z.string(),
|
|
130
|
+
decimals: z.union([z.number(), z.string()]).transform(normalizeTokenDecimals),
|
|
131
|
+
price: z.object({ usd: z.number().finite().nonnegative().nullable() }).nullable()
|
|
132
|
+
});
|
|
133
|
+
const responseSchema = z.object({ data: z.object({ marketPositions: z.object({ items: z.array(z.object({
|
|
134
|
+
market: z.object({
|
|
135
|
+
marketId: z.string(),
|
|
136
|
+
loanAsset: asset,
|
|
137
|
+
collateralAsset: asset.nullable()
|
|
138
|
+
}),
|
|
139
|
+
state: z.object({
|
|
140
|
+
supplyAssets: amount,
|
|
141
|
+
borrowAssets: amount,
|
|
142
|
+
collateral: amount
|
|
143
|
+
})
|
|
144
|
+
})) }) }) });
|
|
145
|
+
/** Indexed Morpho Blue balances; amounts include the indexer's accrued interest. */
|
|
146
|
+
async function getMorphoHoldings(account, chainId) {
|
|
147
|
+
const holdings = [];
|
|
148
|
+
for (let skip = 0; skip < 1e4; skip += 100) {
|
|
149
|
+
const response = await fetch("https://api.morpho.org/graphql", {
|
|
150
|
+
method: "POST",
|
|
151
|
+
headers: { "Content-Type": "application/json" },
|
|
152
|
+
signal: AbortSignal.timeout(15e3),
|
|
153
|
+
body: JSON.stringify({
|
|
154
|
+
query: `query Positions($account: [String!], $chains: [Int!], $skip: Int!) {
|
|
155
|
+
marketPositions(first: 100, skip: $skip, where: {userAddress_in: $account, chainId_in: $chains}) {
|
|
156
|
+
items { market { marketId loanAsset { address symbol decimals price { usd } }
|
|
157
|
+
collateralAsset { address symbol decimals price { usd } } }
|
|
158
|
+
state { supplyAssets borrowAssets collateral } }
|
|
159
|
+
}
|
|
160
|
+
}`,
|
|
161
|
+
variables: {
|
|
162
|
+
account: [account],
|
|
163
|
+
chains: [chainId],
|
|
164
|
+
skip
|
|
165
|
+
}
|
|
166
|
+
})
|
|
167
|
+
});
|
|
168
|
+
if (!response.ok) throw new Error("Morpho positions unavailable");
|
|
169
|
+
const body = await response.json();
|
|
170
|
+
if (typeof body === "object" && body !== null && "errors" in body) throw new Error("Morpho query failed");
|
|
171
|
+
const items = responseSchema.parse(body).data.marketPositions.items;
|
|
172
|
+
for (const { market, state } of items) {
|
|
173
|
+
const legs = [
|
|
174
|
+
{
|
|
175
|
+
token: market.loanAsset,
|
|
176
|
+
amount: state.supplyAssets,
|
|
177
|
+
kind: "supply"
|
|
178
|
+
},
|
|
179
|
+
{
|
|
180
|
+
token: market.loanAsset,
|
|
181
|
+
amount: -state.borrowAssets,
|
|
182
|
+
kind: "debt"
|
|
183
|
+
},
|
|
184
|
+
{
|
|
185
|
+
token: market.collateralAsset,
|
|
186
|
+
amount: state.collateral,
|
|
187
|
+
kind: "collateral"
|
|
188
|
+
}
|
|
189
|
+
];
|
|
190
|
+
for (const leg of legs) {
|
|
191
|
+
if (leg.amount === 0n) continue;
|
|
192
|
+
if (leg.token === null) throw new Error("Missing Morpho collateral asset");
|
|
193
|
+
holdings.push({
|
|
194
|
+
...leg.token,
|
|
195
|
+
amount: leg.amount,
|
|
196
|
+
kind: leg.kind,
|
|
197
|
+
marketId: market.marketId,
|
|
198
|
+
priceUsd: leg.token.price?.usd?.toString() ?? null
|
|
199
|
+
});
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
if (items.length < 100) return holdings;
|
|
203
|
+
}
|
|
204
|
+
throw new Error("Morpho position pagination limit exceeded");
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
//#endregion
|
|
10
208
|
//#region src/abis/CollateralTracker.ts
|
|
11
209
|
const CollateralTrackerAbi = [
|
|
12
210
|
{
|
|
@@ -23652,7 +23850,7 @@ const UINT24_MASK = (1n << 24n) - 1n;
|
|
|
23652
23850
|
|
|
23653
23851
|
//#endregion
|
|
23654
23852
|
//#region src/panoptic/v2/reads/pool.ts
|
|
23655
|
-
const erc20Abi$
|
|
23853
|
+
const erc20Abi$3 = [
|
|
23656
23854
|
{
|
|
23657
23855
|
type: "function",
|
|
23658
23856
|
name: "symbol",
|
|
@@ -23746,33 +23944,33 @@ async function getPoolMetadata(params) {
|
|
|
23746
23944
|
const erc20Contracts = [...isToken0Native ? [] : [
|
|
23747
23945
|
{
|
|
23748
23946
|
address: token0Asset,
|
|
23749
|
-
abi: erc20Abi$
|
|
23947
|
+
abi: erc20Abi$3,
|
|
23750
23948
|
functionName: "symbol"
|
|
23751
23949
|
},
|
|
23752
23950
|
{
|
|
23753
23951
|
address: token0Asset,
|
|
23754
|
-
abi: erc20Abi$
|
|
23952
|
+
abi: erc20Abi$3,
|
|
23755
23953
|
functionName: "decimals"
|
|
23756
23954
|
},
|
|
23757
23955
|
{
|
|
23758
23956
|
address: token0Asset,
|
|
23759
|
-
abi: erc20Abi$
|
|
23957
|
+
abi: erc20Abi$3,
|
|
23760
23958
|
functionName: "name"
|
|
23761
23959
|
}
|
|
23762
23960
|
], ...isToken1Native ? [] : [
|
|
23763
23961
|
{
|
|
23764
23962
|
address: token1Asset,
|
|
23765
|
-
abi: erc20Abi$
|
|
23963
|
+
abi: erc20Abi$3,
|
|
23766
23964
|
functionName: "symbol"
|
|
23767
23965
|
},
|
|
23768
23966
|
{
|
|
23769
23967
|
address: token1Asset,
|
|
23770
|
-
abi: erc20Abi$
|
|
23968
|
+
abi: erc20Abi$3,
|
|
23771
23969
|
functionName: "decimals"
|
|
23772
23970
|
},
|
|
23773
23971
|
{
|
|
23774
23972
|
address: token1Asset,
|
|
23775
|
-
abi: erc20Abi$
|
|
23973
|
+
abi: erc20Abi$3,
|
|
23776
23974
|
functionName: "name"
|
|
23777
23975
|
}
|
|
23778
23976
|
]];
|
|
@@ -24074,7 +24272,7 @@ async function getAccountCollateral(params) {
|
|
|
24074
24272
|
//#endregion
|
|
24075
24273
|
//#region src/panoptic/v2/reads/collateral.ts
|
|
24076
24274
|
const SECONDS_PER_YEAR$3 = 31536000n;
|
|
24077
|
-
const erc20Abi$
|
|
24275
|
+
const erc20Abi$2 = [{
|
|
24078
24276
|
type: "function",
|
|
24079
24277
|
name: "symbol",
|
|
24080
24278
|
inputs: [],
|
|
@@ -24183,11 +24381,11 @@ async function getCollateralData(params) {
|
|
|
24183
24381
|
const [symbol, decimals] = await client.multicall({
|
|
24184
24382
|
contracts: [{
|
|
24185
24383
|
address: assetAddress,
|
|
24186
|
-
abi: erc20Abi$
|
|
24384
|
+
abi: erc20Abi$2,
|
|
24187
24385
|
functionName: "symbol"
|
|
24188
24386
|
}, {
|
|
24189
24387
|
address: assetAddress,
|
|
24190
|
-
abi: erc20Abi$
|
|
24388
|
+
abi: erc20Abi$2,
|
|
24191
24389
|
functionName: "decimals"
|
|
24192
24390
|
}],
|
|
24193
24391
|
allowFailure: false
|
|
@@ -24585,7 +24783,7 @@ const VAULT_DISPLAY_NAMES_PER_CHAIN = {
|
|
|
24585
24783
|
[sepoliaVaults.wethPlpVault.toLowerCase()]: "PLP Vault",
|
|
24586
24784
|
[sepoliaVaults.usdcPlpVault.toLowerCase()]: "Unicorn Vault"
|
|
24587
24785
|
},
|
|
24588
|
-
[ROBINHOOD_CHAIN_ID]: { [robinhoodUsdgVault.toLowerCase()]: "
|
|
24786
|
+
[ROBINHOOD_CHAIN_ID]: { [robinhoodUsdgVault.toLowerCase()]: "0DTE +67∆ Vault" }
|
|
24589
24787
|
};
|
|
24590
24788
|
const VAULT_DISPLAY_NAME_RESOLVERS_PER_CHAIN = {
|
|
24591
24789
|
[MAINNET_CHAIN_ID]: {
|
|
@@ -24602,7 +24800,7 @@ const VAULT_DISPLAY_NAME_RESOLVERS_PER_CHAIN = {
|
|
|
24602
24800
|
[sepoliaVaults.wethPlpVault.toLowerCase()]: () => "PLP Vault",
|
|
24603
24801
|
[sepoliaVaults.usdcPlpVault.toLowerCase()]: () => "Unicorn Vault"
|
|
24604
24802
|
},
|
|
24605
|
-
[ROBINHOOD_CHAIN_ID]: { [robinhoodUsdgVault.toLowerCase()]: () => "
|
|
24803
|
+
[ROBINHOOD_CHAIN_ID]: { [robinhoodUsdgVault.toLowerCase()]: () => "0DTE +67∆ Vault" }
|
|
24606
24804
|
};
|
|
24607
24805
|
function resolveVaultDisplayName({ chainId, vaultAddress: vaultAddress$1, underlyingSymbol, fallbackName }) {
|
|
24608
24806
|
const vaultAddressLower = vaultAddress$1.toLowerCase();
|
|
@@ -25379,7 +25577,7 @@ const trackerLeaves = [
|
|
|
25379
25577
|
}
|
|
25380
25578
|
];
|
|
25381
25579
|
const dispatchLeaf = {
|
|
25382
|
-
description: "Dispatch mint/burn options on
|
|
25580
|
+
description: "Dispatch mint/burn options on PanopticPool",
|
|
25383
25581
|
target: pool,
|
|
25384
25582
|
functionSignature: dispatchSignature,
|
|
25385
25583
|
addressArguments: [],
|
|
@@ -25412,8 +25610,8 @@ const UsdgPlpVaultRobinhoodProdConfig = {
|
|
|
25412
25610
|
artifactSet: "robinhood-prod",
|
|
25413
25611
|
vaultAssetIndex: 1n,
|
|
25414
25612
|
manageCycleIntervalMs: 6e5,
|
|
25415
|
-
vaultCapInUnderlying:
|
|
25416
|
-
vaultCapInShares:
|
|
25613
|
+
vaultCapInUnderlying: 100000000n,
|
|
25614
|
+
vaultCapInShares: 100000000000000n,
|
|
25417
25615
|
allowUnlimitedDepositRequestIfCapNotReached: true,
|
|
25418
25616
|
maxBuyingPowerUsageBps: 6600,
|
|
25419
25617
|
poolDeploymentBlock: Number(ROBINHOOD_SPY_USDG_POOL_DEPLOYMENT_BLOCK),
|
|
@@ -25436,13 +25634,14 @@ const UsdgPlpVaultRobinhoodProdConfig = {
|
|
|
25436
25634
|
allocationBps: 1e4
|
|
25437
25635
|
}] },
|
|
25438
25636
|
deltaHedge: {
|
|
25637
|
+
targetDeltaBps: 6700n,
|
|
25439
25638
|
deltaThresholdBps: 200n,
|
|
25440
25639
|
maxHedgeSlots: 3
|
|
25441
25640
|
},
|
|
25442
25641
|
alerts: { outOfRangeEnabled: true },
|
|
25443
25642
|
reporting: {
|
|
25444
25643
|
assetSymbol: "USDG",
|
|
25445
|
-
vaultLabel: "
|
|
25644
|
+
vaultLabel: "0DTE +67∆ Vault"
|
|
25446
25645
|
}
|
|
25447
25646
|
};
|
|
25448
25647
|
|
|
@@ -26734,6 +26933,8 @@ async function resolveMainnetV3AuthorizationArtifacts({ viemClient, chainId, vau
|
|
|
26734
26933
|
const MAINNET_DEPLOYMENT$1 = requireChainDeployment(MAINNET_CHAIN_ID);
|
|
26735
26934
|
const MAINNET_POOL_RETIREMENT_BLOCK = 25898997n;
|
|
26736
26935
|
const MAINNET_POOL_RETIREMENT_TRANSACTION = "0xfca6a6dd0f081649dd6f50496175a58e6a119d574b594390beab23618b05ba2c";
|
|
26936
|
+
const ROBINHOOD_USDG_VAULT_DEPLOYMENT_BLOCK = 63972776n;
|
|
26937
|
+
const ROBINHOOD_USDG_VAULT_DEPLOYMENT_TRANSACTION = "0x738c8a6d30a45f9b71d2d6260aa1c04aff558489631b3a9c6ccd5f49e0f57df4";
|
|
26737
26938
|
const POOL_INFO_ARRAY_ABI = {
|
|
26738
26939
|
type: "tuple[]",
|
|
26739
26940
|
components: [
|
|
@@ -26852,6 +27053,15 @@ const MAINNET_VAULT_HISTORIES = [{
|
|
|
26852
27053
|
}
|
|
26853
27054
|
]
|
|
26854
27055
|
}];
|
|
27056
|
+
const ROBINHOOD_VAULT_HISTORIES = [{
|
|
27057
|
+
vaultAddress: RobinhoodUSDGPLPVaultPoolInfos.vaultAddress,
|
|
27058
|
+
poolConfigurations: [poolConfiguration(ROBINHOOD_USDG_VAULT_DEPLOYMENT_BLOCK, ROBINHOOD_USDG_VAULT_DEPLOYMENT_TRANSACTION, RobinhoodUSDGPLPVaultPoolInfos.poolInfos)],
|
|
27059
|
+
managerRootTransitions: [{
|
|
27060
|
+
activationBlockNumber: ROBINHOOD_USDG_VAULT_DEPLOYMENT_BLOCK,
|
|
27061
|
+
transactionHash: ROBINHOOD_USDG_VAULT_DEPLOYMENT_TRANSACTION,
|
|
27062
|
+
manageRoot: "0x5ef821042a85fea05901e4612e8a8d60efd2468ca08f0810d5691e23ea98967f"
|
|
27063
|
+
}]
|
|
27064
|
+
}];
|
|
26855
27065
|
function copyPoolConfiguration(configuration) {
|
|
26856
27066
|
return {
|
|
26857
27067
|
...configuration,
|
|
@@ -26869,9 +27079,10 @@ function copyHistory(history) {
|
|
|
26869
27079
|
};
|
|
26870
27080
|
}
|
|
26871
27081
|
function findHistory(chainId, vaultAddress$1) {
|
|
26872
|
-
|
|
27082
|
+
const histories = chainId === MAINNET_CHAIN_ID ? MAINNET_VAULT_HISTORIES : chainId === ROBINHOOD_CHAIN_ID ? ROBINHOOD_VAULT_HISTORIES : null;
|
|
27083
|
+
if (histories === null) return null;
|
|
26873
27084
|
const normalizedVault = vaultAddress$1.toLowerCase();
|
|
26874
|
-
const history =
|
|
27085
|
+
const history = histories.find((candidate) => candidate.vaultAddress.toLowerCase() === normalizedVault);
|
|
26875
27086
|
return history === void 0 ? null : copyHistory(history);
|
|
26876
27087
|
}
|
|
26877
27088
|
function latestAtBlock(values, blockNumber) {
|
|
@@ -27620,7 +27831,7 @@ async function getLendingAllocationRows({ client, chainId, vaultAddress: vaultAd
|
|
|
27620
27831
|
|
|
27621
27832
|
//#endregion
|
|
27622
27833
|
//#region src/hypoVault/analytics/vaultLendingAllocation.ts
|
|
27623
|
-
const erc20Abi = [
|
|
27834
|
+
const erc20Abi$1 = [
|
|
27624
27835
|
{
|
|
27625
27836
|
type: "function",
|
|
27626
27837
|
name: "balanceOf",
|
|
@@ -27663,15 +27874,15 @@ const Q128 = 2n ** 128n;
|
|
|
27663
27874
|
* semantics (same as `~/utils/panopticMath` in the UI app, without the
|
|
27664
27875
|
* `@uniswap/v3-sdk` dependency).
|
|
27665
27876
|
*/
|
|
27666
|
-
function convert0to1(amount, sqrtPriceX96) {
|
|
27667
|
-
if (sqrtPriceX96 < Q128) return amount * sqrtPriceX96 * sqrtPriceX96 >> 192n;
|
|
27877
|
+
function convert0to1(amount$1, sqrtPriceX96) {
|
|
27878
|
+
if (sqrtPriceX96 < Q128) return amount$1 * sqrtPriceX96 * sqrtPriceX96 >> 192n;
|
|
27668
27879
|
const sp2Hi = sqrtPriceX96 * sqrtPriceX96 >> 64n;
|
|
27669
|
-
return amount * sp2Hi >> 128n;
|
|
27880
|
+
return amount$1 * sp2Hi >> 128n;
|
|
27670
27881
|
}
|
|
27671
|
-
function convert1to0(amount, sqrtPriceX96) {
|
|
27672
|
-
if (sqrtPriceX96 < Q128) return amount * 2n ** 192n / (sqrtPriceX96 * sqrtPriceX96);
|
|
27882
|
+
function convert1to0(amount$1, sqrtPriceX96) {
|
|
27883
|
+
if (sqrtPriceX96 < Q128) return amount$1 * 2n ** 192n / (sqrtPriceX96 * sqrtPriceX96);
|
|
27673
27884
|
const sp2Hi = sqrtPriceX96 * sqrtPriceX96 >> 64n;
|
|
27674
|
-
return amount * 2n ** 128n / sp2Hi;
|
|
27885
|
+
return amount$1 * 2n ** 128n / sp2Hi;
|
|
27675
27886
|
}
|
|
27676
27887
|
function adjustUnderlyingIdleBalance({ rawUnderlyingBalance, unfulfilledDepositAssets, reservedWithdrawalAssets: _reservedWithdrawalAssets }) {
|
|
27677
27888
|
const nonIdleUnderlying = unfulfilledDepositAssets;
|
|
@@ -27726,7 +27937,7 @@ async function readTokenSymbol({ client, tokenAddress, blockNumber }) {
|
|
|
27726
27937
|
if (isNativeToken(tokenAddress)) return "ETH";
|
|
27727
27938
|
return client.readContract({
|
|
27728
27939
|
address: tokenAddress,
|
|
27729
|
-
abi: erc20Abi,
|
|
27940
|
+
abi: erc20Abi$1,
|
|
27730
27941
|
functionName: "symbol",
|
|
27731
27942
|
...blockNumber === void 0 ? {} : { blockNumber }
|
|
27732
27943
|
});
|
|
@@ -27736,7 +27947,7 @@ async function readTokenDecimals({ client, tokenAddress, blockNumber }) {
|
|
|
27736
27947
|
try {
|
|
27737
27948
|
const decimals = await client.readContract({
|
|
27738
27949
|
address: tokenAddress,
|
|
27739
|
-
abi: erc20Abi,
|
|
27950
|
+
abi: erc20Abi$1,
|
|
27740
27951
|
functionName: "decimals",
|
|
27741
27952
|
...blockNumber === void 0 ? {} : { blockNumber }
|
|
27742
27953
|
});
|
|
@@ -27753,7 +27964,7 @@ async function readTokenBalance({ client, tokenAddress, owner, blockNumber }) {
|
|
|
27753
27964
|
});
|
|
27754
27965
|
return client.readContract({
|
|
27755
27966
|
address: tokenAddress,
|
|
27756
|
-
abi: erc20Abi,
|
|
27967
|
+
abi: erc20Abi$1,
|
|
27757
27968
|
functionName: "balanceOf",
|
|
27758
27969
|
args: [owner],
|
|
27759
27970
|
...blockNumber === void 0 ? {} : { blockNumber }
|
|
@@ -27764,22 +27975,22 @@ function resolveUnderlyingPoolToken({ underlyingTokenAddress, token0Address, tok
|
|
|
27764
27975
|
if (isNativeToken(token0Address)) return token0Address;
|
|
27765
27976
|
return null;
|
|
27766
27977
|
}
|
|
27767
|
-
function convertToUnderlying({ amount, sourceTokenAddress, token0Address, token1Address, underlyingPoolTokenAddress, twapTick }) {
|
|
27768
|
-
if (amount === 0n) return 0n;
|
|
27769
|
-
if (addressesEqual(sourceTokenAddress, underlyingPoolTokenAddress)) return amount;
|
|
27978
|
+
function convertToUnderlying({ amount: amount$1, sourceTokenAddress, token0Address, token1Address, underlyingPoolTokenAddress, twapTick }) {
|
|
27979
|
+
if (amount$1 === 0n) return 0n;
|
|
27980
|
+
if (addressesEqual(sourceTokenAddress, underlyingPoolTokenAddress)) return amount$1;
|
|
27770
27981
|
const sourceIsToken0 = addressesEqual(sourceTokenAddress, token0Address);
|
|
27771
27982
|
const sourceIsToken1 = addressesEqual(sourceTokenAddress, token1Address);
|
|
27772
27983
|
const underlyingIsToken0 = addressesEqual(underlyingPoolTokenAddress, token0Address);
|
|
27773
27984
|
const underlyingIsToken1 = addressesEqual(underlyingPoolTokenAddress, token1Address);
|
|
27774
27985
|
if (!sourceIsToken0 && !sourceIsToken1 || !underlyingIsToken0 && !underlyingIsToken1) return 0n;
|
|
27775
27986
|
const sqrtPriceX96 = tickToSqrtPriceX96(BigInt(twapTick));
|
|
27776
|
-
if (sourceIsToken0 && underlyingIsToken1) return convert0to1(amount, sqrtPriceX96);
|
|
27777
|
-
if (sourceIsToken1 && underlyingIsToken0) return convert1to0(amount, sqrtPriceX96);
|
|
27987
|
+
if (sourceIsToken0 && underlyingIsToken1) return convert0to1(amount$1, sqrtPriceX96);
|
|
27988
|
+
if (sourceIsToken1 && underlyingIsToken0) return convert1to0(amount$1, sqrtPriceX96);
|
|
27778
27989
|
return 0n;
|
|
27779
27990
|
}
|
|
27780
|
-
function convertSignedToUnderlying({ amount, sourceTokenAddress, token0Address, token1Address, underlyingPoolTokenAddress, twapTick }) {
|
|
27781
|
-
if (amount >= 0n) return convertToUnderlying({
|
|
27782
|
-
amount,
|
|
27991
|
+
function convertSignedToUnderlying({ amount: amount$1, sourceTokenAddress, token0Address, token1Address, underlyingPoolTokenAddress, twapTick }) {
|
|
27992
|
+
if (amount$1 >= 0n) return convertToUnderlying({
|
|
27993
|
+
amount: amount$1,
|
|
27783
27994
|
sourceTokenAddress,
|
|
27784
27995
|
token0Address,
|
|
27785
27996
|
token1Address,
|
|
@@ -27787,7 +27998,7 @@ function convertSignedToUnderlying({ amount, sourceTokenAddress, token0Address,
|
|
|
27787
27998
|
twapTick
|
|
27788
27999
|
});
|
|
27789
28000
|
return -convertToUnderlying({
|
|
27790
|
-
amount: -amount,
|
|
28001
|
+
amount: -amount$1,
|
|
27791
28002
|
sourceTokenAddress,
|
|
27792
28003
|
token0Address,
|
|
27793
28004
|
token1Address,
|
|
@@ -29742,6 +29953,7 @@ const HypoVaultManagerConfigSchema = z.object({
|
|
|
29742
29953
|
allocationBps: z.number().int().positive().max(1e4)
|
|
29743
29954
|
})).optional() }).optional(),
|
|
29744
29955
|
deltaHedge: z.object({
|
|
29956
|
+
targetDeltaBps: z.bigint().nonnegative().max(10000n).optional(),
|
|
29745
29957
|
deltaThresholdBps: z.bigint().positive().optional(),
|
|
29746
29958
|
maxHedgeSlots: z.number().int().positive().optional(),
|
|
29747
29959
|
timedRehedge: timedRehedgeSchema.optional()
|
|
@@ -30964,32 +31176,39 @@ function calculateAnnualizedApyPct({ currentSharePrice, previousSharePrice, days
|
|
|
30964
31176
|
return Decimal.pow(growthFactor, annualizationExponent).minus(1).times(100).toNumber();
|
|
30965
31177
|
}
|
|
30966
31178
|
|
|
31179
|
+
//#endregion
|
|
31180
|
+
//#region src/hypoVault/robinhoodAccountantRuntime.ts
|
|
31181
|
+
const ROBINHOOD_PANOPTIC_VAULT_ACCOUNTANT_RUNTIME_BYTECODE = "0x608060405234801561000f575f5ffd5b5060043610610090575f3560e01c80638da5cb5b116100635780638da5cb5b14610135578063995cac6d14610145578063a519c19814610158578063d597b7361461016b578063f2fde38b1461017e575f5ffd5b8063016ff32e1461009457806328d6ae4a146100cb5780634f0e0ef3146100ec578063715018a61461012b575b5f5ffd5b6100b66100a236600461279a565b60026020525f908152604090205460ff1681565b60405190151581526020015b60405180910390f35b6100de6100d93660046127b5565b610191565b6040519081526020016100c2565b6101137f0000000000000000000000000bd7d308f8e1639fab988df18a8011f41eacad7381565b6040516001600160a01b0390911681526020016100c2565b6101336101b3565b005b5f546001600160a01b0316610113565b61013361015336600461281f565b6101c6565b61013361016636600461279a565b610598565b6100de6101793660046128d0565b6105c3565b61013361018c36600461279a565b6118b4565b6001602052815f5260405f2081600281106101aa575f80fd5b01549150829050565b6101bb6118f6565b6101c45f611922565b565b6101ce6118f6565b6001600160a01b0385165f9081526002602052604090205460ff1615610207576040516372b89e9760e11b815260040160405180910390fd5b5f5b838110156102ac575f5b818110156102a35785858281811061022d5761022d61295c565b610243926020608090920201908101915061279a565b6001600160a01b031686868481811061025e5761025e61295c565b610274926020608090920201908101915061279a565b6001600160a01b03160361029b57604051635c1523a360e11b815260040160405180910390fd5b600101610213565b50600101610209565b505f5b8181101561050a575f5b81811015610347578383828181106102d3576102d361295c565b90506020020160208101906102e8919061279a565b6001600160a01b03168484848181106103035761030361295c565b9050602002016020810190610318919061279a565b6001600160a01b03160361033f57604051637542915f60e11b815260040160405180910390fd5b6001016102b9565b505f5b84811015610501578585828181106103645761036461295c565b61037a926020608090920201908101915061279a565b6001600160a01b0316637594cdc36040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103b5573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103d99190612970565b6001600160a01b03168484848181106103f4576103f461295c565b9050602002016020810190610409919061279a565b6001600160a01b031614806104db575085858281811061042b5761042b61295c565b610441926020608090920201908101915061279a565b6001600160a01b0316634d7b09006040518163ffffffff1660e01b8152600401602060405180830381865afa15801561047c573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104a09190612970565b6001600160a01b03168484848181106104bb576104bb61295c565b90506020020160208101906104d0919061279a565b6001600160a01b0316145b156104f957604051637542915f60e11b815260040160405180910390fd5b60010161034a565b506001016102af565b50838360405160200161051e929190612999565b60408051808303601f1901815282825280516020918201206001600160a01b0389165f90815260018352929092209190915561055e918491849101612a33565b60408051808303601f1901815291815281516020928301206001600160a01b03979097165f90815260019283905220019490945550505050565b6105a06118f6565b6001600160a01b03165f908152600260205260409020805460ff19166001179055565b5f8080806105d385870187612d21565b506001600160a01b038b165f90815260016020526040812093965091945092500154826040516020016106069190612e78565b604051602081830303815290604052805190602001201461063a576040516395241ae360e01b815260040160405180910390fd5b5f825160026106499190612f07565b6001600160401b0381111561066057610660612a75565b604051908082528060200260200182016040528015610689578160200160208202803683370190505b509050885f5b8451811015611586575f5f5f8784815181106106ad576106ad61295c565b60200260200101515f01516001600160a01b03166305ecd0036040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106f3573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107179190612f1e565b905087848151811061072b5761072b61295c565b60200260200101516060015160020b61076d828b87815181106107505761075061295c565b60200260200101515f01516107659190612f39565b60020b611971565b131561078c57604051631510fe5b60e31b815260040160405180910390fd5b60605f5f8a87815181106107a2576107a261295c565b60200260200101515f01516001600160a01b031663011492288960018d8b815181106107d0576107d061295c565b60200260200101516040518463ffffffff1660e01b81526004016107f693929190612f5e565b5f60405180830381865afa158015610810573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526108379190810190613019565b50909550919350915061085890506001600160801b03808316908416613111565b95506108648160801c90565b6001600160801b03166108778360801c90565b6001600160801b031661088a9190613111565b945050505f8986815181106108a1576108a161295c565b60200260200101515f01516001600160a01b03166353aad1d96040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108e7573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061090b9190612f1e565b905089868151811061091f5761091f61295c565b60200260200101516060015160020b61093d84836107659190612f39565b131561095c57604051631510fe5b60e31b815260040160405180910390fd5b5f805b8a88815181106109715761097161295c565b602002602001015151811015610af7575f8482815181106109945761099461295c565b60200260200101519050806001600160801b03165f036109c757604051632276762d60e11b815260040160405180910390fd5b5f8c8a815181106109da576109da61295c565b602002602001015183815181106109f3576109f361295c565b602002602001015190505f610a078261198f565b90505f5b81811015610a7357610a1d83826119c9565b60020b15610a6b575f5f610a3b89610a3687868a6119e0565b611a49565b9092509050610a4a8584611ac8565b5f03610a5d579b81019b9a8b019a610a68565b818d039c50808c039b505b50505b600101610a0b565b505f5f610a8284866001611ada565b91509150610a8d8190565b600f0b82600f0b610a9e9190613111565b610aa8908d613137565b9b50610ab48160801d90565b600f0b610ac18360801d90565b600f0b610ace9190613111565b610ad8908c613137565b9a50610ae4838861315e565b9650506001909401935061095f92505050565b508a8781518110610b0a57610b0a61295c565b60209081029190910101515160405163c79ee60d60e01b81526001600160a01b038a811660048301529091169063c79ee60d90602401602060405180830381865afa158015610b5b573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b7f9190613171565b8114610b9e57604051632276762d60e11b815260040160405180910390fd5b5050505f6001600160a01b0316888581518110610bbd57610bbd61295c565b6020026020010151602001516001600160a01b031603610c195773eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee888581518110610bfe57610bfe61295c565b6020908102919091018101516001600160a01b039092169101525b5f808080805b8a51811015610dd5578c8981518110610c3a57610c3a61295c565b6020026020010151602001516001600160a01b03168b8281518110610c6157610c6161295c565b60200260200101516001600160a01b031603610c7c57600192505b8c8981518110610c8e57610c8e61295c565b6020026020010151604001516001600160a01b03168b8281518110610cb557610cb561295c565b60200260200101516001600160a01b031603610cd057600191505b5f6001600160a01b03168b8281518110610cec57610cec61295c565b60200260200101516001600160a01b031603610dcd5782610d58578c8981518110610d1957610d1961295c565b6020026020010151602001518b8281518110610d3757610d3761295c565b60200260200101906001600160a01b031690816001600160a01b0316815250505b81610dc8578c8981518110610d6f57610d6f61295c565b6020026020010151604001518b84610d88576001610d8a565b5f5b610d979060ff168461315e565b81518110610da757610da761295c565b60200260200101906001600160a01b031690816001600160a01b0316815250505b610dd5565b600101610c1f565b5081610ec25773eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6001600160a01b03168c8981518110610e0b57610e0b61295c565b6020026020010151602001516001600160a01b031614610eb3578b8881518110610e3757610e3761295c565b60209081029190910181015101516040516370a0823160e01b81526001600160a01b038b81166004830152909116906370a0823190602401602060405180830381865afa158015610e8a573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610eae9190613171565b610ebf565b886001600160a01b0316315b93505b80610f61578b8881518110610ed957610ed961295c565b6020026020010151604001516001600160a01b03166370a082318a6040518263ffffffff1660e01b8152600401610f1f91906001600160a01b0391909116815260200190565b602060405180830381865afa158015610f3a573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f5e9190613171565b92505b5f8c8981518110610f7457610f7461295c565b60200260200101515f01516001600160a01b0316637594cdc36040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fba573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fde9190612970565b6040516370a0823160e01b81526001600160a01b038c8116600483015291909116906370a0823190602401602060405180830381865afa158015611024573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110489190613171565b90508c898151811061105c5761105c61295c565b60200260200101515f01516001600160a01b0316637594cdc36040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110a2573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110c69190612970565b6001600160a01b0316634cdad506826040518263ffffffff1660e01b81526004016110f391815260200190565b602060405180830381865afa15801561110e573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111329190613171565b61113c9089613137565b97508c89815181106111505761115061295c565b60200260200101515f01516001600160a01b0316634d7b09006040518163ffffffff1660e01b8152600401602060405180830381865afa158015611196573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111ba9190612970565b6040516370a0823160e01b81526001600160a01b038c8116600483015291909116906370a0823190602401602060405180830381865afa158015611200573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112249190613171565b90508c89815181106112385761123861295c565b60200260200101515f01516001600160a01b0316634d7b09006040518163ffffffff1660e01b8152600401602060405180830381865afa15801561127e573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112a29190612970565b6001600160a01b0316634cdad506826040518263ffffffff1660e01b81526004016112cf91815260200190565b602060405180830381865afa1580156112ea573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061130e9190613171565b6113189088613137565b96505050508e6001600160a01b03168a87815181106113395761133961295c565b6020026020010151602001516001600160a01b0316146114735773eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6001600160a01b03168a87815181106113835761138361295c565b6020026020010151602001516001600160a01b03161480156113d657507f0000000000000000000000000bd7d308f8e1639fab988df18a8011f41eacad736001600160a01b03168f6001600160a01b0316145b611473578986815181106113ec576113ec61295c565b60200260200101516060015160020b6114278c88815181106114105761141061295c565b602002602001015160200151856107659190612f39565b131561144657604051631510fe5b60e31b815260040160405180910390fd5b5f61145084611b33565b905061145c8682611e4e565b955082156114715761146e8382611e4e565b92505b505b8e6001600160a01b03168a878151811061148f5761148f61295c565b6020026020010151604001516001600160a01b031614611542578986815181106114bb576114bb61295c565b60200260200101516060015160020b6114f68c88815181106114df576114df61295c565b602002602001015160400151856107659190612f39565b131561151557604051631510fe5b60e31b815260040160405180910390fd5b5f61151f84611b33565b905061152b8582611ed1565b945081156115405761153d8282611ed1565b91505b505b61155561154f8587613137565b5f611f3e565b61155f828461315e565b611569919061315e565b611573908d61315e565b9b50506001909401935061068f92505050565b505f611594888a018a612d21565b6001600160a01b0386165f90815260016020819052604090912091955090935091506115bd9050565b0154816040516020016115d09190613188565b604051602081830303815290604052805190602001201461160457604051637560978b60e11b815260040160405180910390fd5b5f5b81518110156117dd578a6001600160a01b031682828151811061162b5761162b61295c565b60200260200101516001600160a01b03166338d52e0f6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561166e573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116929190612970565b6001600160a01b0316146116b957604051635de194d760e01b815260040160405180910390fd5b5f8282815181106116cc576116cc61295c565b60209081029190910101516040516370a0823160e01b81526001600160a01b038681166004830152909116906370a0823190602401602060405180830381865afa15801561171c573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117409190613171565b90508282815181106117545761175461295c565b60200260200101516001600160a01b0316634cdad506826040518263ffffffff1660e01b815260040161178991815260200190565b602060405180830381865afa1580156117a4573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117c89190613171565b6117d2908a61315e565b985050600101611606565b505f9050805b835181101561182b578a6001600160a01b03168482815181106118085761180861295c565b60200260200101516001600160a01b03160361182357600191505b6001016117e3565b50806118a6576040516370a0823160e01b81526001600160a01b0383811660048301528b16906370a0823190602401602060405180830381865afa158015611875573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118999190613171565b6118a3908861315e565b96505b505050505050949350505050565b6118bc6118f6565b6001600160a01b0381166118ea57604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b6118f381611922565b50565b5f546001600160a01b031633146101c45760405163118cdaa760e01b81523360048201526024016118e1565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f5f821361198757611982826131c8565b611989565b815b92915050565b5f72fe0000000000fe0000000000fe0000000000fe604083901c165b6001603083021b81106119c3578160010191506119ab565b50919050565b5f6110006064603084020184901c5b069392505050565b5f80806119ed8686611f53565b90925090505f6119fd8787611f8a565b611a10906001600160801b038716612f07565b9050611a1c8787611f9c565b5f03611a3757611a2d838383611fae565b9350505050611a42565b611a2d838383612057565b9392505050565b5f5f611a558360e81c90565b60020b8460020b1215611a7257611a6b8361208b565b9150611ac1565b611a7c8360d01c90565b60020b8460020b12611a9857611a91836120fd565b9050611ac1565b611aaa611aa58486612144565b61208b565b9150611abe611ab98486612164565b6120fd565b90505b9250929050565b5f60026048603084020184901c6119d8565b5f5f5f611ae68661198f565b90505f5b818114611b29575f5f611aff8989858a612182565b9092509050611b0e8683612228565b9550611b1a8582612228565b94508260010192505050611aea565b5050935093915050565b5f5f5f8360020b12611b48578260020b611b4f565b8260020b5f035b9050620d89e8811115611b75576040516333a3bdff60e21b815260040160405180910390fd5b5f816001165f03611b8a57600160801b611b9c565b6ffffcb933bd6fad37aa2d162d1a5940015b70ffffffffffffffffffffffffffffffffff1690506002821615611bd0576ffff97272373d413259a46990580e213a0260801c5b6004821615611bef576ffff2e50f5f656932ef12357cf3c7fdcc0260801c5b6008821615611c0e576fffe5caca7e10e4e61c3624eaa0941cd00260801c5b6010821615611c2d576fffcb9843d60f6159c9db58835c9266440260801c5b6020821615611c4c576fff973b41fa98c081472e6896dfb254c00260801c5b6040821615611c6b576fff2ea16466c96a3843ec78b326b528610260801c5b6080821615611c8a576ffe5dee046a99a2a811c461f1969c30530260801c5b610100821615611caa576ffcbe86c7900a88aedcffc83b479aa3a40260801c5b610200821615611cca576ff987a7253ac413176f2b074cf7815e540260801c5b610400821615611cea576ff3392b0822b70005940c7a398e4b70f30260801c5b610800821615611d0a576fe7159475a2c29b7443b29c7fa6e889d90260801c5b611000821615611d2a576fd097f3bdfd2022b8845ad8f792aa58250260801c5b612000821615611d4a576fa9f746462d870fdf8a65dc1f90e061e50260801c5b614000821615611d6a576f70d869a156d2a1b890bb3df62baf32f70260801c5b618000821615611d8a576f31be135f97d08fd981231505542fcfa60260801c5b62010000821615611dab576f09aa508b5b7a84e1c677de54f3e99bc90260801c5b62020000821615611dcb576e5d6af8dedb81196699c329225ee6040260801c5b62040000821615611dea576d2216e584f5fa1ea926041bedfe980260801c5b62080000821615611e07576b048a170391f7dc42444e8fa20260801c5b5f8460020b1315611e2657805f1981611e2257611e226131e2565b0490505b640100000000810615611e3a576001611e3c565b5f5b60ff16602082901c0192505050919050565b5f6001600160801b036001600160a01b0383161015611ea9575f611e8e611e89611e77866122ae565b6002866001600160a01b03160a6122be565b61231c565b90505f8412611e9d5780611ea1565b805f035b915050611989565b5f611e8e611e89611eb9866122ae565b611ecc6001600160a01b03871680612345565b6123a3565b5f6001600160801b036001600160a01b0383161015611f11575f611e8e611e89611efa866122ae565b600160c01b6002876001600160a01b03160a612401565b5f611e8e611e89611f21866122ae565b600160801b611f396001600160a01b03881680612345565b612401565b5f818313611f4c5781611a42565b5090919050565b5f80611f7f611f678585603002604c011c90565b611f7186866119c9565b603087901c61ffff166124ab565b909590945092505050565b5f60806041603084020184901c6119d8565b5f60026040603084020184901c6119d8565b5f5f611fb985611b33565b90505f611fc585611b33565b90505f611ff985611fe8846001600160a01b0316866001600160a01b03166124c9565b8585036001600160a01b0316612401565b90506001600160801b038111156120235760405163528073f560e11b815260040160405180910390fd5b6001600160801b03811660d087901b62ffffff60d01b1660e889901b6001600160e81b03191601015b979650505050505050565b5f5f61206285611b33565b90505f61206e85611b33565b90505f611ff985600160601b8585036001600160a01b0316612401565b5f5f61209f61209a8460e81c90565b611b33565b90505f6120af61209a8560d01c90565b90506001600160a01b0382166120e76060866001600160801b0316901b8484036001600160a01b0316846001600160a01b0316612401565b816120f4576120f46131e2565b04949350505050565b5f5f61210c61209a8460e81c90565b90505f61211c61209a8560d01c90565b905061213c846001600160801b03168383036001600160a01b03166124c9565b949350505050565b5f611a426001600160e81b0384168360e81b6001600160e81b0319160190565b5f611a4262ffffff60d01b1984168360d01b62ffffff60d01b160190565b5f5f5f61219187878787612527565b90505f61219e8887611ac8565b1590506121ab88876125fa565b5f036121ee5780156121db576121d46121c88361260c565b61260c565b6001600160801b031690565b925061221d565b6121e76121c88361260c565b935061221d565b801561220a576121d46122046121c38460801c90565b60801b90565b61221a6122046121c38460801c90565b93505b505094509492505050565b5f5f6122348360801d90565b600f0b6122418560801d90565b600f0b019050805f84600f0b86600f0b0190505f8190508383600f0b14158061226d57508181600f0b14155b1561228b57604051633486405d60e21b815260040160405180910390fd5b608083901b6001600160801b03828701166001600160801b03198716010161204c565b5f5f821361198757815f03611989565b5f80805f19848609848602925082811083820303915050805f036122e7575060c01c9050611989565b80600160c01b116122f6575f5ffd5b5f600160c01b85870980840360c01c9310909103600160401b0291909117949350505050565b5f6001600160ff1b038211156119875760405163b668004560e01b815260040160405180910390fd5b5f80805f19848609848602925082811083820303915050805f0361236e575060401c9050611989565b80600160401b1161237d575f5ffd5b5f600160401b85870980840360401c9310909103600160c01b0291909117949350505050565b5f80805f19848609848602925082811083820303915050805f036123cc575060801c9050611989565b80600160801b116123db575f5ffd5b5f600160801b85870980840360801c9310909103600160801b0291909117949350505050565b5f80805f19858709858702925082811083820303915050805f03612435575f841161242a575f5ffd5b508290049050611a42565b808411612440575f5ffd5b5f848688095f868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150509392505050565b5f5f5f5f6124b98686612637565b9088039897019695505050505050565b5f80805f19848609848602925082811083820303915050805f036124f2575060601c9050611989565b80600160601b11612501575f5ffd5b5f600160601b85870980840360601c9310909103600160a01b0291909117949350505050565b5f80808061253588876119c9565b60020b1515905080612550576002606460308802011b880197505b5f61255c89888a6119e0565b90506125688988611ac8565b1580156125725750855b8061258e57506125828988611ac8565b1580159061258e575085155b80612597575081155b156125b7576125a581612679565b93506125b0816126da565b92506125ce565b6125c08161208b565b93506125cb816120fd565b92505b6125ed6001600160801b0385168460801b6001600160801b0319160190565b9998505050505050505050565b5f60026049603084020184901c6119d8565b805f600f82900b12156126325760405163b668004560e01b815260040160405180910390fd5b919050565b5f80600261264584866131f6565b61264f9190613215565b61266e61265c8587613259565b62ffffff166002808204910615150190565b915091509250929050565b5f5f61268861209a8460e81c90565b90505f61269861209a8560d01c90565b905061213c6126c96060866001600160801b0316901b8484036001600160a01b0316846001600160a01b0316612719565b6001846001600160a01b0316612719565b5f5f6126e961209a8460e81c90565b90505f6126f961209a8560d01c90565b905061213c846001600160801b03168383036001600160a01b0316612755565b5f612725848484612401565b90505f8280612736576127366131e2565b8486091115611a42575f19811061274b575f5ffd5b6001019392505050565b5f61276083836124c9565b90505f600160601b8385091115611989575f19811061277d575f5ffd5b60010192915050565b6001600160a01b03811681146118f3575f5ffd5b5f602082840312156127aa575f5ffd5b8135611a4281612786565b5f5f604083850312156127c6575f5ffd5b82356127d181612786565b946020939093013593505050565b5f5f83601f8401126127ef575f5ffd5b5081356001600160401b03811115612805575f5ffd5b6020830191508360208260051b8501011115611ac1575f5ffd5b5f5f5f5f5f60608688031215612833575f5ffd5b853561283e81612786565b945060208601356001600160401b03811115612858575f5ffd5b8601601f81018813612868575f5ffd5b80356001600160401b0381111561287d575f5ffd5b8860208260071b8401011115612891575f5ffd5b6020919091019450925060408601356001600160401b038111156128b3575f5ffd5b6128bf888289016127df565b969995985093965092949392505050565b5f5f5f5f606085870312156128e3575f5ffd5b84356128ee81612786565b935060208501356128fe81612786565b925060408501356001600160401b03811115612918575f5ffd5b8501601f81018713612928575f5ffd5b80356001600160401b0381111561293d575f5ffd5b87602082840101111561294e575f5ffd5b949793965060200194505050565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215612980575f5ffd5b8151611a4281612786565b8060020b81146118f3575f5ffd5b602080825281018290525f8360408301825b85811015612a295782356129be81612786565b6001600160a01b0316825260208301356129d781612786565b6001600160a01b0316602083015260408301356129f381612786565b6001600160a01b031660408301526060830135612a0f8161298b565b60020b6060830152608092830192909101906001016129ab565b5095945050505050565b602080825281018290525f8360408301825b85811015612a29578235612a5881612786565b6001600160a01b0316825260209283019290910190600101612a45565b634e487b7160e01b5f52604160045260245ffd5b604051608081016001600160401b0381118282101715612aab57612aab612a75565b60405290565b604051606081016001600160401b0381118282101715612aab57612aab612a75565b604051601f8201601f191681016001600160401b0381118282101715612afb57612afb612a75565b604052919050565b5f6001600160401b03821115612b1b57612b1b612a75565b5060051b60200190565b5f82601f830112612b34575f5ffd5b8135612b47612b4282612b03565b612ad3565b8082825260208201915060208360071b860101925085831115612b68575f5ffd5b602085015b83811015612a295760808188031215612b84575f5ffd5b612b8c612a89565b8135612b9781612786565b81526020820135612ba781612786565b60208201526040820135612bba81612786565b60408201526060820135612bcd8161298b565b60608201528352602090920191608001612b6d565b5f82601f830112612bf1575f5ffd5b8135612bff612b4282612b03565b8082825260208201915060208360051b860101925085831115612c20575f5ffd5b602085015b83811015612a295780356001600160401b03811115612c42575f5ffd5b8601603f81018813612c52575f5ffd5b6020810135612c63612b4282612b03565b808282526020820191506020808460051b8601010192508a831115612c86575f5ffd5b6040840193505b82841015612ca8578335825260209384019390910190612c8d565b86525050602093840193919091019050612c25565b5f82601f830112612ccc575f5ffd5b8135612cda612b4282612b03565b8082825260208201915060208360051b860101925085831115612cfb575f5ffd5b602085015b83811015612a29578035612d1381612786565b835260209283019201612d00565b5f5f5f5f60808587031215612d34575f5ffd5b84356001600160401b03811115612d49575f5ffd5b8501601f81018713612d59575f5ffd5b8035612d67612b4282612b03565b80828252602082019150602060608402850101925089831115612d88575f5ffd5b6020840193505b82841015612df5576060848b031215612da6575f5ffd5b612dae612ab1565b8435612db98161298b565b81526020850135612dc98161298b565b60208201526040850135612ddc8161298b565b6040820152825260609390930192602090910190612d8f565b965050505060208501356001600160401b03811115612e12575f5ffd5b612e1e87828801612b25565b93505060408501356001600160401b03811115612e39575f5ffd5b612e4587828801612be2565b92505060608501356001600160401b03811115612e60575f5ffd5b612e6c87828801612cbd565b91505092959194509250565b602080825282518282018190525f918401906040840190835b81811015612ee857835180516001600160a01b0390811685526020808301518216818701526040808401519092169186019190915260609182015160020b9185019190915290930192608090920191600101612e91565b509095945050505050565b634e487b7160e01b5f52601160045260245ffd5b808202811582820484141761198957611989612ef3565b5f60208284031215612f2e575f5ffd5b8151611a428161298b565b600282810b9082900b03627fffff198112627fffff8213171561198957611989612ef3565b6001600160a01b038416815282151560208083019190915260606040830181905283519083018190525f918401906080840190835b81811015612fb1578351835260209384019390920191600101612f93565b5090979650505050505050565b5f82601f830112612fcd575f5ffd5b8151612fdb612b4282612b03565b8082825260208201915060208360051b860101925085831115612ffc575f5ffd5b602085015b83811015612a29578051835260209283019201613001565b5f5f5f5f5f60a0868803121561302d575f5ffd5b85516020870151604088015191965094506001600160401b03811115613051575f5ffd5b8601601f81018813613061575f5ffd5b805161306f612b4282612b03565b8082825260208201915060208360051b85010192508a831115613090575f5ffd5b6020840193505b828410156130b2578351825260209384019390910190613097565b8096505050505060608601516001600160401b038111156130d1575f5ffd5b6130dd88828901612fbe565b92505060808601516001600160401b038111156130f8575f5ffd5b61310488828901612fbe565b9150509295509295909350565b8181035f83128015838313168383128216171561313057613130612ef3565b5092915050565b8082018281125f83128015821682158216171561315657613156612ef3565b505092915050565b8082018082111561198957611989612ef3565b5f60208284031215613181575f5ffd5b5051919050565b602080825282518282018190525f918401906040840190835b81811015612ee85783516001600160a01b03168352602093840193909201916001016131a1565b5f600160ff1b82016131dc576131dc612ef3565b505f0390565b634e487b7160e01b5f52601260045260245ffd5b5f8260020b8260020b028060020b915080821461313057613130612ef3565b5f8160020b8360020b8061323757634e487b7160e01b5f52601260045260245ffd5b627fffff1982145f198214161561325057613250612ef3565b90059392505050565b62ffffff818116838216029081169081811461313057613130612ef356";
|
|
31182
|
+
|
|
30967
31183
|
//#endregion
|
|
30968
31184
|
//#region src/hypoVault/staleOracleOverride.ts
|
|
30969
31185
|
const PANOPTIC_VAULT_ACCOUNTANT_RUNTIME_BYTECODE = "0x608060405234801561000f575f5ffd5b5060043610610090575f3560e01c80638da5cb5b116100635780638da5cb5b14610135578063995cac6d14610145578063a519c19814610158578063d597b7361461016b578063f2fde38b1461017e575f5ffd5b8063016ff32e1461009457806328d6ae4a146100cb5780634f0e0ef3146100ec578063715018a61461012b575b5f5ffd5b6100b66100a236600461274b565b60026020525f908152604090205460ff1681565b60405190151581526020015b60405180910390f35b6100de6100d9366004612766565b610191565b6040519081526020016100c2565b6101137f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016100c2565b6101336101b3565b005b5f546001600160a01b0316610113565b6101336101533660046127d0565b6101c6565b61013361016636600461274b565b610598565b6100de610179366004612881565b6105c3565b61013361018c36600461274b565b611865565b6001602052815f5260405f2081600281106101aa575f80fd5b01549150829050565b6101bb6118a7565b6101c45f6118d3565b565b6101ce6118a7565b6001600160a01b0385165f9081526002602052604090205460ff1615610207576040516372b89e9760e11b815260040160405180910390fd5b5f5b838110156102ac575f5b818110156102a35785858281811061022d5761022d61290d565b610243926020608090920201908101915061274b565b6001600160a01b031686868481811061025e5761025e61290d565b610274926020608090920201908101915061274b565b6001600160a01b03160361029b57604051635c1523a360e11b815260040160405180910390fd5b600101610213565b50600101610209565b505f5b8181101561050a575f5b81811015610347578383828181106102d3576102d361290d565b90506020020160208101906102e8919061274b565b6001600160a01b03168484848181106103035761030361290d565b9050602002016020810190610318919061274b565b6001600160a01b03160361033f57604051637542915f60e11b815260040160405180910390fd5b6001016102b9565b505f5b84811015610501578585828181106103645761036461290d565b61037a926020608090920201908101915061274b565b6001600160a01b0316637594cdc36040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103b5573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103d99190612921565b6001600160a01b03168484848181106103f4576103f461290d565b9050602002016020810190610409919061274b565b6001600160a01b031614806104db575085858281811061042b5761042b61290d565b610441926020608090920201908101915061274b565b6001600160a01b0316634d7b09006040518163ffffffff1660e01b8152600401602060405180830381865afa15801561047c573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104a09190612921565b6001600160a01b03168484848181106104bb576104bb61290d565b90506020020160208101906104d0919061274b565b6001600160a01b0316145b156104f957604051637542915f60e11b815260040160405180910390fd5b60010161034a565b506001016102af565b50838360405160200161051e92919061294a565b60408051808303601f1901815282825280516020918201206001600160a01b0389165f90815260018352929092209190915561055e9184918491016129e4565b60408051808303601f1901815291815281516020928301206001600160a01b03979097165f90815260019283905220019490945550505050565b6105a06118a7565b6001600160a01b03165f908152600260205260409020805460ff19166001179055565b5f8080806105d385870187612cd2565b506001600160a01b038b165f90815260016020526040812093965091945092500154826040516020016106069190612e29565b604051602081830303815290604052805190602001201461063a576040516395241ae360e01b815260040160405180910390fd5b5f825160026106499190612eb8565b6001600160401b0381111561066057610660612a26565b604051908082528060200260200182016040528015610689578160200160208202803683370190505b509050885f5b8451811015611537575f5f5f8784815181106106ad576106ad61290d565b60200260200101515f01516001600160a01b03166305ecd0036040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106f3573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107179190612ecf565b905087848151811061072b5761072b61290d565b60200260200101516060015160020b61076d828b87815181106107505761075061290d565b60200260200101515f01516107659190612eea565b60020b611922565b131561078c57604051631510fe5b60e31b815260040160405180910390fd5b60605f5f8a87815181106107a2576107a261290d565b60200260200101515f01516001600160a01b031663011492288960018d8b815181106107d0576107d061290d565b60200260200101516040518463ffffffff1660e01b81526004016107f693929190612f0f565b5f60405180830381865afa158015610810573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526108379190810190612fca565b50909550919350915061085890506001600160801b038083169084166130c2565b95506108648160801c90565b6001600160801b03166108778360801c90565b6001600160801b031661088a91906130c2565b945050505f8986815181106108a1576108a161290d565b60200260200101515f01516001600160a01b03166353aad1d96040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108e7573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061090b9190612ecf565b90505f805b8a88815181106109225761092261290d565b602002602001015151811015610aa8575f8482815181106109455761094561290d565b60200260200101519050806001600160801b03165f0361097857604051632276762d60e11b815260040160405180910390fd5b5f8c8a8151811061098b5761098b61290d565b602002602001015183815181106109a4576109a461290d565b602002602001015190505f6109b882611940565b90505f5b81811015610a24576109ce838261197a565b60020b15610a1c575f5f6109ec896109e787868a611991565b6119fa565b90925090506109fb8584611a79565b5f03610a0e579b81019b9a8b019a610a19565b818d039c50808c039b505b50505b6001016109bc565b505f5f610a3384866001611a8b565b91509150610a3e8190565b600f0b82600f0b610a4f91906130c2565b610a59908d6130e8565b9b50610a658160801d90565b600f0b610a728360801d90565b600f0b610a7f91906130c2565b610a89908c6130e8565b9a50610a95838861310f565b9650506001909401935061091092505050565b508a8781518110610abb57610abb61290d565b60209081029190910101515160405163c79ee60d60e01b81526001600160a01b038a811660048301529091169063c79ee60d90602401602060405180830381865afa158015610b0c573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b309190613122565b8114610b4f57604051632276762d60e11b815260040160405180910390fd5b5050505f6001600160a01b0316888581518110610b6e57610b6e61290d565b6020026020010151602001516001600160a01b031603610bca5773eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee888581518110610baf57610baf61290d565b6020908102919091018101516001600160a01b039092169101525b5f808080805b8a51811015610d86578c8981518110610beb57610beb61290d565b6020026020010151602001516001600160a01b03168b8281518110610c1257610c1261290d565b60200260200101516001600160a01b031603610c2d57600192505b8c8981518110610c3f57610c3f61290d565b6020026020010151604001516001600160a01b03168b8281518110610c6657610c6661290d565b60200260200101516001600160a01b031603610c8157600191505b5f6001600160a01b03168b8281518110610c9d57610c9d61290d565b60200260200101516001600160a01b031603610d7e5782610d09578c8981518110610cca57610cca61290d565b6020026020010151602001518b8281518110610ce857610ce861290d565b60200260200101906001600160a01b031690816001600160a01b0316815250505b81610d79578c8981518110610d2057610d2061290d565b6020026020010151604001518b84610d39576001610d3b565b5f5b610d489060ff168461310f565b81518110610d5857610d5861290d565b60200260200101906001600160a01b031690816001600160a01b0316815250505b610d86565b600101610bd0565b5081610e735773eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6001600160a01b03168c8981518110610dbc57610dbc61290d565b6020026020010151602001516001600160a01b031614610e64578b8881518110610de857610de861290d565b60209081029190910181015101516040516370a0823160e01b81526001600160a01b038b81166004830152909116906370a0823190602401602060405180830381865afa158015610e3b573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e5f9190613122565b610e70565b886001600160a01b0316315b93505b80610f12578b8881518110610e8a57610e8a61290d565b6020026020010151604001516001600160a01b03166370a082318a6040518263ffffffff1660e01b8152600401610ed091906001600160a01b0391909116815260200190565b602060405180830381865afa158015610eeb573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f0f9190613122565b92505b5f8c8981518110610f2557610f2561290d565b60200260200101515f01516001600160a01b0316637594cdc36040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f6b573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f8f9190612921565b6040516370a0823160e01b81526001600160a01b038c8116600483015291909116906370a0823190602401602060405180830381865afa158015610fd5573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ff99190613122565b90508c898151811061100d5761100d61290d565b60200260200101515f01516001600160a01b0316637594cdc36040518163ffffffff1660e01b8152600401602060405180830381865afa158015611053573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110779190612921565b6001600160a01b0316634cdad506826040518263ffffffff1660e01b81526004016110a491815260200190565b602060405180830381865afa1580156110bf573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110e39190613122565b6110ed90896130e8565b97508c89815181106111015761110161290d565b60200260200101515f01516001600160a01b0316634d7b09006040518163ffffffff1660e01b8152600401602060405180830381865afa158015611147573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061116b9190612921565b6040516370a0823160e01b81526001600160a01b038c8116600483015291909116906370a0823190602401602060405180830381865afa1580156111b1573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111d59190613122565b90508c89815181106111e9576111e961290d565b60200260200101515f01516001600160a01b0316634d7b09006040518163ffffffff1660e01b8152600401602060405180830381865afa15801561122f573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112539190612921565b6001600160a01b0316634cdad506826040518263ffffffff1660e01b815260040161128091815260200190565b602060405180830381865afa15801561129b573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112bf9190613122565b6112c990886130e8565b96505050508e6001600160a01b03168a87815181106112ea576112ea61290d565b6020026020010151602001516001600160a01b0316146114245773eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6001600160a01b03168a87815181106113345761133461290d565b6020026020010151602001516001600160a01b031614801561138757507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168f6001600160a01b0316145b6114245789868151811061139d5761139d61290d565b60200260200101516060015160020b6113d88c88815181106113c1576113c161290d565b602002602001015160200151856107659190612eea565b13156113f757604051631510fe5b60e31b815260040160405180910390fd5b5f61140184611ae4565b905061140d8682611dff565b955082156114225761141f8382611dff565b92505b505b8e6001600160a01b03168a87815181106114405761144061290d565b6020026020010151604001516001600160a01b0316146114f35789868151811061146c5761146c61290d565b60200260200101516060015160020b6114a78c88815181106114905761149061290d565b602002602001015160400151856107659190612eea565b13156114c657604051631510fe5b60e31b815260040160405180910390fd5b5f6114d084611ae4565b90506114dc8582611e82565b945081156114f1576114ee8282611e82565b91505b505b61150661150085876130e8565b5f611eef565b611510828461310f565b61151a919061310f565b611524908d61310f565b9b50506001909401935061068f92505050565b505f611545888a018a612cd2565b6001600160a01b0386165f908152600160208190526040909120919550909350915061156e9050565b0154816040516020016115819190613139565b60405160208183030381529060405280519060200120146115b557604051637560978b60e11b815260040160405180910390fd5b5f5b815181101561178e578a6001600160a01b03168282815181106115dc576115dc61290d565b60200260200101516001600160a01b03166338d52e0f6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561161f573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116439190612921565b6001600160a01b03161461166a57604051635de194d760e01b815260040160405180910390fd5b5f82828151811061167d5761167d61290d565b60209081029190910101516040516370a0823160e01b81526001600160a01b038681166004830152909116906370a0823190602401602060405180830381865afa1580156116cd573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116f19190613122565b90508282815181106117055761170561290d565b60200260200101516001600160a01b0316634cdad506826040518263ffffffff1660e01b815260040161173a91815260200190565b602060405180830381865afa158015611755573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117799190613122565b611783908a61310f565b9850506001016115b7565b505f9050805b83518110156117dc578a6001600160a01b03168482815181106117b9576117b961290d565b60200260200101516001600160a01b0316036117d457600191505b600101611794565b5080611857576040516370a0823160e01b81526001600160a01b0383811660048301528b16906370a0823190602401602060405180830381865afa158015611826573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061184a9190613122565b611854908861310f565b96505b505050505050949350505050565b61186d6118a7565b6001600160a01b03811661189b57604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b6118a4816118d3565b50565b5f546001600160a01b031633146101c45760405163118cdaa760e01b8152336004820152602401611892565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f5f82136119385761193382613179565b61193a565b815b92915050565b5f72fe0000000000fe0000000000fe0000000000fe604083901c165b6001603083021b81106119745781600101915061195c565b50919050565b5f6110006064603084020184901c5b069392505050565b5f808061199e8686611f04565b90925090505f6119ae8787611f3b565b6119c1906001600160801b038716612eb8565b90506119cd8787611f4d565b5f036119e8576119de838383611f5f565b93505050506119f3565b6119de838383612008565b9392505050565b5f5f611a068360e81c90565b60020b8460020b1215611a2357611a1c8361203c565b9150611a72565b611a2d8360d01c90565b60020b8460020b12611a4957611a42836120ae565b9050611a72565b611a5b611a5684866120f5565b61203c565b9150611a6f611a6a8486612115565b6120ae565b90505b9250929050565b5f60026048603084020184901c611989565b5f5f5f611a9786611940565b90505f5b818114611ada575f5f611ab08989858a612133565b9092509050611abf86836121d9565b9550611acb85826121d9565b94508260010192505050611a9b565b5050935093915050565b5f5f5f8360020b12611af9578260020b611b00565b8260020b5f035b9050620d89e8811115611b26576040516333a3bdff60e21b815260040160405180910390fd5b5f816001165f03611b3b57600160801b611b4d565b6ffffcb933bd6fad37aa2d162d1a5940015b70ffffffffffffffffffffffffffffffffff1690506002821615611b81576ffff97272373d413259a46990580e213a0260801c5b6004821615611ba0576ffff2e50f5f656932ef12357cf3c7fdcc0260801c5b6008821615611bbf576fffe5caca7e10e4e61c3624eaa0941cd00260801c5b6010821615611bde576fffcb9843d60f6159c9db58835c9266440260801c5b6020821615611bfd576fff973b41fa98c081472e6896dfb254c00260801c5b6040821615611c1c576fff2ea16466c96a3843ec78b326b528610260801c5b6080821615611c3b576ffe5dee046a99a2a811c461f1969c30530260801c5b610100821615611c5b576ffcbe86c7900a88aedcffc83b479aa3a40260801c5b610200821615611c7b576ff987a7253ac413176f2b074cf7815e540260801c5b610400821615611c9b576ff3392b0822b70005940c7a398e4b70f30260801c5b610800821615611cbb576fe7159475a2c29b7443b29c7fa6e889d90260801c5b611000821615611cdb576fd097f3bdfd2022b8845ad8f792aa58250260801c5b612000821615611cfb576fa9f746462d870fdf8a65dc1f90e061e50260801c5b614000821615611d1b576f70d869a156d2a1b890bb3df62baf32f70260801c5b618000821615611d3b576f31be135f97d08fd981231505542fcfa60260801c5b62010000821615611d5c576f09aa508b5b7a84e1c677de54f3e99bc90260801c5b62020000821615611d7c576e5d6af8dedb81196699c329225ee6040260801c5b62040000821615611d9b576d2216e584f5fa1ea926041bedfe980260801c5b62080000821615611db8576b048a170391f7dc42444e8fa20260801c5b5f8460020b1315611dd757805f1981611dd357611dd3613193565b0490505b640100000000810615611deb576001611ded565b5f5b60ff16602082901c0192505050919050565b5f6001600160801b036001600160a01b0383161015611e5a575f611e3f611e3a611e288661225f565b6002866001600160a01b03160a61226f565b6122cd565b90505f8412611e4e5780611e52565b805f035b91505061193a565b5f611e3f611e3a611e6a8661225f565b611e7d6001600160a01b038716806122f6565b612354565b5f6001600160801b036001600160a01b0383161015611ec2575f611e3f611e3a611eab8661225f565b600160c01b6002876001600160a01b03160a6123b2565b5f611e3f611e3a611ed28661225f565b600160801b611eea6001600160a01b038816806122f6565b6123b2565b5f818313611efd57816119f3565b5090919050565b5f80611f30611f188585603002604c011c90565b611f22868661197a565b603087901c61ffff1661245c565b909590945092505050565b5f60806041603084020184901c611989565b5f60026040603084020184901c611989565b5f5f611f6a85611ae4565b90505f611f7685611ae4565b90505f611faa85611f99846001600160a01b0316866001600160a01b031661247a565b8585036001600160a01b03166123b2565b90506001600160801b03811115611fd45760405163528073f560e11b815260040160405180910390fd5b6001600160801b03811660d087901b62ffffff60d01b1660e889901b6001600160e81b03191601015b979650505050505050565b5f5f61201385611ae4565b90505f61201f85611ae4565b90505f611faa85600160601b8585036001600160a01b03166123b2565b5f5f61205061204b8460e81c90565b611ae4565b90505f61206061204b8560d01c90565b90506001600160a01b0382166120986060866001600160801b0316901b8484036001600160a01b0316846001600160a01b03166123b2565b816120a5576120a5613193565b04949350505050565b5f5f6120bd61204b8460e81c90565b90505f6120cd61204b8560d01c90565b90506120ed846001600160801b03168383036001600160a01b031661247a565b949350505050565b5f6119f36001600160e81b0384168360e81b6001600160e81b0319160190565b5f6119f362ffffff60d01b1984168360d01b62ffffff60d01b160190565b5f5f5f612142878787876124d8565b90505f61214f8887611a79565b15905061215c88876125ab565b5f0361219f57801561218c57612185612179836125bd565b6125bd565b6001600160801b031690565b92506121ce565b612198612179836125bd565b93506121ce565b80156121bb576121856121b56121748460801c90565b60801b90565b6121cb6121b56121748460801c90565b93505b505094509492505050565b5f5f6121e58360801d90565b600f0b6121f28560801d90565b600f0b019050805f84600f0b86600f0b0190505f8190508383600f0b14158061221e57508181600f0b14155b1561223c57604051633486405d60e21b815260040160405180910390fd5b608083901b6001600160801b03828701166001600160801b031987160101611ffd565b5f5f821361193857815f0361193a565b5f80805f19848609848602925082811083820303915050805f03612298575060c01c905061193a565b80600160c01b116122a7575f5ffd5b5f600160c01b85870980840360c01c9310909103600160401b0291909117949350505050565b5f6001600160ff1b038211156119385760405163b668004560e01b815260040160405180910390fd5b5f80805f19848609848602925082811083820303915050805f0361231f575060401c905061193a565b80600160401b1161232e575f5ffd5b5f600160401b85870980840360401c9310909103600160c01b0291909117949350505050565b5f80805f19848609848602925082811083820303915050805f0361237d575060801c905061193a565b80600160801b1161238c575f5ffd5b5f600160801b85870980840360801c9310909103600160801b0291909117949350505050565b5f80805f19858709858702925082811083820303915050805f036123e6575f84116123db575f5ffd5b5082900490506119f3565b8084116123f1575f5ffd5b5f848688095f868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150509392505050565b5f5f5f5f61246a86866125e8565b9088039897019695505050505050565b5f80805f19848609848602925082811083820303915050805f036124a3575060601c905061193a565b80600160601b116124b2575f5ffd5b5f600160601b85870980840360601c9310909103600160a01b0291909117949350505050565b5f8080806124e6888761197a565b60020b1515905080612501576002606460308802011b880197505b5f61250d89888a611991565b90506125198988611a79565b1580156125235750855b8061253f57506125338988611a79565b1580159061253f575085155b80612548575081155b15612568576125568161262a565b93506125618161268b565b925061257f565b6125718161203c565b935061257c816120ae565b92505b61259e6001600160801b0385168460801b6001600160801b0319160190565b9998505050505050505050565b5f60026049603084020184901c611989565b805f600f82900b12156125e35760405163b668004560e01b815260040160405180910390fd5b919050565b5f8060026125f684866131a7565b61260091906131c6565b61261f61260d858761320a565b62ffffff166002808204910615150190565b915091509250929050565b5f5f61263961204b8460e81c90565b90505f61264961204b8560d01c90565b90506120ed61267a6060866001600160801b0316901b8484036001600160a01b0316846001600160a01b03166126ca565b6001846001600160a01b03166126ca565b5f5f61269a61204b8460e81c90565b90505f6126aa61204b8560d01c90565b90506120ed846001600160801b03168383036001600160a01b0316612706565b5f6126d68484846123b2565b90505f82806126e7576126e7613193565b84860911156119f3575f1981106126fc575f5ffd5b6001019392505050565b5f612711838361247a565b90505f600160601b838509111561193a575f19811061272e575f5ffd5b60010192915050565b6001600160a01b03811681146118a4575f5ffd5b5f6020828403121561275b575f5ffd5b81356119f381612737565b5f5f60408385031215612777575f5ffd5b823561278281612737565b946020939093013593505050565b5f5f83601f8401126127a0575f5ffd5b5081356001600160401b038111156127b6575f5ffd5b6020830191508360208260051b8501011115611a72575f5ffd5b5f5f5f5f5f606086880312156127e4575f5ffd5b85356127ef81612737565b945060208601356001600160401b03811115612809575f5ffd5b8601601f81018813612819575f5ffd5b80356001600160401b0381111561282e575f5ffd5b8860208260071b8401011115612842575f5ffd5b6020919091019450925060408601356001600160401b03811115612864575f5ffd5b61287088828901612790565b969995985093965092949392505050565b5f5f5f5f60608587031215612894575f5ffd5b843561289f81612737565b935060208501356128af81612737565b925060408501356001600160401b038111156128c9575f5ffd5b8501601f810187136128d9575f5ffd5b80356001600160401b038111156128ee575f5ffd5b8760208284010111156128ff575f5ffd5b949793965060200194505050565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215612931575f5ffd5b81516119f381612737565b8060020b81146118a4575f5ffd5b602080825281018290525f8360408301825b858110156129da57823561296f81612737565b6001600160a01b03168252602083013561298881612737565b6001600160a01b0316602083015260408301356129a481612737565b6001600160a01b0316604083015260608301356129c08161293c565b60020b60608301526080928301929091019060010161295c565b5095945050505050565b602080825281018290525f8360408301825b858110156129da578235612a0981612737565b6001600160a01b03168252602092830192909101906001016129f6565b634e487b7160e01b5f52604160045260245ffd5b604051608081016001600160401b0381118282101715612a5c57612a5c612a26565b60405290565b604051606081016001600160401b0381118282101715612a5c57612a5c612a26565b604051601f8201601f191681016001600160401b0381118282101715612aac57612aac612a26565b604052919050565b5f6001600160401b03821115612acc57612acc612a26565b5060051b60200190565b5f82601f830112612ae5575f5ffd5b8135612af8612af382612ab4565b612a84565b8082825260208201915060208360071b860101925085831115612b19575f5ffd5b602085015b838110156129da5760808188031215612b35575f5ffd5b612b3d612a3a565b8135612b4881612737565b81526020820135612b5881612737565b60208201526040820135612b6b81612737565b60408201526060820135612b7e8161293c565b60608201528352602090920191608001612b1e565b5f82601f830112612ba2575f5ffd5b8135612bb0612af382612ab4565b8082825260208201915060208360051b860101925085831115612bd1575f5ffd5b602085015b838110156129da5780356001600160401b03811115612bf3575f5ffd5b8601603f81018813612c03575f5ffd5b6020810135612c14612af382612ab4565b808282526020820191506020808460051b8601010192508a831115612c37575f5ffd5b6040840193505b82841015612c59578335825260209384019390910190612c3e565b86525050602093840193919091019050612bd6565b5f82601f830112612c7d575f5ffd5b8135612c8b612af382612ab4565b8082825260208201915060208360051b860101925085831115612cac575f5ffd5b602085015b838110156129da578035612cc481612737565b835260209283019201612cb1565b5f5f5f5f60808587031215612ce5575f5ffd5b84356001600160401b03811115612cfa575f5ffd5b8501601f81018713612d0a575f5ffd5b8035612d18612af382612ab4565b80828252602082019150602060608402850101925089831115612d39575f5ffd5b6020840193505b82841015612da6576060848b031215612d57575f5ffd5b612d5f612a62565b8435612d6a8161293c565b81526020850135612d7a8161293c565b60208201526040850135612d8d8161293c565b6040820152825260609390930192602090910190612d40565b965050505060208501356001600160401b03811115612dc3575f5ffd5b612dcf87828801612ad6565b93505060408501356001600160401b03811115612dea575f5ffd5b612df687828801612b93565b92505060608501356001600160401b03811115612e11575f5ffd5b612e1d87828801612c6e565b91505092959194509250565b602080825282518282018190525f918401906040840190835b81811015612e9957835180516001600160a01b0390811685526020808301518216818701526040808401519092169186019190915260609182015160020b9185019190915290930192608090920191600101612e42565b509095945050505050565b634e487b7160e01b5f52601160045260245ffd5b808202811582820484141761193a5761193a612ea4565b5f60208284031215612edf575f5ffd5b81516119f38161293c565b600282810b9082900b03627fffff198112627fffff8213171561193a5761193a612ea4565b6001600160a01b038416815282151560208083019190915260606040830181905283519083018190525f918401906080840190835b81811015612f62578351835260209384019390920191600101612f44565b5090979650505050505050565b5f82601f830112612f7e575f5ffd5b8151612f8c612af382612ab4565b8082825260208201915060208360051b860101925085831115612fad575f5ffd5b602085015b838110156129da578051835260209283019201612fb2565b5f5f5f5f5f60a08688031215612fde575f5ffd5b85516020870151604088015191965094506001600160401b03811115613002575f5ffd5b8601601f81018813613012575f5ffd5b8051613020612af382612ab4565b8082825260208201915060208360051b85010192508a831115613041575f5ffd5b6020840193505b82841015613063578351825260209384019390910190613048565b8096505050505060608601516001600160401b03811115613082575f5ffd5b61308e88828901612f6f565b92505060808601516001600160401b038111156130a9575f5ffd5b6130b588828901612f6f565b9150509295509295909350565b8181035f8312801583831316838312821617156130e1576130e1612ea4565b5092915050565b8082018281125f83128015821682158216171561310757613107612ea4565b505092915050565b8082018082111561193a5761193a612ea4565b5f60208284031215613132575f5ffd5b5051919050565b602080825282518282018190525f918401906040840190835b81811015612e995783516001600160a01b0316835260209384019390920191600101613152565b5f600160ff1b820161318d5761318d612ea4565b505f0390565b634e487b7160e01b5f52601260045260245ffd5b5f8260020b8260020b028060020b91508082146130e1576130e1612ea4565b5f8160020b8360020b806131e857634e487b7160e01b5f52601260045260245ffd5b627fffff1982145f198214161561320157613201612ea4565b90059392505050565b62ffffff81811683821602908116908181146130e1576130e1612ea456";
|
|
30970
31186
|
const STALE_ORACLE_GUARD_PATTERN = /131561([0-9a-f]{4})57604051631510fe5b60e31b/g;
|
|
30971
|
-
const
|
|
31187
|
+
const LEGACY_STALE_ORACLE_GUARD_COUNT = 3;
|
|
31188
|
+
const ROBINHOOD_STALE_ORACLE_GUARD_COUNT = 4;
|
|
30972
31189
|
/**
|
|
30973
31190
|
* Builds a read-only accountant runtime that preserves NAV calculation and all
|
|
30974
31191
|
* structural checks while bypassing the three manager-price freshness guards.
|
|
30975
31192
|
* The stale manager prices are validation inputs only; NAV continues to use
|
|
30976
31193
|
* the pools' current TWAP/current tick values.
|
|
30977
31194
|
*/
|
|
30978
|
-
function bypassStaleOraclePriceGuards(bytecode) {
|
|
31195
|
+
function bypassStaleOraclePriceGuards(bytecode, expectedGuardCount) {
|
|
30979
31196
|
let replacements = 0;
|
|
30980
31197
|
const patchedBytecode = bytecode.replace(STALE_ORACLE_GUARD_PATTERN, (_match, jumpDestination) => {
|
|
30981
31198
|
replacements += 1;
|
|
30982
31199
|
return `135061${jumpDestination}56604051631510fe5b60e31b`;
|
|
30983
31200
|
});
|
|
30984
|
-
if (replacements !==
|
|
31201
|
+
if (replacements !== expectedGuardCount) throw new Error(`Unexpected PanopticVaultAccountant runtime: found ${replacements} stale-oracle guards.`);
|
|
30985
31202
|
return patchedBytecode;
|
|
30986
31203
|
}
|
|
30987
|
-
const READ_ONLY_PANOPTIC_VAULT_ACCOUNTANT_RUNTIME_BYTECODE = bypassStaleOraclePriceGuards(PANOPTIC_VAULT_ACCOUNTANT_RUNTIME_BYTECODE);
|
|
31204
|
+
const READ_ONLY_PANOPTIC_VAULT_ACCOUNTANT_RUNTIME_BYTECODE = bypassStaleOraclePriceGuards(PANOPTIC_VAULT_ACCOUNTANT_RUNTIME_BYTECODE, LEGACY_STALE_ORACLE_GUARD_COUNT);
|
|
31205
|
+
const READ_ONLY_ROBINHOOD_PANOPTIC_VAULT_ACCOUNTANT_RUNTIME_BYTECODE = bypassStaleOraclePriceGuards(ROBINHOOD_PANOPTIC_VAULT_ACCOUNTANT_RUNTIME_BYTECODE, ROBINHOOD_STALE_ORACLE_GUARD_COUNT);
|
|
30988
31206
|
const BASE_ACCOUNTANT_ADDRESS = "0x345cA3407942f9d175c9eA8B90e83A36F570f852";
|
|
30989
31207
|
const MAINNET_ACCOUNTANT_ADDRESS = "0x65aA902AE3135658587FFC36ED51B61c927114e1";
|
|
30990
31208
|
const LEGACY_MAINNET_ACCOUNTANT_ADDRESS = "0xCCAA8adC2776786Fd0A14Fb1f22D6089E0637a49";
|
|
30991
31209
|
const SEPOLIA_ACCOUNTANT_ADDRESS = "0x25BBef1DF262c24aa1AACD1F7eCeEcc1a7AD08ab";
|
|
30992
31210
|
const TEST_ACCOUNTANT_ADDRESS = "0x3fE074e8131bE6D8B94700860E1D9E8ece97AA54";
|
|
31211
|
+
const ROBINHOOD_ACCOUNTANT_ADDRESS = "0x9e345d862c41010F87D8E5A279e8D320D2831D36";
|
|
30993
31212
|
const BASE_WETH_ADDRESS = "0x4200000000000000000000000000000000000006";
|
|
30994
31213
|
const MAINNET_WETH_ADDRESS = "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2";
|
|
30995
31214
|
const SEPOLIA_WETH_ADDRESS = "0xfff9976782d46cc05630d1f6ebab18b2324d6b14";
|
|
@@ -31032,7 +31251,8 @@ const STALE_ORACLE_OVERRIDE_BYTECODE_BY_ACCOUNTANT = {
|
|
|
31032
31251
|
[normalizeAddressLower(TEST_ACCOUNTANT_ADDRESS)]: hydrateWethImmutables({
|
|
31033
31252
|
bytecode: READ_ONLY_PANOPTIC_VAULT_ACCOUNTANT_RUNTIME_BYTECODE,
|
|
31034
31253
|
wethAddress: SEPOLIA_WETH_ADDRESS
|
|
31035
|
-
})
|
|
31254
|
+
}),
|
|
31255
|
+
[normalizeAddressLower(ROBINHOOD_ACCOUNTANT_ADDRESS)]: READ_ONLY_ROBINHOOD_PANOPTIC_VAULT_ACCOUNTANT_RUNTIME_BYTECODE
|
|
31036
31256
|
};
|
|
31037
31257
|
function getStaleOracleOverrideBytecodeForAccountant(accountantAddress) {
|
|
31038
31258
|
return STALE_ORACLE_OVERRIDE_BYTECODE_BY_ACCOUNTANT[normalizeAddressLower(accountantAddress)];
|
|
@@ -31963,11 +32183,11 @@ function encodeWithdrawFunctionData({ assets, receiver, owner }) {
|
|
|
31963
32183
|
|
|
31964
32184
|
//#endregion
|
|
31965
32185
|
//#region src/token/erc20/approve.ts
|
|
31966
|
-
function encodeApproveFunctionData({ spender, amount }) {
|
|
32186
|
+
function encodeApproveFunctionData({ spender, amount: amount$1 }) {
|
|
31967
32187
|
return encodeFunctionData({
|
|
31968
32188
|
abi: Erc20Abi,
|
|
31969
32189
|
functionName: "approve",
|
|
31970
|
-
args: [spender, amount]
|
|
32190
|
+
args: [spender, amount$1]
|
|
31971
32191
|
});
|
|
31972
32192
|
}
|
|
31973
32193
|
|
|
@@ -32010,9 +32230,9 @@ function getAlchemyWsRpcUrl(chainId, alchemyApiKey) {
|
|
|
32010
32230
|
* formatTokenAmount(-500000000000000000n, 18n, 4n) // "-0.5000"
|
|
32011
32231
|
* ```
|
|
32012
32232
|
*/
|
|
32013
|
-
function formatTokenAmount(amount, decimals, precision) {
|
|
32014
|
-
const isNegative = amount < 0n;
|
|
32015
|
-
const absAmount = isNegative ? -amount : amount;
|
|
32233
|
+
function formatTokenAmount(amount$1, decimals, precision) {
|
|
32234
|
+
const isNegative = amount$1 < 0n;
|
|
32235
|
+
const absAmount = isNegative ? -amount$1 : amount$1;
|
|
32016
32236
|
const divisor = 10n ** decimals;
|
|
32017
32237
|
const integerPart = absAmount / divisor;
|
|
32018
32238
|
const fractionalPart = absAmount % divisor;
|
|
@@ -32241,5 +32461,5 @@ async function getIrmCurve(params) {
|
|
|
32241
32461
|
}
|
|
32242
32462
|
|
|
32243
32463
|
//#endregion
|
|
32244
|
-
export { BASE_CHAIN_ID, BASE_DEPLOYMENT, BASE_ETH_USDC_5BPS_MARKET, BASE_HYPOVAULT_ADDRESSES, BASE_HYPOVAULT_CORE_ADDRESSES, BASE_HYPOVAULT_MANAGER_ADDRESSES, BASE_HYPOVAULT_MANAGER_TURNKEY_SIGNERS, BASE_PANOPTIC_POOL_ADDRESSES, BASE_PANOPTIC_V2_ADDRESSES, BORROW_INDEX_BITS, BPS_SCALE, BaseUSDCPLPStrategistLeaves, BaseUSDCPLPVaultPoolInfos, BaseWETHPLPStrategistLeaves, BaseWETHPLPVaultPoolInfos, CHAIN_DEPLOYMENTS, CollateralTrackerAbi, CollateralTrackerV1_1Abi, Erc1155Abi, Erc20Abi, HypoVaultAbi, HypoVaultManagerConfigSchema, HypoVaultManagerWithMerkleVerificationAbi, MAINNET_CHAIN_ID, MAINNET_DEPLOYMENT, MAINNET_ETH_USDC_5BPS_V3_PANOPTIC_POOL_ADDRESSES, MAINNET_PANOPTIC_V2_ADDRESSES, MAINNET_RISK_ENGINES, MAINNET_USDC_PLP_COMPILED_POOL_POLICY, MAINNET_USDC_PLP_POOL_POLICY, MAINNET_V3_AUTHORIZATION_BLOCK, MAINNET_WETH_PLP_COMPILED_POOL_POLICY, MAINNET_WETH_PLP_POOL_POLICY, MARKET_EPOCH_BITS, MARKET_EPOCH_SHIFT, MAX_STALE_DELTA_HEDGE_PRIORITY_FEE_PER_GAS, MAX_VAULT_PRIORITY_FEE_PER_GAS, MAX_VAULT_TRANSACTION_GAS_COST, MIN_VAULT_PRIORITY_FEE_PER_GAS, MainnetLegacyUSDCPLPStrategistLeaves, MainnetLegacyWETHPLPStrategistLeaves, MainnetUSDCPLPLegacyVaultPoolInfos, MainnetUSDCPLPPreviousStrategistLeaves, MainnetUSDCPLPPreviousVaultPoolInfos, MainnetUSDCPLPStrategistLeaves, MainnetUSDCPLPV3AuthorizedStrategistLeaves, MainnetUSDCPLPV3AuthorizedVaultPoolInfos, MainnetUSDCPLPVaultPoolInfos, MainnetWETHPLPLegacyVaultPoolInfos, MainnetWETHPLPPreviousStrategistLeaves, MainnetWETHPLPPreviousVaultPoolInfos, MainnetWETHPLPStrategistLeaves, MainnetWETHPLPV3AuthorizedStrategistLeaves, MainnetWETHPLPV3AuthorizedVaultPoolInfos, MainnetWETHPLPVaultPoolInfos, Multicall3Abi, NonFungiblePositionManagerAbi, PanopticFactoryV3Abi, PanopticFactoryV4Abi, PanopticHelperAbi, PanopticPoolAbi, PanopticPoolV1_1Abi, PanopticQueryV1_1Abi, PanopticVaultAccountantAbi, PanopticVaultAccountantManagerInputAbi, PoolManagerAbi, RATE_AT_TARGET_BITS, ROBINHOOD_CHAIN_ID, ROBINHOOD_DEPLOYMENT, ROBINHOOD_HYPOVAULT_ADDRESSES, ROBINHOOD_HYPOVAULT_CORE_ADDRESSES, ROBINHOOD_HYPOVAULT_MANAGER_ADDRESSES, ROBINHOOD_HYPOVAULT_MANAGER_TURNKEY_SIGNERS, ROBINHOOD_PANOPTIC_POOL_ADDRESSES, ROBINHOOD_PANOPTIC_V2_ADDRESSES, ROBINHOOD_RISK_ENGINES, ROBINHOOD_SPY_USDG_MARKET, ROBINHOOD_USDG_PLP_COMPILED_POOL_POLICY, ROBINHOOD_USDG_PLP_POOL_POLICY, RescueDistributorAbi, RobinhoodUSDGPLPStrategistLeaves, RobinhoodUSDGPLPVaultPoolInfos, SECONDS_PER_YEAR, SEPOLIA_CHAIN_ID, SEPOLIA_DEPLOYMENT, SEPOLIA_ETH_USDC_5BPS_MARKET, SEPOLIA_HYPOVAULT_ADDRESSES, SEPOLIA_HYPOVAULT_CORE_ADDRESSES, SEPOLIA_HYPOVAULT_MANAGER_ADDRESSES, SEPOLIA_HYPOVAULT_MANAGER_TURNKEY_SIGNERS, SEPOLIA_PANOPTIC_POOL_ADDRESSES, SEPOLIA_PANOPTIC_V2_ADDRESSES, SemiFungiblePositionManagerAbi, SemiFungiblePositionManagerV1_1Abi, SepoliaUSDCPLPStrategistLeaves, SepoliaUSDCPLPVaultPoolInfos, SepoliaWETHPLPStrategistLeaves, SepoliaWETHPLPVaultPoolInfos, Simple7702AccountAbi, StateViewAbi, TRUSTED_VAULT_SHARE_PRICE_STATUSES, UNREALIZED_INTEREST_BITS, UniswapHelperAbi, UniswapHelperV1_1Abi, UniswapMigratorAbi, UniswapV3FactoryAbi, UniswapV3PoolAbi, UsdcPlpVaultBaseProdConfig, UsdcPlpVaultMainnetLegacyConfig, UsdcPlpVaultMainnetProdConfig, UsdcPlpVaultSepoliaDevConfig, UsdcPlpVaultSepoliaProdConfig, UsdgPlpVaultRobinhoodProdConfig, VAULT_DISPLAY_NAMES_PER_CHAIN, VAULT_DISPLAY_NAME_RESOLVERS_PER_CHAIN, VaultApyPreInceptionBlockError, VaultTransactionFeeEstimationError, VaultTransactionGasCostLimitError, VaultTransactionReplacementLimitError, WAD, WETHAbi, WethPlpVaultBaseProdConfig, WethPlpVaultMainnetLegacyConfig, WethPlpVaultMainnetProdConfig, WethPlpVaultSepoliaDevConfig, WethPlpVaultSepoliaProdConfig, adjustUnderlyingIdleBalance, annualizePerSecondRateWad, applyVaultTransactionGasCostLimit, bufferVaultTransactionGasEstimate, buildClaimVaultShareCalldatas, buildExecuteDepositCalldatas, buildExecuteWithdrawalCalldatas, buildManageArgs, buildManagerInput, buildManagerInputAtBlock, buildRequestWithdrawalCalldatas, buildVaultManagerInput, buildVaultManagerInputAtBlock, builderFactoryAbi, builderWalletAbi, calculateAnnualizedApyPct, calculateAssetsFromShares, calculateAvailableShares, calculateClaimableAssetsFromQueuedWithdrawals, calculateClaimableSharesFromQueuedDeposits, calculateSharesFromAssets, calculateVaultNetLendingApyPctFromTrackerInputs, calculateVaultNetLendingYieldUnderlyingFromTrackerInputs, cancelDeposit, chainToHypoVaultGraphQlAPI, clearVaultApyStrategyOverride, collateralTrackerV2Abi as collateralTrackerAbi, collateralTrackerV2Abi, computeSharePriceFromNavSnapshot, convertJsonTreeToArray, createVaultSharePriceProcessor, deriveSupplyRatePerSecWad, deriveVaultApyTimeseriesFromSharePrices, encodeApproveFunctionData, encodeCancelDepositFunctionData, encodeDepositFunctionData, encodeExecuteDepositFunctionData, encodeExecuteWithdrawalFunctionData, encodeExecuteWithdrawalMulticallFunctionData, encodeFulfillDepositsFunctionData, encodeFulfillWithdrawalsFunctionData, encodeRequestDepositFunctionData, encodeRequestWithdrawalFunctionData, encodeRequestWithdrawalMulticallFunctionData, encodeWithdrawFunctionData, executeWithdrawal, executeWithdrawalMulticall, fetchFirstDepositTimestampByVaultId, fetchVaultLendingAllocation, fetchVaultNetLendingApyPct, fetchVaultNetLendingYieldUnderlying, fetchVaultSharePriceSnapshot, fetchVaultSharePriceSnapshotWithCandidateRecovery, findLeaf, findLeafForTarget, findLeafForTargetAndSignature, formatPerSecondRateWadAsAprPct, formatPerSecondRateWadAsApyPct, generateProof, getAlchemyRpcUrl, getAlchemyWsRpcUrl, getCancelDepositContractConfig, getChainDeployment, getEthUsdcMarket, getExecuteWithdrawalContractConfig, getExecuteWithdrawalMulticallContractConfig, getHypoVaultConfigForVault, getHypoVaultGraphQLClient, getIrmCurrent, getIrmCurve, getLendingAllocationRows, getMainnetV3AuthorizationArtifactsAtBlock, getMainnetV3AuthorizationGenerations, getMainnetVaultManagerRootAtBlock, getMainnetVaultManagerRootHistory, getMainnetVaultPoolConfigurationAtBlock, getMainnetVaultPoolConfigurationHistory, getMinQueuedDepositEpoch, getProofsFromDigests, getProofsUsingTree, getRequestDepositContractConfig, getRequestWithdrawalContractConfig, getRequestWithdrawalMulticallContractConfig, getSpyUsdgMarket, getStaleOracleOverrideBytecodeForAccountant, getStaleOracleStateOverrideForAccountant, getVaultApyErrorMessage, getVaultApyStrategy, getVaultCandidatePoolInfos, getVaultDeltaHedgeHistoricalFeeQuote, getVaultDeltaHedgeInitialFeeQuote, getVaultPoolInfos, getVaultTransactionFeeQuote, getVaultTransactionReplacementFeeQuote, isExpectedHistoricalReadMiss, isIncorrectPositionListReadError, isStaleOraclePriceError, isStaleOraclePriceReadError, isSupportedChain, isTrustedVaultSharePriceStatus, packMarketState, panopticFactoryV4Abi as panopticFactoryAbi, panopticFactoryV3Abi, panopticFactoryV4Abi, panopticLiquidatorAbi, panopticPoolV2Abi as panopticPoolAbi, panopticPoolV2Abi, panopticQueryAbi, parseCustomError, ratePerSecWadToAprPct, recoverVaultCandidateTokenIdsByPool, requestDeposit, requestWithdrawal, requestWithdrawalMulticall, requireChainDeployment, resolveMainnetV3AuthorizationArtifacts, resolvePositionScanFromBlock, resolveVaultDisplayName, resolveVaultHistoricalCandidatesByPool, resolveVaultPoolInfosAtBlock, resolveVaultTokenIdsByPool, riskEngineAbi, semiFungiblePositionManagerV4Abi as semiFungiblePositionManagerAbi, semiFungiblePositionManagerV3Abi, semiFungiblePositionManagerV4Abi, setVaultApyStrategyOverride, simulateCancelDeposit, simulateExecuteWithdrawal, simulateExecuteWithdrawalMulticall, simulateRequestDeposit, simulateRequestWithdrawal, simulateRequestWithdrawalMulticall, statusForVaultSharePriceSnapshot, useCancelDeposit, useClaimVaultShares, useExecuteWithdrawal, useRequestDeposit, useRequestWithdrawal, utilizationBpsToWad, utilizationPctToWad, validateVaultSignedTransactionFeeCaps, verifyVaultOpenTokenIdsAtBlock };
|
|
32464
|
+
export { BASE_CHAIN_ID, BASE_DEPLOYMENT, BASE_ETH_USDC_5BPS_MARKET, BASE_HYPOVAULT_ADDRESSES, BASE_HYPOVAULT_CORE_ADDRESSES, BASE_HYPOVAULT_MANAGER_ADDRESSES, BASE_HYPOVAULT_MANAGER_TURNKEY_SIGNERS, BASE_PANOPTIC_POOL_ADDRESSES, BASE_PANOPTIC_V2_ADDRESSES, BORROW_INDEX_BITS, BPS_SCALE, BaseUSDCPLPStrategistLeaves, BaseUSDCPLPVaultPoolInfos, BaseWETHPLPStrategistLeaves, BaseWETHPLPVaultPoolInfos, CHAIN_DEPLOYMENTS, CollateralTrackerAbi, CollateralTrackerV1_1Abi, Erc1155Abi, Erc20Abi, HypoVaultAbi, HypoVaultManagerConfigSchema, HypoVaultManagerWithMerkleVerificationAbi, MAINNET_CHAIN_ID, MAINNET_DEPLOYMENT, MAINNET_ETH_USDC_5BPS_V3_PANOPTIC_POOL_ADDRESSES, MAINNET_PANOPTIC_V2_ADDRESSES, MAINNET_RISK_ENGINES, MAINNET_USDC_PLP_COMPILED_POOL_POLICY, MAINNET_USDC_PLP_POOL_POLICY, MAINNET_V3_AUTHORIZATION_BLOCK, MAINNET_WETH_PLP_COMPILED_POOL_POLICY, MAINNET_WETH_PLP_POOL_POLICY, MARKET_EPOCH_BITS, MARKET_EPOCH_SHIFT, MAX_STALE_DELTA_HEDGE_PRIORITY_FEE_PER_GAS, MAX_VAULT_PRIORITY_FEE_PER_GAS, MAX_VAULT_TRANSACTION_GAS_COST, MIN_VAULT_PRIORITY_FEE_PER_GAS, MainnetLegacyUSDCPLPStrategistLeaves, MainnetLegacyWETHPLPStrategistLeaves, MainnetUSDCPLPLegacyVaultPoolInfos, MainnetUSDCPLPPreviousStrategistLeaves, MainnetUSDCPLPPreviousVaultPoolInfos, MainnetUSDCPLPStrategistLeaves, MainnetUSDCPLPV3AuthorizedStrategistLeaves, MainnetUSDCPLPV3AuthorizedVaultPoolInfos, MainnetUSDCPLPVaultPoolInfos, MainnetWETHPLPLegacyVaultPoolInfos, MainnetWETHPLPPreviousStrategistLeaves, MainnetWETHPLPPreviousVaultPoolInfos, MainnetWETHPLPStrategistLeaves, MainnetWETHPLPV3AuthorizedStrategistLeaves, MainnetWETHPLPV3AuthorizedVaultPoolInfos, MainnetWETHPLPVaultPoolInfos, Multicall3Abi, NonFungiblePositionManagerAbi, PanopticFactoryV3Abi, PanopticFactoryV4Abi, PanopticHelperAbi, PanopticPoolAbi, PanopticPoolV1_1Abi, PanopticQueryV1_1Abi, PanopticVaultAccountantAbi, PanopticVaultAccountantManagerInputAbi, PoolManagerAbi, RATE_AT_TARGET_BITS, ROBINHOOD_CHAIN_ID, ROBINHOOD_DEPLOYMENT, ROBINHOOD_HYPOVAULT_ADDRESSES, ROBINHOOD_HYPOVAULT_CORE_ADDRESSES, ROBINHOOD_HYPOVAULT_MANAGER_ADDRESSES, ROBINHOOD_HYPOVAULT_MANAGER_TURNKEY_SIGNERS, ROBINHOOD_PANOPTIC_POOL_ADDRESSES, ROBINHOOD_PANOPTIC_V2_ADDRESSES, ROBINHOOD_RISK_ENGINES, ROBINHOOD_SPY_USDG_MARKET, ROBINHOOD_USDG_PLP_COMPILED_POOL_POLICY, ROBINHOOD_USDG_PLP_POOL_POLICY, RescueDistributorAbi, RobinhoodUSDGPLPStrategistLeaves, RobinhoodUSDGPLPVaultPoolInfos, SECONDS_PER_YEAR, SEPOLIA_CHAIN_ID, SEPOLIA_DEPLOYMENT, SEPOLIA_ETH_USDC_5BPS_MARKET, SEPOLIA_HYPOVAULT_ADDRESSES, SEPOLIA_HYPOVAULT_CORE_ADDRESSES, SEPOLIA_HYPOVAULT_MANAGER_ADDRESSES, SEPOLIA_HYPOVAULT_MANAGER_TURNKEY_SIGNERS, SEPOLIA_PANOPTIC_POOL_ADDRESSES, SEPOLIA_PANOPTIC_V2_ADDRESSES, SemiFungiblePositionManagerAbi, SemiFungiblePositionManagerV1_1Abi, SepoliaUSDCPLPStrategistLeaves, SepoliaUSDCPLPVaultPoolInfos, SepoliaWETHPLPStrategistLeaves, SepoliaWETHPLPVaultPoolInfos, Simple7702AccountAbi, StateViewAbi, TRUSTED_VAULT_SHARE_PRICE_STATUSES, UNREALIZED_INTEREST_BITS, UniswapHelperAbi, UniswapHelperV1_1Abi, UniswapMigratorAbi, UniswapV3FactoryAbi, UniswapV3PoolAbi, UsdcPlpVaultBaseProdConfig, UsdcPlpVaultMainnetLegacyConfig, UsdcPlpVaultMainnetProdConfig, UsdcPlpVaultSepoliaDevConfig, UsdcPlpVaultSepoliaProdConfig, UsdgPlpVaultRobinhoodProdConfig, VAULT_DISPLAY_NAMES_PER_CHAIN, VAULT_DISPLAY_NAME_RESOLVERS_PER_CHAIN, VaultApyPreInceptionBlockError, VaultTransactionFeeEstimationError, VaultTransactionGasCostLimitError, VaultTransactionReplacementLimitError, WAD, WETHAbi, WethPlpVaultBaseProdConfig, WethPlpVaultMainnetLegacyConfig, WethPlpVaultMainnetProdConfig, WethPlpVaultSepoliaDevConfig, WethPlpVaultSepoliaProdConfig, adjustUnderlyingIdleBalance, annualizePerSecondRateWad, applyVaultTransactionGasCostLimit, bufferVaultTransactionGasEstimate, buildClaimVaultShareCalldatas, buildExecuteDepositCalldatas, buildExecuteWithdrawalCalldatas, buildManageArgs, buildManagerInput, buildManagerInputAtBlock, buildRequestWithdrawalCalldatas, buildVaultManagerInput, buildVaultManagerInputAtBlock, builderFactoryAbi, builderWalletAbi, calculateAnnualizedApyPct, calculateAssetsFromShares, calculateAvailableShares, calculateClaimableAssetsFromQueuedWithdrawals, calculateClaimableSharesFromQueuedDeposits, calculateSharesFromAssets, calculateVaultNetLendingApyPctFromTrackerInputs, calculateVaultNetLendingYieldUnderlyingFromTrackerInputs, cancelDeposit, chainToHypoVaultGraphQlAPI, clearVaultApyStrategyOverride, collateralTrackerV2Abi as collateralTrackerAbi, collateralTrackerV2Abi, computeSharePriceFromNavSnapshot, convertJsonTreeToArray, createVaultSharePriceProcessor, deriveSupplyRatePerSecWad, deriveVaultApyTimeseriesFromSharePrices, encodeApproveFunctionData, encodeCancelDepositFunctionData, encodeDepositFunctionData, encodeExecuteDepositFunctionData, encodeExecuteWithdrawalFunctionData, encodeExecuteWithdrawalMulticallFunctionData, encodeFulfillDepositsFunctionData, encodeFulfillWithdrawalsFunctionData, encodeRequestDepositFunctionData, encodeRequestWithdrawalFunctionData, encodeRequestWithdrawalMulticallFunctionData, encodeWithdrawFunctionData, executeWithdrawal, executeWithdrawalMulticall, fetchFirstDepositTimestampByVaultId, fetchVaultLendingAllocation, fetchVaultNetLendingApyPct, fetchVaultNetLendingYieldUnderlying, fetchVaultSharePriceSnapshot, fetchVaultSharePriceSnapshotWithCandidateRecovery, findLeaf, findLeafForTarget, findLeafForTargetAndSignature, formatPerSecondRateWadAsAprPct, formatPerSecondRateWadAsApyPct, generateProof, getAaveHoldings, getAlchemyRpcUrl, getAlchemyWsRpcUrl, getCancelDepositContractConfig, getChainDeployment, getEthUsdcMarket, getExecuteWithdrawalContractConfig, getExecuteWithdrawalMulticallContractConfig, getHypoVaultConfigForVault, getHypoVaultGraphQLClient, getIrmCurrent, getIrmCurve, getLendingAllocationRows, getMainnetV3AuthorizationArtifactsAtBlock, getMainnetV3AuthorizationGenerations, getMainnetVaultManagerRootAtBlock, getMainnetVaultManagerRootHistory, getMainnetVaultPoolConfigurationAtBlock, getMainnetVaultPoolConfigurationHistory, getMinQueuedDepositEpoch, getMorphoHoldings, getProofsFromDigests, getProofsUsingTree, getRequestDepositContractConfig, getRequestWithdrawalContractConfig, getRequestWithdrawalMulticallContractConfig, getSpyUsdgMarket, getStaleOracleOverrideBytecodeForAccountant, getStaleOracleStateOverrideForAccountant, getVaultApyErrorMessage, getVaultApyStrategy, getVaultCandidatePoolInfos, getVaultDeltaHedgeHistoricalFeeQuote, getVaultDeltaHedgeInitialFeeQuote, getVaultPoolInfos, getVaultTransactionFeeQuote, getVaultTransactionReplacementFeeQuote, isExpectedHistoricalReadMiss, isIncorrectPositionListReadError, isStaleOraclePriceError, isStaleOraclePriceReadError, isSupportedChain, isTrustedVaultSharePriceStatus, packMarketState, panopticFactoryV4Abi as panopticFactoryAbi, panopticFactoryV3Abi, panopticFactoryV4Abi, panopticLiquidatorAbi, panopticPoolV2Abi as panopticPoolAbi, panopticPoolV2Abi, panopticQueryAbi, parseCustomError, ratePerSecWadToAprPct, recoverVaultCandidateTokenIdsByPool, requestDeposit, requestWithdrawal, requestWithdrawalMulticall, requireChainDeployment, resolveMainnetV3AuthorizationArtifacts, resolvePositionScanFromBlock, resolveVaultDisplayName, resolveVaultHistoricalCandidatesByPool, resolveVaultPoolInfosAtBlock, resolveVaultTokenIdsByPool, riskEngineAbi, semiFungiblePositionManagerV4Abi as semiFungiblePositionManagerAbi, semiFungiblePositionManagerV3Abi, semiFungiblePositionManagerV4Abi, setVaultApyStrategyOverride, simulateCancelDeposit, simulateExecuteWithdrawal, simulateExecuteWithdrawalMulticall, simulateRequestDeposit, simulateRequestWithdrawal, simulateRequestWithdrawalMulticall, statusForVaultSharePriceSnapshot, useCancelDeposit, useClaimVaultShares, useExecuteWithdrawal, useRequestDeposit, useRequestWithdrawal, utilizationBpsToWad, utilizationPctToWad, validateVaultSignedTransactionFeeCaps, verifyVaultOpenTokenIdsAtBlock };
|
|
32245
32465
|
//# sourceMappingURL=index.js.map
|