@steerprotocol/sdk 4.0.0-next.3 → 4.0.0-next.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +29 -0
- package/dist/index.cjs +72 -35
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +22 -13
- package/dist/index.d.mts +22 -13
- package/dist/index.mjs +72 -35
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -134,6 +134,23 @@ entry points honor client `indexers`/`http` configuration and accept per-request
|
|
|
134
134
|
timeout, and cancellation overrides as the second argument. The existing `getVault()` API and
|
|
135
135
|
its onchain identity checks remain the loading path.
|
|
136
136
|
|
|
137
|
+
When catalog records are already available, supply them through the optional `VaultLoadOptions.metadata` field:
|
|
138
|
+
|
|
139
|
+
```ts
|
|
140
|
+
const vaults = await steer.getVaults(ChainId.Base, records.map((record) => record.id), {
|
|
141
|
+
blockNumber: 100000n,
|
|
142
|
+
metadata: records,
|
|
143
|
+
});
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
This skips metadata subgraph requests while retaining all onchain registration, implementation,
|
|
147
|
+
protocol and pool checks. Records are matched by address case-insensitively and copied before IO.
|
|
148
|
+
Supply one complete record per unique requested address. Missing, duplicate, unrequested or malformed
|
|
149
|
+
records fail without a metadata fetch. Results preserve requested order and duplicate addresses.
|
|
150
|
+
Omit `metadata` to retain the existing subgraph lookup. The same options work on `getVault`, typed
|
|
151
|
+
vault getters and the connected-network loading methods. Metadata remains descriptive and is never
|
|
152
|
+
forwarded to viem/RPC or used to establish verified identity. Snapshot/accounting options are unchanged.
|
|
153
|
+
|
|
137
154
|
`getVaults(chainId, addresses, options)` returns the same resolved vault objects as `getVault()`
|
|
138
155
|
in input order, including duplicate inputs. Base V3/Integral resolution uses a bulk Solidity reader:
|
|
139
156
|
**two RPC requests per page of at most 64 vaults** at a pinned block. Latest reads add one shared
|
|
@@ -159,6 +176,18 @@ equivalent is `steer.getDeployment(chainId).getVaults(addresses, options)`.
|
|
|
159
176
|
|
|
160
177
|
## Bulk vault accounting snapshots
|
|
161
178
|
|
|
179
|
+
```ts
|
|
180
|
+
const supported: boolean = steer.getDeployment(chainId).supportsVaultSnapshots(beaconName);
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
This synchronous check performs no RPC or HTTP requests. It matches an exact indexed beacon name
|
|
184
|
+
against the network's registered liquidity implementation bindings with a snapshot reader.
|
|
185
|
+
Discovery eligibility alone does not establish support. Custom bindings can supply optional
|
|
186
|
+
`beaconNames`; missing names, missing readers and deployments without a resolver return `false`.
|
|
187
|
+
The result describes expected registered support, not a particular vault's current implementation
|
|
188
|
+
or provider compatibility. Actual snapshot reads retain their onchain identity and implementation
|
|
189
|
+
checks and can still fail. Existing batch limits continue to apply.
|
|
190
|
+
|
|
162
191
|
```ts
|
|
163
192
|
const snapshots = await steer.getVaultSnapshots(
|
|
164
193
|
ChainId.Base,
|
package/dist/index.cjs
CHANGED
|
@@ -11433,6 +11433,20 @@ function vaultMetadata(value) {
|
|
|
11433
11433
|
strategyToken: strategy === null ? null : Object.freeze({ id: String(strategy.id) })
|
|
11434
11434
|
});
|
|
11435
11435
|
}
|
|
11436
|
+
/** Validate and detach caller-owned metadata before any asynchronous resolution. */
|
|
11437
|
+
function captureVaultMetadata(addresses, values) {
|
|
11438
|
+
if (!Array.isArray(values)) throw new Error("Supplied vault metadata must be an array");
|
|
11439
|
+
const requested = new Set(addresses.map((address) => address.toLowerCase()));
|
|
11440
|
+
const records = /* @__PURE__ */ new Map();
|
|
11441
|
+
for (const value of values) {
|
|
11442
|
+
const metadata = vaultMetadata(value);
|
|
11443
|
+
if (!requested.has(metadata.id)) throw new Error(`Supplied vault metadata contains an unrequested address: ${metadata.id}`);
|
|
11444
|
+
if (records.has(metadata.id)) throw new Error(`Supplied vault metadata contains a duplicate address: ${metadata.id}`);
|
|
11445
|
+
records.set(metadata.id, metadata);
|
|
11446
|
+
}
|
|
11447
|
+
for (const address of requested) if (!records.has(address)) throw new Error(`Supplied vault metadata is missing address: ${address}`);
|
|
11448
|
+
return records;
|
|
11449
|
+
}
|
|
11436
11450
|
//#endregion
|
|
11437
11451
|
//#region src/vault/resolver-types.ts
|
|
11438
11452
|
let ProtocolContractRole = /* @__PURE__ */ function(ProtocolContractRole) {
|
|
@@ -14621,6 +14635,7 @@ async function readAerodromeBulkSnapshot(vault, data, rpc, beacon) {
|
|
|
14621
14635
|
//#region src/vault/adapters/aerodrome/deployment.ts
|
|
14622
14636
|
const baseAerodromeVaultMappings = /* @__PURE__ */ (() => Object.freeze(aerodromeVaultIdentities.map((identity) => {
|
|
14623
14637
|
const binding = Object.freeze({
|
|
14638
|
+
beaconNames: Object.freeze([identity.name]),
|
|
14624
14639
|
beaconAddress: identity.beacon,
|
|
14625
14640
|
implementationAddress: identity.implementation,
|
|
14626
14641
|
kind: "liquidity",
|
|
@@ -14667,22 +14682,14 @@ const baseAerodromeVaultProtocols = /* @__PURE__ */ (() => Object.freeze([
|
|
|
14667
14682
|
deployment
|
|
14668
14683
|
}))))();
|
|
14669
14684
|
const baseAerodromeVaultDiscovery = /* @__PURE__ */ (() => Object.freeze([
|
|
14670
|
-
|
|
14671
|
-
|
|
14672
|
-
|
|
14673
|
-
|
|
14674
|
-
|
|
14675
|
-
|
|
14676
|
-
|
|
14677
|
-
|
|
14678
|
-
poolFactory: true
|
|
14679
|
-
},
|
|
14680
|
-
{
|
|
14681
|
-
amm: aerodromeSlipstreamV3Base,
|
|
14682
|
-
beaconNames: Object.freeze(["AerodromeStakedPositionManagerV3"]),
|
|
14683
|
-
poolFactory: true
|
|
14684
|
-
}
|
|
14685
|
-
]))();
|
|
14685
|
+
aerodromeSlipstreamBase,
|
|
14686
|
+
aerodromeSlipstreamV2Base,
|
|
14687
|
+
aerodromeSlipstreamV3Base
|
|
14688
|
+
].map((amm) => Object.freeze({
|
|
14689
|
+
amm,
|
|
14690
|
+
beaconNames: Object.freeze(aerodromeVaultIdentities.filter((identity) => identity.deployments.includes(amm)).map((identity) => identity.name)),
|
|
14691
|
+
poolFactory: true
|
|
14692
|
+
}))))();
|
|
14686
14693
|
//#endregion
|
|
14687
14694
|
//#region src/amm/deployments/quickswap-integral-polygon.ts
|
|
14688
14695
|
/** Published deployment: https://docs.quickswap.exchange/overview/contracts-and-addresses */
|
|
@@ -15826,6 +15833,7 @@ const baseIntegralVaultDiscovery = /* @__PURE__ */ (() => Object.freeze({
|
|
|
15826
15833
|
beaconNames: Object.freeze(["MultiPositionQuickSwapIntegral"])
|
|
15827
15834
|
}))();
|
|
15828
15835
|
const baseIntegralVaultBinding = /* @__PURE__ */ (() => Object.freeze({
|
|
15836
|
+
beaconNames: baseIntegralVaultDiscovery.beaconNames,
|
|
15829
15837
|
beaconAddress: baseIntegralVaultIdentity.beacon,
|
|
15830
15838
|
implementationAddress: baseIntegralVaultIdentity.implementation,
|
|
15831
15839
|
kind: "liquidity",
|
|
@@ -15847,8 +15855,13 @@ const baseIntegralVaultProtocol = /* @__PURE__ */ (() => Object.freeze({
|
|
|
15847
15855
|
protocolAddress: quickSwapIntegralBase.definition.contracts.factory.address,
|
|
15848
15856
|
deployment: quickSwapIntegralBase
|
|
15849
15857
|
}))();
|
|
15858
|
+
const polygonIntegralVaultDiscovery = /* @__PURE__ */ (() => Object.freeze({
|
|
15859
|
+
amm: quickSwapIntegralPolygon,
|
|
15860
|
+
beaconNames: Object.freeze(["MultiPositionQuickSwapIntegral"])
|
|
15861
|
+
}))();
|
|
15850
15862
|
const polygonIntegralVaultBinding = /* @__PURE__ */ (() => Object.freeze({
|
|
15851
15863
|
...baseIntegralVaultBinding,
|
|
15864
|
+
beaconNames: polygonIntegralVaultDiscovery.beaconNames,
|
|
15852
15865
|
beaconAddress: polygonIntegralVaultIdentity.beacon,
|
|
15853
15866
|
implementationAddress: polygonIntegralVaultIdentity.implementation
|
|
15854
15867
|
}))();
|
|
@@ -15858,10 +15871,6 @@ const polygonIntegralVaultProtocol = /* @__PURE__ */ (() => Object.freeze({
|
|
|
15858
15871
|
protocolAddress: quickSwapIntegralPolygon.definition.contracts.factory.address,
|
|
15859
15872
|
deployment: quickSwapIntegralPolygon
|
|
15860
15873
|
}))();
|
|
15861
|
-
const polygonIntegralVaultDiscovery = /* @__PURE__ */ (() => Object.freeze({
|
|
15862
|
-
amm: quickSwapIntegralPolygon,
|
|
15863
|
-
beaconNames: Object.freeze(["MultiPositionQuickSwapIntegral"])
|
|
15864
|
-
}))();
|
|
15865
15874
|
//#endregion
|
|
15866
15875
|
//#region src/vault/adapters/algebra-integral/reader/batch-artifact.ts
|
|
15867
15876
|
const integralVaultBatchReaderRuntime = "0x6080604052600436101561001a575b341561230f575b600080fd5b60003560e01c806307dd8bd51461007a5780630d9737731461007557806314e4396b14610070578063663da5fd1461006b5780636e7436201461006657638092844f0361000e57610ad0565b610a5e565b6105ee565b610534565b6102c2565b346100155760c0366003190112610015576100f36101076100e46004356100a081610115565b6024356100ac81610115565b6044356100b881610115565b606435906100c582610115565b608435926100d284610126565b60a435946100df86610126565b610ebe565b919290604051948580956101ec565b6101e06101a08501526101e0840190610214565b9060020b6101c08301520390f35b6001600160a01b0381160361001557565b8060020b0361001557565b80516001600160a01b031682526101ea91906101409081906020818101516001600160a01b0316908501526040818101516001600160a01b0316908501526060818101516001600160a01b03169085015260808181015160020b9085015260a08181015161ffff169085015260c08181015160ff169085015260e08181015161ffff1690850152610100818101516001600160801b0316908501526101208181015160020b9085015201516001600160a01b0316910152565b565b60ff6040610180926101ff858251610131565b82602082015116610160860152015116910152565b906020808351928381520192019060005b8181106102325750505090565b9091926020608060019260608751805160020b835284810151858401526040810151600f0b60408401520151151560608201520194019101919091610225565b60806101c091610283848251610131565b60ff60208201511661016085015260ff60408201511661018085015260608101516101a08501520151910152565b6101e0810192916101ea9190610272565b34610015576080366003190112610015576004356102df81610115565b6024356102eb81610115565b600460206103416103356103358361032460443561030881610115565b6064359061031582610115565b61031d611030565b998b61295e565b80885201516001600160a01b031690565b6001600160a01b031690565b60405163313ce56760e01b815292839182905afa80156104c45761037291600091610515575b5060ff166020830152565b80516040015160049060209061039290610335906001600160a01b031681565b60405163313ce56760e01b815292839182905afa80156104c4576103c3916000916104e6575b5060ff166040830152565b8051602001516103dd90610335906001600160a01b031681565b6040516370a0823160e01b81526001600160a01b038416600482015290602090829060249082905afa9283156104c457610469936020926000916104c9575b50606084015282516040015161043c90610335906001600160a01b031681565b6040516370a0823160e01b81526001600160a01b0390921660048301529093849190829081906024820190565b03915afa80156104c45761049192600091610495575b506080820152604051918291826102b1565b0390f35b6104b7915060203d6020116104bd575b6104af8183610ba5565b810190610dab565b3861047f565b503d6104a5565b610dba565b6104e09150833d85116104bd576104af8183610ba5565b3861041c565b610508915060203d60201161050e575b6105008183610ba5565b810190611070565b386103b8565b503d6104f6565b61052e915060203d60201161050e576105008183610ba5565b38610367565b346100155760403660031901126100155761055c60243560043561055782610115565b612f29565b600080516020613136833981519152546040516001600160a01b039091168152602090f35b60005b8381106105945750506000910152565b8181015183820152602001610584565b906020916105bd81518092818552858086019101610581565b601f01601f1916010190565b6001600160a01b0390911681526040602082018190526105eb929101906105a4565b90565b34610015576101603660031901126100155760243560043561060f82610115565b6044359161061c83610115565b60e0366063190112610015576106328183612f29565b600080516020613136833981519152546001600160a01b0316610656610335611084565b6001600160a01b03909116148015906108eb575b8015610878575b8015610864575b610853576040516316f0115b60e01b8152906020826004816001600160a01b0385165afa9182156104c457600092610821575b50600091926107b56106bb611084565b6107306106c6611090565b61072060a4356106d461109c565b9061070b6106e06110a8565b946106fb6106ec610bc6565b6001600160a01b039099168952565b6001600160a01b03166020880152565b60408601526001600160a01b03166060850152565b6001600160a01b03166080830152565b6001600160a01b0386811660a0830190815260408051630373a1b160e51b81526004810196909652958216602486015297811660448501528151811660648501526020820151811660848501529381015160a48401526060810151841660c484015260800151831660e483015294519091166101048201529283908190610124820190565b0381305afa9182156104c4576107e1926107ef916000916107fe575b50604051938491602083016109e4565b03601f198101845283610ba5565b610491604051928392836105c9565b61081b91503d806000833e6108138183610ba5565b810190611346565b386107d1565b600092506108469060203d60201161084c575b61083e8183610ba5565b8101906110c9565b916106ab565b503d610834565b63b2f0dc1f60e01b60005260046000fd5b5061086d611090565b3f60a4351415610678565b506004602061088b610335610335611084565b604051635c60da1b60e01b815292839182905afa9081156104c4576000916108cc575b506108ba610335611090565b6001600160a01b039091161415610671565b6108e5915060203d60201161084c5761083e8183610ba5565b386108ae565b5060fb546001600160a01b038481169116141561066a565b906020808351928381520192019060005b8181106109215750505090565b9091926020610180600192610160875161093e83825160020b9052565b8085015160020b8386015260408181015161ffff16908401526060818101516001600160801b0316908401526080810151608084015260a081015160a084015261099860c082015160c08501906001600160801b03169052565b60e0818101516001600160801b03169084015261010081015161010084015261012081015161012084015261014081015161014084015201516101608201520194019101919091610914565b6103006101006105eb9360208452610a00602085018251610272565b602081015161020085015260408101516102208501526060810151610240850152608081015161026085015260a081015161028085015260c08101516102a085015260e08101516102c08501520151916102e0808201520190610903565b346100155761012036600319011261001557602435600435610a7f82610115565b604435610a8b81610115565b60c03660631901126100155761049192610aa4926117d7565b604051918291826109e4565b80610ac26101c0926105eb95946101ec565b816101a08201520190610214565b346100155760a036600319011261001557600435610aed81610115565b602435610af981610115565b60443591610b0683610115565b606435610b1281610115565b608435936001600160401b0385116100155736602386011215610015578460040135936001600160401b038511610015573660248660051b88010111610015576024610b5f960193612239565b9061049160405192839283610ab0565b634e487b7160e01b600052604160045260246000fd5b60a081019081106001600160401b03821117610ba057604052565b610b6f565b90601f801991011681019081106001600160401b03821117610ba057604052565b604051906101ea60c083610ba5565b604051906101ea61016083610ba5565b604051906101ea61018083610ba5565b604051906101ea61012083610ba5565b6040519061016082018281106001600160401b03821117610ba0576040526000610140838281528260208201528260408201528260608201528260808201528260a08201528260c08201528260e082015282610100820152826101208201520152565b60405190606082018281106001600160401b03821117610ba0576040526000604083610c92610c05565b81528260208201520152565b6001600160401b038111610ba05760051b60200190565b60405190608082018281106001600160401b03821117610ba05760405260006060838281528260208201528260408201520152565b6040516110209190610cfc8382610ba5565b6080815291601f19018260005b828110610d1557505050565b602090610d20610cb5565b82828501015201610d09565b90610d3682610c9e565b610d436040519182610ba5565b8281528092610d54601f1991610c9e565b019060005b828110610d6557505050565b602090610d70610cb5565b82828501015201610d59565b634e487b7160e01b600052601160045260246000fd5b6001600160ff1b038114610da65760010190565b610d7c565b90816020910312610015575190565b6040513d6000823e3d90fd5b600019810191908211610da657565b908160081b918083056101001490151715610da657565b818102929160008212600160ff1b821416610da6578184051490151715610da657565b9060048201916000600484129112908015821691151617610da657565b9060018201916000600184129112908015821691151617610da657565b91909160008382019384129112908015821691151617610da657565b6000198114610da65760010190565b634e487b7160e01b600052603260045260246000fd5b8051821015610e9e5760209160051b010190565b610e74565b60020b60010190627fffff8213627fffff19831217610da657565b94959392610ee092610ed992610ed2610c68565b5087612392565b9482612512565b9290610eea610cea565b9560009360029390930b926001600160a01b0382169060010b5b8360010b811315610f20575050505050906105eb918452610ea3565b604051630633bf1f60e51b8152600182900b6004820152602081602481865afa9081156104c457600091611012575b50805b610f655750610f6090610d92565b610f04565b909192939495610f96610f77836126f8565b92610f8181610dc6565b169260ff610f8e86610dd5565b911690610e49565b8781128015611006575b610ff95760808214610fe85791610fe2610fd58293610fdb610fcb8f9c9b9a99989760020b8a61282e565b9180938491610e65565b9c610e8a565b528c610e8a565b50610f52565b908a5260020b979650505050505050565b5095949392919080610f52565b508860020b8113610fa0565b61102a915060203d81116104bd576104af8183610ba5565b38610f4f565b6040519061103d82610b85565b600060808361104a610c05565b81528260208201528260408201528260608201520152565b519060ff8216820361001557565b90816020910312610015576105eb90611062565b6064356105eb81610115565b6084356105eb81610115565b60c4356105eb81610115565b60e4356105eb81610115565b356105eb81610115565b51906101ea82610115565b9081602091031261001557516105eb81610115565b51906101ea82610126565b519061ffff8216820361001557565b51906001600160801b038216820361001557565b80929103916101e08312610015576040519061112782610b85565b610160829412610015576101c060809161113f610bd5565b611148826110be565b8152611156602083016110be565b6020820152611167604083016110be565b6040820152611178606083016110be565b60608201526111888483016110de565b8482015261119860a083016110e9565b60a08201526111a960c08301611062565b60c08201526111ba60e083016110e9565b60e08201526111cc61010083016110f8565b6101008201526111df61012083016110de565b6101208201526111f261014083016110be565b61014082015284526112076101608201611062565b60208501526112196101808201611062565b60408501526101a081015160608501520151910152565b81601f820112156100155780519061124782610c9e565b926112556040519485610ba5565b828452602061018081860194028301019181831161001557602001925b828410611280575050505090565b6101808483031261001557602061018091611299610be5565b6112a2876110de565b81526112af8388016110de565b838201526112bf604088016110e9565b60408201526112d0606088016110f8565b60608201526080870151608082015260a087015160a08201526112f560c088016110f8565b60c082015261130660e088016110f8565b60e0820152610100870151610100820152610120870151610120820152610140870151610140820152610160870151610160820152815201930192611272565b602081830312610015578051906001600160401b03821161001557016102e08183031261001557611375610bf5565b91611380818361110c565b83526101e0820151602084015261020082015160408401526102208201516060840152610240820151608084015261026082015160a084015261028082015160c08401526102a082015160e08401526102c08201516001600160401b038111610015576113ed9201611230565b61010082015290565b6040519061012082018281106001600160401b03821117610ba057604052606061010083611422611030565b8152600060208201526000604082015260008382015260006080820152600060a0820152600060c0820152600060e08201520152565b81601f820112156100155780516001600160401b038111610ba0576040519261148b601f8301601f191660200185610ba5565b81845260208284010111610015576105eb9160208085019101610581565b602081830312610015578051906001600160401b038211610015570160c081830312610015576114d7610bc6565b916114e182611062565b8352602082015160208401526040820151604084015260608201516001600160401b0381116100155781611516918401611458565b6060840152611527608083016110be565b608084015260a08201516001600160401b038111610015576115499201611458565b60a082015290565b9060206105eb9281815201906105a4565b906101e082820312610015576105eb9161110c565b9080601f8301121561001557815161158e81610c9e565b9261159c6040519485610ba5565b81845260208085019260051b82010192831161001557602001905b8282106115c45750505090565b6020809183516115d381610126565b8152019101906115b7565b90916060828403126100155781516001600160401b0381116100155783611606918401611577565b9260208301516001600160401b0381116100155781611626918501611577565b926040810151906001600160401b03821161001557019080601f8301121561001557815161165381610c9e565b926116616040519485610ba5565b81845260208085019260051b82010192831161001557602001905b8282106116895750505090565b60208091611696846110e9565b81520191019061167c565b6040519061018082018281106001600160401b03821117610ba0576040526000610160838281528260208201528260408201528260608201528260808201528260a08201528260c08201528260e08201528261010082015282610120820152826101408201520152565b9061171582610c9e565b6117226040519182610ba5565b8281528092611733601f1991610c9e565b019060005b82811061174457505050565b60209061174f6116a1565b82828501015201611738565b600281901b91906001600160fe1b03811603610da657565b9061177d82610c9e565b61178a6040519182610ba5565b828152809261179b601f1991610c9e565b0190602036910137565b908160a0910312610015578051916020820151916040810151916105eb60806117d0606085016110f8565b93016110f8565b92916117eb826117e56113f6565b95612f29565b6040516367a44ca360e01b81526001600160a01b038381166004830152919091169190600081602481865afa9081156104c4576000916121fc575b506080810180516001600160a01b0316156121eb57602060a061185f9301516040518094819263f3b881a360e01b835260048301611551565b0381875afa9182156104c4576000926121c6575b50516001600160a01b03165b6001600160a01b0383811694911684148015919061218f575b8115612179575b5061085357604051635c60da1b60e01b8152906001600160a01b0316602082600481845afa9182156104c457600092612158575b506118e161033560646110b4565b14801590612139575b612128573f60a43503610853576040516316f0115b60e01b8152602081600481865afa9081156104c457600091612109575b5061192b6103356101046110b4565b6001600160a01b03821692908303610853576119966101e061194d60c46110b4565b61195760e46110b4565b604051630d97377360e01b81526001600160a01b0380881660048301529283166024820152911660448201526000606482015291829081906084820190565b0381305afa9081156104c4576000916120da575b508652604051630dfe168160e01b8152602081600481885afa9081156104c4576000916120bb575b50865151602001516119ec906001600160a01b0316610335565b6001600160a01b039091161480159061204a575b610853576040516380814ffb60e01b815290602082600481885afa9182156104c457600092612029575b50602087810192835260405163ef095f8d60e01b81529081600481895afa9081156104c45760009161200a575b506040880190815287515160200151611a7a90610335906001600160a01b031681565b6040516370a0823160e01b81526001600160a01b038416600482015290602090829060249082905afa9081156104c457600091611feb575b506060890190815288515160400151611ad590610335906001600160a01b031681565b6040516370a0823160e01b81526001600160a01b03851660048201529390602090859060249082905afa9384156104c457600094611fca575b5060808a01938452610101546001600160a01b0316801561085357604051634867e20360e11b81526001600160a01b03929092166004830152602090829060249082905afa80156104c45761271091600091611fab575b508060a08c015211938415611f9e575b50508215611f91575b5050611e77576040516304013ac360e51b815294600086600481875afa9081156104c45760009283978493611f64575b5083518851811490811591611f58575b50611e7757611bcd845161170b565b610100830152835115611f4f576040516318de2b9160e21b8152602081600481895afa9081156104c457600091611f30575b5060c083015260405163766f67a160e11b8152602081600481895afa9081156104c457600091611f11575b5060e083015260015b611c3d855161175b565b811015611c4c5760011b611c33565b92939495611c62611c5c85611773565b94610d2c565b9360009160301b915b8751811015611f05578a611c9f611c99611c8c84611c93611c8c828f610e8a565b5160020b90565b94610e8a565b60020b90565b9060020b12801590611ee9575b818c8215611ecb575b5050611e7757611cc58189610e8a565b5160020b611cd3828d610e8a565b5160020b611ce19184612f6e565b611ce96116a1565b90611cf4818a610e8a565b5160020b8252611d04818d610e8a565b5160020b6020830152611d178189610e8a565b5161ffff166040830152808c611d2d828c610e8a565b5160181b65ffffff00000016861791611d4591610e8a565b5160405163514ea4bf60e01b815262ffffff909116919091176004820152918a836024815a9360a094fa9283156104c4576000938491859186918791611e88575b506001600160801b031660e0850152611daa905b6001600160801b031660c0850152565b60a083015260808201526001600160801b038311611e7757818160608f81611e328f611e2c8f91888f84611e269160019f611c8c611e709f611c8c97611e0988928e6001600160801b03611e2097169101906001600160801b03169052565b611e11610cb5565b50611e1a610cb5565b50610e8a565b90612fe4565b96610e8a565b8d612fe4565b91604081015161010086015201516101208401526040810151610140840152015161016082015261010089015190611e6a8383610e8a565b52610e8a565b5001611c6b565b63234eceb960e01b60005260046000fd5b915050611d9a9550611daa9250611eb6915060a03d8111611ec4575b611eae8183610ba5565b8101906117a5565b939792945090929091611d86565b503d611ea4565b620d89e89250611ede91611c8c91610e8a565b60020b13818c611cb5565b50620d89e719611efc611c8c838b610e8a565b60020b12611cac565b50505050955050505050565b611f2a915060203d6020116104bd576104af8183610ba5565b38611c2a565b611f49915060203d6020116104bd576104af8183610ba5565b38611bff565b50955050505050565b90508351141538611bbe565b9193909750611f8592503d8091833e611f7d8183610ba5565b8101906115de565b96919290969138611bae565b5190511090503880611b7e565b5190511092503880611b75565b611fc4915060203d6020116104bd576104af8183610ba5565b38611b65565b611fe491945060203d6020116104bd576104af8183610ba5565b9238611b0e565b612004915060203d6020116104bd576104af8183610ba5565b38611ab2565b612023915060203d6020116104bd576104af8183610ba5565b38611a57565b61204391925060203d6020116104bd576104af8183610ba5565b9038611a2a565b5060405163d21220a760e01b8152602081600481885afa9081156104c45760009161209c575b508651516040015161208a906001600160a01b0316610335565b6001600160a01b039091161415611a00565b6120b5915060203d60201161084c5761083e8183610ba5565b38612070565b6120d4915060203d60201161084c5761083e8183610ba5565b386119d2565b6120fc91506101e03d8111612102575b6120f48183610ba5565b810190611562565b386119aa565b503d6120ea565b612122915060203d60201161084c5761083e8183610ba5565b3861191c565b633b35273960e01b60005260046000fd5b5061214761033560846110b4565b6001600160a01b03821614156118ea565b61217291925060203d60201161084c5761083e8183610ba5565b90386118d3565b60fb546001600160a01b0316141590503861189f565b600080516020613136833981519152549091506121b4906001600160a01b0316610335565b6001600160a01b038316141590611898565b61187f9192506121e49060203d60201161084c5761083e8183610ba5565b9190611873565b63aba4733960e01b60005260046000fd5b61221991503d806000833e6122118183610ba5565b8101906114a9565b38611826565b9190811015610e9e5760051b0190565b356105eb81610126565b94929091959395612248610c68565b5083158015612305575b6122d8576122609286612392565b9361226a82610d2c565b9360005b83811061227b5750505050565b620d89e719612296611c9961229184888861221f565b61222f565b1280156122e9575b6122d857806122bc6122b6612291600194888861221f565b8461282e565b6122c68289610e8a565b526122d18188610e8a565b500161226e565b633840ee2560e21b60005260046000fd5b50620d89e86122fc61229183878761221f565b60020b1361229e565b5060808411612252565b600080516020613136833981519152546004906020906001600160a01b0316604051635c60da1b60e01b815292839182905afa9081156104c45760009182918291612373575b50368280378136915af43d6000803e1561236e573d6000f35b3d6000fd5b61238c915060203d60201161084c5761083e8183610ba5565b38612355565b939261033561033560206123b66123c79460049783976123b0610c68565b9b61295e565b80895201516001600160a01b031690565b60405163313ce56760e01b815292839182905afa80156104c4576123f891600091612468575b5060ff166020840152565b81516040015160049060209061241890610335906001600160a01b031681565b60405163313ce56760e01b815292839182905afa80156104c4576101ea91600091612449575b5060ff166040840152565b612462915060203d60201161050e576105008183610ba5565b3861243e565b612481915060203d60201161050e576105008183610ba5565b386123ed565b634e487b7160e01b600052601260045260246000fd5b81156124b857600160ff1b8114600019831416610da6570590565b612487565b9060020b9081156124b85760020b0790565b600160ff1b8114610da6576000190190565b60081d90565b906000198201918213600116610da657565b81810392916000138015828513169184121617610da657565b9190918060020b620d89e7198112801561266c575b8015612660575b8015612658575b6125f85761255e91600061254a60018461249d565b92129081612640575b506126375760081d90565b908260020b6125716124e160018361249d565b926000821280612621575b612608575b604061258d82866124f9565b12156125f8576125a461259f82610e0f565b6124e7565b84136125e4575b60010b936125d061259f60016125cb6125c688830b98610e2c565b610dd5565b610dec565b918212156125df575060020b90565b905090565b92506125f261259f84610e0f565b926125ab565b6264847d60e41b60005260046000fd5b925061261b6124e161259f60018461249d565b92612581565b50612630611c996001876124bd565b151561257c565b6124e1906124cf565b61265091506001611c99916124bd565b151538612553565b506000612535565b508360020b811361252e565b50620d89e88460020b13612527565b60ff60409116019060ff8211610da657565b60ff60209116019060ff8211610da657565b60ff60109116019060ff8211610da657565b60ff60089116019060ff8211610da657565b60ff60049116019060ff8211610da657565b60ff60029116019060ff8211610da657565b60ff1660ff8114610da65760010190565b906000916001600160801b038116156127d9575b806001600160401b0360019216156127c6575b63ffffffff8116156127b3575b61ffff8116156127a0575b60ff81161561278d575b600f81161561277a575b6003811615612767575b161561275d57565b906105eb906126e7565b6127749060021c936126d5565b92612755565b6127879060041c936126c3565b9261274b565b61279a9060081c936126b1565b92612741565b6127ad9060101c9361269f565b92612737565b6127c09060201c9361268d565b9261272c565b6127d39060401c9361267b565b9261271f565b60809250821c61270c565b91908260c091031261001557815191602081015180600f0b81036100155791604082015161281181610126565b91606081015161282081610126565b9160a0608083015192015190565b91909160c061283b610cb5565b60029490940b80855260405163f30dba9360e01b8152600481019190915291829060249082906001600160a01b03165afa9081156104c4576101ea9160009160009161289c575b50600f0b60408501525b6020840181905215156060840152565b61288c92506128c3915060c03d60c0116128d0575b6128bb8183610ba5565b8101906127e4565b5050505091909190612882565b503d6128b1565b91908260c09103126100155781516128ee81610115565b9160208101516128fd81610126565b9161290a604083016110e9565b9161291760608201611062565b9160a0612926608084016110e9565b92015180151581036100155790565b9081602091031261001557516105eb81610126565b90816020910312610015576105eb906110f8565b9392612968610c05565b60405163c45a015560e01b815290956001600160a01b03169390602081600481885afa80156104c4576129ab91600091612f0a575b506001600160a01b03168752565b85516001600160a01b039384169316831480159190612eac575b50612d7e57604051630dfe168160e01b815291602083600481875afa9283156104c457600093612e8b575b506001600160a01b03909216602086019081529160405163d21220a760e01b815291602083600481885afa9283156104c457600093612e6a575b506001600160a01b039283166040880190815284519093168015908115612e4b575b50612d7e576001600160a01b038116612dae57509151905160405163d9a641e160e01b81526001600160a01b0392831660048201529116602482015290602090829060449082905afa80156104c4578291600091612d8f575b505b6001600160a01b031603612d7e576040516339db007960e21b815260c081600481855afa9081156104c45784600092838094819582958394612d37575b50612b389291612b21612b2b92612b16606089019a612b0f60e060c08c019b019b8c9061ffff169052565b60ff168952565b61ffff1660a08d0152565b60020b60808b0152565b6001600160a01b03168552565b60405163ef01df4f60e01b815292602084600481895afa9384156104c457600094612d16575b506001600160a01b039093166101408801908152926040516334324e9f60e21b8152916020836004818a5afa9283156104c457600093612ce5575b50612bac6101208a0193849060020b9052565b15948515612cd2575b508415612cb4575b508315612c9a575b8315612c87575b508215612c56575b5050612c4557602060049160405192838092630d34328160e11b82525afa80156104c4576101ea91600091612c16575b506001600160801b0316610100840152565b612c38915060203d602011612c3e575b612c308183610ba5565b81019061294a565b38612c04565b503d612c26565b63baf3f0f760e01b60005260046000fd5b516080161515915081612c6c575b503880612bd4565b51612c8091506001600160a01b0316610335565b1538612c64565b51617fff60029190910b13925038612bcc565b92506000612ca9845160020b90565b60020b131592612bc5565b6103e8919450612cc961ffff915161ffff1690565b16119238612bbd565b516001600160a01b031615945038612bb5565b612d0891935060203d602011612d0f575b612d008183610ba5565b810190612935565b9138612b99565b503d612cf6565b612d3091945060203d60201161084c5761083e8183610ba5565b9238612b5e565b915050612b2b9550612b389450612b219250612d6b915060c03d60c011612d77575b612d638183610ba5565b8101906128d7565b91985096909450612ae4565b503d612d59565b63178423dd60e01b60005260046000fd5b612da8915060203d60201161084c5761083e8183610ba5565b38612aa5565b9251612e1293602093909291612dd5906001600160a01b031691516001600160a01b031690565b6040516308f68db360e21b81526001600160a01b039485166004820152918416602483015290921660448301529092839190829081906064820190565b03915afa80156104c4578291600091612e2c575b50612aa7565b612e45915060203d60201161084c5761083e8183610ba5565b38612e26565b8451909150612e62906001600160a01b0316610335565b111538612a4c565b612e8491935060203d60201161084c5761083e8183610ba5565b9138612a2a565b612ea591935060203d60201161084c5761083e8183610ba5565b91386129f0565b60405163188c824d60e11b81529150602082600481875afa9182156104c457600092612ee9575b506001600160a01b0391821691161415386129c5565b612f0391925060203d60201161084c5761083e8183610ba5565b9038612ed3565b612f23915060203d60201161084c5761083e8183610ba5565b3861299d565b461490811591612f4c575b50612f3b57565b63f2f1096160e01b60005260046000fd5b6001600160a01b0316301415905038612f34565b9060018201809211610da657565b929162ffffff65ffffff00000091169160181b161760018101809111610da657612f988351610dc6565b92612fa38483613115565b612fad8183610e8a565b5115612fd45782612fbe8284610e8a565b5114611e7757612fce8591612f60565b16612fa3565b90612fe192939450610e8a565b52565b9091612fee610cb5565b92612ff98251610dc6565b938160020b9161300e8662ffffff8316613115565b613025602061301d8388610e8a565b510151151590565b1561306b5783613043611c9961303b8489610e8a565b515160020b90565b14613058576130528791612f60565b1661300e565b94505050506130679250610e8a565b5190565b93925060c0919695506130b19461308582899060020b9052565b60016020890152604051808097819463f30dba9360e01b835260048301919091602081019260020b9052565b03916001600160a01b03165afa9283156104c4576130ea936000916000916130ed575b506060870152604086015284611e6a8383610e8a565b50565b9050613108915060c03d60c0116128d0576128bb8183610ba5565b94509250505090386130d4565b604051602081019182526020815261312e604082610ba5565b519020169056fea3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50";
|
|
@@ -17537,6 +17546,7 @@ async function readUnderlyingForFactory(context, expectedFactory) {
|
|
|
17537
17546
|
const baseV3VaultResolver = /* @__PURE__ */ (() => Object.freeze({
|
|
17538
17547
|
reader: baseV3IdentityReader,
|
|
17539
17548
|
implementations: Object.freeze([Object.freeze({
|
|
17549
|
+
beaconNames: baseV3VaultDiscovery.beaconNames,
|
|
17540
17550
|
beaconAddress: baseV3VaultIdentity.beacon,
|
|
17541
17551
|
implementationAddress: baseV3VaultIdentity.implementation,
|
|
17542
17552
|
kind: "liquidity",
|
|
@@ -17551,7 +17561,12 @@ const baseV3VaultResolver = /* @__PURE__ */ (() => Object.freeze({
|
|
|
17551
17561
|
deployment: uniswapV3Base
|
|
17552
17562
|
})])
|
|
17553
17563
|
}))();
|
|
17564
|
+
const polygonV3VaultDiscovery = /* @__PURE__ */ (() => Object.freeze({
|
|
17565
|
+
amm: uniswapV3Polygon,
|
|
17566
|
+
beaconNames: Object.freeze(["MultiPositionUniswapV3"])
|
|
17567
|
+
}))();
|
|
17554
17568
|
const polygonV3VaultBinding = /* @__PURE__ */ (() => Object.freeze({
|
|
17569
|
+
beaconNames: polygonV3VaultDiscovery.beaconNames,
|
|
17555
17570
|
beaconAddress: polygonV3VaultIdentity.beacon,
|
|
17556
17571
|
implementationAddress: polygonV3VaultIdentity.implementation,
|
|
17557
17572
|
kind: "liquidity",
|
|
@@ -17565,19 +17580,25 @@ const polygonV3VaultProtocol = /* @__PURE__ */ (() => Object.freeze({
|
|
|
17565
17580
|
protocolAddress: uniswapV3Polygon.definition.contracts.factory.address,
|
|
17566
17581
|
deployment: uniswapV3Polygon
|
|
17567
17582
|
}))();
|
|
17568
|
-
const
|
|
17569
|
-
amm:
|
|
17570
|
-
beaconNames: Object.freeze(["
|
|
17583
|
+
const polygonSushiVaultDiscovery = /* @__PURE__ */ (() => Object.freeze({
|
|
17584
|
+
amm: sushiswapV3Polygon,
|
|
17585
|
+
beaconNames: Object.freeze(["MultiPositionSushi"])
|
|
17571
17586
|
}))();
|
|
17572
17587
|
const polygonSushiVaultBinding = /* @__PURE__ */ (() => Object.freeze({
|
|
17573
17588
|
...polygonV3VaultBinding,
|
|
17574
17589
|
readUnderlying: (context) => readUnderlyingForFactory(context, sushiswapV3Polygon.definition.contracts.factory.address),
|
|
17590
|
+
beaconNames: polygonSushiVaultDiscovery.beaconNames,
|
|
17575
17591
|
beaconAddress: polygonSushiVaultIdentity.beacon,
|
|
17576
17592
|
implementationAddress: polygonSushiVaultIdentity.implementation
|
|
17577
17593
|
}))();
|
|
17594
|
+
const polygonRetroVaultDiscovery = /* @__PURE__ */ (() => Object.freeze({
|
|
17595
|
+
amm: retroV3Polygon,
|
|
17596
|
+
beaconNames: Object.freeze(["MultiPositionRetro"])
|
|
17597
|
+
}))();
|
|
17578
17598
|
const polygonRetroVaultBinding = /* @__PURE__ */ (() => Object.freeze({
|
|
17579
17599
|
...polygonV3VaultBinding,
|
|
17580
17600
|
readUnderlying: (context) => readUnderlyingForFactory(context, retroV3Polygon.definition.contracts.factory.address),
|
|
17601
|
+
beaconNames: polygonRetroVaultDiscovery.beaconNames,
|
|
17581
17602
|
beaconAddress: polygonRetroVaultIdentity.beacon,
|
|
17582
17603
|
implementationAddress: polygonRetroVaultIdentity.implementation
|
|
17583
17604
|
}))();
|
|
@@ -17591,14 +17612,6 @@ const polygonRetroVaultProtocol = /* @__PURE__ */ (() => Object.freeze({
|
|
|
17591
17612
|
protocolAddress: retroV3Polygon.definition.contracts.factory.address,
|
|
17592
17613
|
deployment: retroV3Polygon
|
|
17593
17614
|
}))();
|
|
17594
|
-
const polygonSushiVaultDiscovery = /* @__PURE__ */ (() => Object.freeze({
|
|
17595
|
-
amm: sushiswapV3Polygon,
|
|
17596
|
-
beaconNames: Object.freeze(["MultiPositionSushi"])
|
|
17597
|
-
}))();
|
|
17598
|
-
const polygonRetroVaultDiscovery = /* @__PURE__ */ (() => Object.freeze({
|
|
17599
|
-
amm: retroV3Polygon,
|
|
17600
|
-
beaconNames: Object.freeze(["MultiPositionRetro"])
|
|
17601
|
-
}))();
|
|
17602
17615
|
//#endregion
|
|
17603
17616
|
//#region src/vault/adapters/uniswap-v3/reader/batch-artifact.ts
|
|
17604
17617
|
const v3VaultBatchReaderRuntime = "0x6080604052600436101561001a575b3415610e4c575b600080fd5b60003560e01c806314e4396b1461006a57806335347ed9146100655780633dfbc4fc14610060578063663da5fd1461005b5763832986680361000e576107ea565b6104b5565b6103d3565b610303565b346100155760403660031901126100155761009260243560043561008d826100ae565b610ee1565b602061009c610f4b565b6040516001600160a01b039091168152f35b6001600160a01b0381160361001557565b35906100ca826100ae565b565b60e09060c31901126100155760c490565b60e090606319011261001557606490565b80516001600160a01b031682526101609081906020818101516001600160a01b0316908501526040818101516001600160a01b03169085015260608181015162ffffff169085015260808181015160020b9085015260a0818101516001600160a01b03169085015260c08181015160020b9085015260e0818101516001600160801b0316908501526101008181015160ff16908501526101208181015160ff16908501526101408101516101408501520151910152565b906020808351928381520192019060005b8181106101c35750505090565b909192602061018060019261016087516101e083825160020b9052565b8085015160020b8386015260408181015161ffff16908401526060818101516001600160801b0316908401526080810151608084015260a081015160a084015261023a60c082015160c08501906001600160801b03169052565b60e0818101516001600160801b031690840152610100810151610100840152610120810151610120840152610140810151610140840152015161016082015201940191019190916101b6565b6102a061010061030093602084526102a26020850182516100ee565b60208101516101a085015260408101516101c085015260608101516101e0850152608081015161020085015260a081015161022085015260c081015161024085015260e08101516102608501520151916102808082015201906101a5565b90565b34610015576101a036600319011261001557600435610321816100ae565b60243561032d816100ae565b6080366043190112610015576103be916103b29161034a366100cc565b906103536109cf565b506103ac60405192610364846108bc565b604435610370816100ae565b845260643561037e816100ae565b602085015260843561038f816100ae565b604085015260a4356103a0816100ae565b60608501523690610a31565b92611348565b60405191829182610286565b0390f35b610180810192916100ca91906100ee565b34610015576040366003190112610015576004356103f0816100ae565b6024356001600160401b03811161001557366023820112156100155780600401356001600160401b038111610015573660248260051b84010111610015576103be92602461043f930190610ac2565b604051918291826103c2565b60005b83811061045e5750506000910152565b818101518382015260200161044e565b906020916104878151809281855285808601910161044b565b601f01601f1916010190565b6001600160a01b0390911681526040602082018190526103009291019061046e565b3461001557610160366003190112610015576004356024356104d6816100ae565b604435916104e3836100ae565b6104ec366100dd565b9161014435916104fc8282610ee1565b610504610f4b565b61051c61051086610b2a565b6001600160a01b031690565b6001600160a01b03909116148015906107d2575b801561075a575b8015610740575b61072f576040516316f0115b60e01b8152926020846004816001600160a01b0387165afa9384156106ee576000946106f3575b50610682906105f48661058660009798610b2a565b9261059360208301610b2a565b916105d36105a8606060408401359301610b2a565b936105c36105b4610918565b6001600160a01b039098168852565b6001600160a01b03166020870152565b60408501899052606085015260808401526001600160a01b031660a0830152565b6001600160a01b0386811660c083019081526040805163106530cd60e31b81526004810196909652958216602486015297811660448501528151811660648501526020820151811660848501529381015160a4840152606081015160c4840152608081015160e484015260a00151831661010483015294519091166101248201529283908190610144820190565b0381305afa9182156106ee576106ae926106bc916000916106cb575b5060405193849160208301610286565b03601f1981018452836108f7565b6103be60405192839283610493565b6106e891503d806000833e6106e081836108f7565b810190610d9c565b3861069e565b610b54565b60009450906105f461071f6106829360203d602011610728575b61071781836108f7565b810190610b3f565b95505090610571565b503d61070d565b63b2f0dc1f60e01b60005260046000fd5b5061074d60208501610b2a565b3f6040850135141561053e565b506004602061076e61051061051088610b2a565b604051635c60da1b60e01b815292839182905afa9081156106ee576000916107b3575b506107a161051060208701610b2a565b6001600160a01b039091161415610537565b6107cc915060203d6020116107285761071781836108f7565b38610791565b5060c9546001600160a01b0386811691161415610530565b3461001557610140366003190112610015576103be6103b2602435600435610811826100ae565b60443561081d816100ae565b6108398361082a366100dd565b936108336109cf565b50610ee1565b6103ac610844610f4b565b60c9549093906001600160a01b031660d3546001600160a01b031660d65460081c6001600160a01b0316916040519661087c886108bc565b6001600160a01b039081168852908116602088015290811660408701521660608501523690610a31565b634e487b7160e01b600052604160045260246000fd5b608081019081106001600160401b038211176108d757604052565b6108a6565b60e081019081106001600160401b038211176108d757604052565b90601f801991011681019081106001600160401b038211176108d757604052565b604051906100ca60e0836108f7565b604051906100ca610180836108f7565b604051906100ca610120836108f7565b604051906100ca60c0836108f7565b604051906100ca6040836108f7565b6040519061018082018281106001600160401b038211176108d7576040526000610160838281528260208201528260408201528260608201528260808201528260a08201528260c08201528260e08201528261010082015282610120820152826101408201520152565b6040519061012082018281106001600160401b038211176108d7576040526060610100836109fb610965565b8152600060208201526000604082015260008382015260006080820152600060a0820152600060c0820152600060e08201520152565b91908260e091031261001557604051610a49816108dc565b60c0610aa68183958035610a5c816100ae565b85526020810135610a6c816100ae565b6020860152604081013560408601526060810135606086015260808101356080860152610a9b60a082016100bf565b60a0860152016100bf565b910152565b6001600160401b0381116108d75760051b60200190565b929192610acd610965565b50610ad784610aab565b91610ae560405193846108f7565b848352602083019460051b81019036821161001557945b818610610b10575050610300929350611db1565b602080918735610b1f816100ae565b815201950194610afc565b35610300816100ae565b51906100ca826100ae565b908160209103126100155751610300816100ae565b6040513d6000823e3d90fd5b519062ffffff8216820361001557565b51908160020b820361001557565b51906001600160801b038216820361001557565b519060ff8216820361001557565b91908261018091031261001557610160610bb8610927565b92610bc281610b34565b8452610bd060208201610b34565b6020850152610be160408201610b34565b6040850152610bf260608201610b60565b6060850152610c0360808201610b70565b6080850152610c1460a08201610b34565b60a0850152610c2560c08201610b70565b60c0850152610c3660e08201610b7e565b60e0850152610c486101008201610b92565b610100850152610c5b6101208201610b92565b6101208501526101408101516101408501520151610160830152565b519061ffff8216820361001557565b81601f8201121561001557805190610c9d82610aab565b92610cab60405194856108f7565b828452602061018081860194028301019181831161001557602001925b828410610cd6575050505090565b6101808483031261001557602061018091610cef610927565b610cf887610b70565b8152610d05838801610b70565b83820152610d1560408801610c77565b6040820152610d2660608801610b7e565b60608201526080870151608082015260a087015160a0820152610d4b60c08801610b7e565b60c0820152610d5c60e08801610b7e565b60e0820152610100870151610100820152610120870151610120820152610140870151610140820152610160870151610160820152815201930192610cc8565b602081830312610015578051906001600160401b03821161001557016102808183031261001557610dcb610937565b91610dd68183610ba0565b835261018082015160208401526101a082015160408401526101c082015160608401526101e0820151608084015261020082015160a084015261022082015160c084015261024082015160e08401526102608201516001600160401b03811161001557610e439201610c86565b61010082015290565b7fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50546004906020906001600160a01b0316604051635c60da1b60e01b815292839182905afa9081156106ee5760009182918291610ec2575b50368280378136915af43d6000803e15610ebd573d6000f35b3d6000fd5b610edb915060203d6020116107285761071781836108f7565b38610ea4565b461490811591610f04575b50610ef357565b63f2f1096160e01b60005260046000fd5b6001600160a01b0316301415905038610eec565b634e487b7160e01b600052601160045260246000fd5b600181901b91906001600160ff1b03811603610f4657565b610f18565b7fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50546001600160a01b031690565b81601f820112156100155780516001600160401b0381116108d75760405192610fac601f8301601f1916602001856108f7565b8184526020828401011161001557610300916020808501910161044b565b602081830312610015578051906001600160401b038211610015570160c08183031261001557610ff8610947565b9161100282610b92565b8352602082015160208401526040820151604084015260608201516001600160401b0381116100155781611037918401610f79565b606084015261104860808301610b34565b608084015260a08201516001600160401b0381116100155761106a9201610f79565b60a082015290565b90602061030092818152019061046e565b6040805190919061109483826108f7565b6001815291601f1901366020840137565b634e487b7160e01b600052603260045260246000fd5b8051156110c85760200190565b6110a5565b80518210156110c85760209160051b010190565b90816020910312610015575190565b9080601f8301121561001557815161110781610aab565b9261111560405194856108f7565b81845260208085019260051b82010192831161001557602001905b82821061113d5750505090565b6020809161114a84610b70565b815201910190611130565b90916060828403126100155781516001600160401b038111610015578361117d9184016110f0565b9260208301516001600160401b038111610015578161119d9185016110f0565b926040810151906001600160401b03821161001557019080601f830112156100155781516111ca81610aab565b926111d860405194856108f7565b81845260208085019260051b82010192831161001557602001905b8282106112005750505090565b6020809161120d84610c77565b8152019101906111f3565b9061122282610aab565b61122f60405191826108f7565b8281528092611240601f1991610aab565b019060005b82811061125157505050565b60209061125c610965565b82828501015201611245565b60405190606082018281106001600160401b038211176108d75760405260006040838281528260208201520152565b906112a182610aab565b6112ae60405191826108f7565b82815280926112bf601f1991610aab565b019060005b8281106112d057505050565b6020906112db611268565b828285010152016112c4565b9060020b9081156112f95760020b0790565b634e487b7160e01b600052601260045260246000fd5b908160a09103126100155761132381610b7e565b91602082015191604081015191610300608061134160608501610b7e565b9301610b7e565b909193926113546109cf565b6040516367a44ca360e01b81526001600160a01b0384811660048301529096919416600087602481845afa9687156106ee57600097611ccf575b506080870180516001600160a01b031615611cbe57602060a06113c7990151604051809a819263f3b881a360e01b835260048301611072565b0381855afa9788156106ee57600098611c99575b50516001600160a01b03165b6001600160a01b038581169891168814801590611c73575b61072f57604051635c60da1b60e01b815291906001600160a01b0316602083600481845afa9283156106ee57600093611c52575b508451611448906001600160a01b0316610510565b14801590611c29575b611c185761145e8561210e565b60208301516001600160a01b03161480159190611c08575b5061072f576114858282612121565b6040516316f0115b60e01b81526020816004818a5afa9081156106ee57600091611be9575b5060c08301516114c2906001600160a01b0316610510565b6001600160a01b0382169390840361072f576115149161150f6114f760a06114e8611083565b9401516001600160a01b031690565b611500846110bb565b6001600160a01b039091169052565b611db1565b8452604051630dfe168160e01b81526020816004818a5afa9081156106ee57600091611bca575b50845160200151611554906001600160a01b0316610510565b6001600160a01b0390911614801590611b5a575b61072f57611576908361213c565b60a08601908152604086019182526020868101938452865101519091906115a790610510906001600160a01b031681565b6040516370a0823160e01b81526001600160a01b038716600482015290602090829060249082905afa9081156106ee57600091611b3b575b506060870190815286516040015161160190610510906001600160a01b031681565b6040516370a0823160e01b81526001600160a01b03881660048201529390602090859060249082905afa9384156106ee57600094611b16575b50612710908460808a01525111938415611b09575b50508215611afe575b50506119af576000600495604051968780926304013ac360e51b82525afa9081156106ee5760009384968593611ad1575b5084518751811490811591611ac5575b506119af576116a88551611218565b610100820152845115611abd5760405163f305839960e01b8152602081600481865afa9081156106ee57600091611a9e575b5060c0820152604051634614131960e01b8152602081600481865afa9081156106ee57600091611a6f575b5060e082015261171d6117188651610f2e565b611297565b93611726610956565b9460008652602086015260005b8651811015611a655761175061174982896110cd565b5160020b90565b611766611760611749848d6110cd565b60020b90565b9060020b12801590611a49575b8015611a2e575b8015611a13575b80156119e9575b6119af5760005b81811061197b575061179f610965565b906117aa81896110cd565b5160020b82526117ba818b6110cd565b5160020b60208301526117cd81876110cd565b5161ffff1660408301526117e181896110cd565b5160020b6117ef828c6110cd565b516040516bffffffffffffffffffffffff19606087901b166020820190815260e893841b60348301529190921b6037830152601a825290611831603a826108f7565b51902060405163514ea4bf60e01b8152600481019190915285816024815a9360a094fa9081156106ee578360408d816118f28d8f6117498a8f846118e69160019f6117496119309f869f986118db6118ec9a89936118e0966000918290839084908590611937575b6001600160801b031660e08501529394506060936118c2905b6001600160801b031660c0850152565b60a0830152608082015201906001600160801b03169052565b6110cd565b906122e9565b966110cd565b8d6122e9565b9160208101516101008601520151610120840152602081015161014084015201516101608201526101008701519061192a83836110cd565b526110cd565b5001611733565b50505050606091506118c26119656118b29460a03d8111611974575b61195d81836108f7565b81019061130f565b93975087965091935091611899565b503d611953565b611988611749828a6110cd565b611998611760611749858c6110cd565b9060020b14806119c0575b6119af5760010161178f565b63234eceb960e01b60005260046000fd5b50896119df611760611749856119d961174987876110cd565b946110cd565b9060020b146119a3565b50611a096119fa611749838c6110cd565b84516080015160020b906112e7565b60020b1515611788565b50611a246119fa611749838a6110cd565b60020b1515611781565b50620d89e8611a40611749838c6110cd565b60020b1361177a565b50620d89e719611a5c611749838a6110cd565b60020b12611773565b5050955050505050565b611a91915060203d602011611a97575b611a8981836108f7565b8101906110e1565b38611705565b503d611a7f565b611ab7915060203d602011611a9757611a8981836108f7565b386116da565b955050505050565b90508351141538611699565b9194909650611af292503d8091833e611aea81836108f7565b810190611155565b95919390959138611689565b511190503880611658565b519051109250388061164f565b612710919450611b349060203d602011611a9757611a8981836108f7565b939061163a565b611b54915060203d602011611a9757611a8981836108f7565b386115df565b5060405163d21220a760e01b81526020816004818a5afa9081156106ee57600091611bab575b50845160400151611b99906001600160a01b0316610510565b6001600160a01b039091161415611568565b611bc4915060203d6020116107285761071781836108f7565b38611b80565b611be3915060203d6020116107285761071781836108f7565b3861153b565b611c02915060203d6020116107285761071781836108f7565b386114aa565b90503f6060830151141538611476565b633b35273960e01b60005260046000fd5b506020840151611c41906001600160a01b0316610510565b6001600160a01b0383161415611451565b611c6c91935060203d6020116107285761071781836108f7565b9138611433565b508251611c88906001600160a01b0316610510565b6001600160a01b03821614156113ff565b6113e7919850611cb79060203d6020116107285761071781836108f7565b97906113db565b63aba4733960e01b60005260046000fd5b611ced9197503d806000833e611ce581836108f7565b810190610fca565b953861138e565b908160209103126100155761030090610b70565b519063ffffffff8216820361001557565b5190811515820361001557565b908160e0910312610015578051611d3c816100ae565b91611d4960208301610b70565b91611d5660408201610c77565b91611d6360608301610c77565b91611d7060808201610c77565b9161030060c0611d8260a08501611d08565b9301611d19565b908160209103126100155761030090610b7e565b908160209103126100155761030090610b92565b9190611dc690611dbf610965565b508361241e565b6040516334324e9f60e21b81529092906001600160a01b03821690602081600481855afa80156106ee57611e07916000916120df575b5060020b6080860152565b604051633850c7bd60e01b815260e081600481855afa9182156106ee57611e526020926004946000916000916120a3575b5060020b60c08901525b6001600160a01b031660a0880152565b604051630d34328160e11b815292839182905afa80156106ee57611e8991600091612074575b506001600160801b031660e0850152565b602083019060046020611ea8610510610510865160018060a01b031690565b60405163313ce56760e01b815292839182905afa80156106ee57611eda91600091612055575b5060ff16610100860152565b604084019160046020611ef9610510610510875160018060a01b031690565b60405163313ce56760e01b815292839182905afa80156106ee57611f4392611f366105109261051094600091612026575b5060ff166101208a0152565b516001600160a01b031690565b6040516370a0823160e01b81526001600160a01b03831660048201529190602090839060249082905afa9283156106ee57610510610510611fa192611fce96602096600091612009575b506101408a0152516001600160a01b031690565b6040516370a0823160e01b81526001600160a01b0390921660048301529092839190829081906024820190565b03915afa9081156106ee57600091611fea575b50610160830152565b612003915060203d602011611a9757611a8981836108f7565b38611fe1565b6120209150873d8911611a9757611a8981836108f7565b38611f8d565b612048915060203d60201161204e575b61204081836108f7565b810190611d9d565b38611f2a565b503d612036565b61206e915060203d60201161204e5761204081836108f7565b38611ece565b612096915060203d60201161209c575b61208e81836108f7565b810190611d89565b38611e78565b503d612084565b611e4292506120ca915060e03d60e0116120d8575b6120c281836108f7565b810190611d26565b505050505091909190611e38565b503d6120b8565b612101915060203d602011612107575b6120f981836108f7565b810190611cf4565b38611dfc565b503d6120ef565b306001600160a01b039091160361072f57565b608090606060018060a01b03910151163f9101510361072f57565b6040516380814ffb60e01b81529192906001600160a01b03811690602084600481855afa9182156106ee57600494600093612255575b506020906040519586809263ef095f8d60e01b82525afa9384156106ee57600094612220575b506020906121b961051061051060406121e69899015160018060a01b031690565b604051634867e20360e11b81526001600160a01b0390921660048301529094859190829081906024820190565b03915afa9283156106ee576000936121ff575b50929190565b61221991935060203d602011611a9757611a8981836108f7565b91386121f9565b6121e69450906121b96105106105106040612249602096873d8911611a9757611a8981836108f7565b98505050505090612198565b602091935061227090823d8411611a9757611a8981836108f7565b9290612172565b9190826101009103126100155761228d82610b7e565b91602081015180600f0b8103610015579160408201519160608101519160808201518060060b8103610015579160a08101516122c8816100ae565b9161030060e0611d8260c08501611d08565b6000198114610f465760010190565b916122f2611268565b60009160208101938060020b935b8251811015612345578461232361176061231b848a516110cd565b515160020b90565b1461233057600101612300565b9493505050506123419250516110cd565b5190565b506101009193506123859492969561236082899060020b9052565b604051808097819463f30dba9360e01b835260048301919091602081019260020b9052565b03916001600160a01b03165afa9283156106ee576123cd936000916000916123d0575b5060408701526020860152518151916123c0836122da565b90528461192a83836110cd565b50565b90506123f491506101003d8111612403575b6123ec81836108f7565b810190612277565b505050509250905090386123a8565b503d6123e2565b908160209103126100155761030090610b60565b91612427610965565b60405163c45a015560e01b815290936001600160a01b031690602081600481855afa80156106ee57612469916000916126ae575b506001600160a01b03168552565b60009260005b81518110156126a55785516001600160a01b0316612493610510611f3684866110cd565b6001600160a01b03909116146124ab5760010161246f565b505090915060015b1561269457604051630dfe168160e01b8152602081600481855afa9081156106ee57600091612675575b506001600160a01b03166020840190815260405163d21220a760e01b8152602081600481865afa9081156106ee57600091612656575b506001600160a01b03166040850190815260405163ddca3f4360e01b815290602082600481875afa9283156106ee576125d593602093600091612629575b5062ffffff166060880190815261259561258b61257d61257d6105106105108d5160018060a01b031690565b94516001600160a01b031690565b915162ffffff1690565b604051630b4c774160e11b81526001600160a01b03948516600482015293909116602484015262ffffff1660448301529092839190829081906064820190565b03915afa9081156106ee5760009161260a575b506001600160a01b0316036125f957565b630282c45560e31b60005260046000fd5b612623915060203d6020116107285761071781836108f7565b386125e8565b6126499150843d861161264f575b61264181836108f7565b81019061240a565b38612551565b503d612637565b61266f915060203d6020116107285761071781836108f7565b38612513565b61268e915060203d6020116107285761071781836108f7565b386124dd565b63747e52b360e11b60005260046000fd5b505090916124b3565b6126c7915060203d6020116107285761071781836108f7565b3861245b56";
|
|
@@ -19033,6 +19046,7 @@ const bscV4VaultDiscovery = /* @__PURE__ */ (() => Object.freeze({
|
|
|
19033
19046
|
beaconNames: Object.freeze(["MultiPositionReserveV4"])
|
|
19034
19047
|
}))();
|
|
19035
19048
|
const bscV4VaultBinding = /* @__PURE__ */ (() => Object.freeze({
|
|
19049
|
+
beaconNames: bscV4VaultDiscovery.beaconNames,
|
|
19036
19050
|
beaconAddress: bscV4VaultIdentity.beacon,
|
|
19037
19051
|
implementationAddress: bscV4VaultIdentity.implementation,
|
|
19038
19052
|
kind: "liquidity",
|
|
@@ -20448,6 +20462,7 @@ const polygonLegacyVaultDiscovery = /* @__PURE__ */ (() => Object.freeze({
|
|
|
20448
20462
|
beaconNames: Object.freeze(["MultiPositionQuickSwap"])
|
|
20449
20463
|
}))();
|
|
20450
20464
|
const polygonLegacyVaultBinding = /* @__PURE__ */ (() => Object.freeze({
|
|
20465
|
+
beaconNames: polygonLegacyVaultDiscovery.beaconNames,
|
|
20451
20466
|
beaconAddress: polygonLegacyVaultIdentity.beacon,
|
|
20452
20467
|
implementationAddress: polygonLegacyVaultIdentity.implementation,
|
|
20453
20468
|
kind: "liquidity",
|
|
@@ -20902,10 +20917,18 @@ var VaultResolver = class {
|
|
|
20902
20917
|
for (const binding of definition.implementations) {
|
|
20903
20918
|
const key = implementationKey(binding.beaconAddress, binding.implementationAddress);
|
|
20904
20919
|
if (this.#implementations.has(key)) throw new VaultResolutionError("invalid-mapping", "Duplicate vault implementation mapping");
|
|
20905
|
-
this.#implementations.set(key, Object.freeze({
|
|
20920
|
+
this.#implementations.set(key, Object.freeze({
|
|
20921
|
+
...binding,
|
|
20922
|
+
...binding.beaconNames ? { beaconNames: Object.freeze([...binding.beaconNames]) } : {}
|
|
20923
|
+
}));
|
|
20906
20924
|
}
|
|
20907
20925
|
for (const binding of definition.protocols) this.#registerProtocol(binding);
|
|
20908
20926
|
}
|
|
20927
|
+
/** @internal Expected registered support only; actual reads still verify onchain identity. */
|
|
20928
|
+
supportsVaultSnapshots(beaconName) {
|
|
20929
|
+
for (const binding of this.#implementations.values()) if (binding.kind === "liquidity" && binding.readSnapshot && binding.beaconNames?.includes(beaconName)) return true;
|
|
20930
|
+
return false;
|
|
20931
|
+
}
|
|
20909
20932
|
async resolve(steer, address, options) {
|
|
20910
20933
|
const [vault] = await this.resolveMany(steer, [address], options);
|
|
20911
20934
|
if (!vault) throw new Error("Missing resolved vault");
|
|
@@ -20954,9 +20977,14 @@ var VaultResolver = class {
|
|
|
20954
20977
|
if (snapshot.blockNumber !== blockNumber || !vault.underlying.some((position) => position.kind === "liquidity" && sameLiquidityPool(position.pool, snapshot.pool))) throw new Error("Vault returned another accounting snapshot");
|
|
20955
20978
|
return readValidatedVaultSnapshot(vault, snapshot, vault.steer.context);
|
|
20956
20979
|
}
|
|
20957
|
-
#metadata(steer, addresses) {
|
|
20980
|
+
#metadata(steer, addresses, supplied) {
|
|
20958
20981
|
let pending;
|
|
20959
20982
|
return async (address) => {
|
|
20983
|
+
if (supplied) {
|
|
20984
|
+
const metadata = supplied.get(address.toLowerCase());
|
|
20985
|
+
if (!metadata) throw new Error(`Supplied vault metadata is missing address: ${address}`);
|
|
20986
|
+
return metadata;
|
|
20987
|
+
}
|
|
20960
20988
|
pending ??= steer.dataAdapter.getVaultMetadata(addresses);
|
|
20961
20989
|
const metadata = (await pending).find((record) => record.id.toLowerCase() === address.toLowerCase());
|
|
20962
20990
|
if (!metadata) throw new Error("Vault metadata is not indexed");
|
|
@@ -20967,13 +20995,15 @@ var VaultResolver = class {
|
|
|
20967
20995
|
async resolveMany(steer, addresses, options) {
|
|
20968
20996
|
const inputs = [...addresses];
|
|
20969
20997
|
for (const address of inputs) addressKey(address);
|
|
20998
|
+
const supplied = options?.metadata;
|
|
20999
|
+
const metadata = supplied === void 0 ? void 0 : captureVaultMetadata(inputs, supplied);
|
|
20970
21000
|
if (!inputs.length) return Object.freeze([]);
|
|
20971
21001
|
const blockNumber = await this.#blockNumber(steer, options);
|
|
20972
21002
|
const result = [];
|
|
20973
21003
|
let bulkSupported = !!this.#reader.readMany;
|
|
20974
21004
|
for (let start = 0; start < inputs.length; start += 64) {
|
|
20975
21005
|
const batch = inputs.slice(start, start + 64);
|
|
20976
|
-
const loadMetadata = this.#metadata(steer, batch);
|
|
21006
|
+
const loadMetadata = this.#metadata(steer, batch, metadata);
|
|
20977
21007
|
const contexts = batch.map((address) => Object.freeze({
|
|
20978
21008
|
steer,
|
|
20979
21009
|
address,
|
|
@@ -21126,11 +21156,18 @@ var SteerNetwork = class {
|
|
|
21126
21156
|
listVaults(request, options) {
|
|
21127
21157
|
return this.dataAdapter.listVaults(request, options);
|
|
21128
21158
|
}
|
|
21159
|
+
/** Synchronous registration check with no RPC or HTTP; does not verify a particular vault. */
|
|
21160
|
+
supportsVaultSnapshots(beaconName) {
|
|
21161
|
+
return this.#resolver?.supportsVaultSnapshots(beaconName) ?? false;
|
|
21162
|
+
}
|
|
21129
21163
|
async getVault(address, options) {
|
|
21130
21164
|
return this.#vaultResolver().resolve(this, address, options);
|
|
21131
21165
|
}
|
|
21132
21166
|
async getVaults(addresses, options) {
|
|
21133
|
-
if (!addresses.length)
|
|
21167
|
+
if (!addresses.length) {
|
|
21168
|
+
if (options?.metadata !== void 0) captureVaultMetadata(addresses, options.metadata);
|
|
21169
|
+
return Object.freeze([]);
|
|
21170
|
+
}
|
|
21134
21171
|
return this.#vaultResolver().resolveMany(this, addresses, options);
|
|
21135
21172
|
}
|
|
21136
21173
|
getVaultSnapshots(addresses, options) {
|