@steerprotocol/sdk 4.0.0-next.12 → 4.0.0-next.13
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 +6 -0
- package/dist/index.cjs +220 -30
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +3 -0
- package/dist/index.d.mts +3 -0
- package/dist/index.mjs +220 -30
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -2273,6 +2273,12 @@ is an error, not a fabricated key. Pool browsing remains separate and requires a
|
|
|
2273
2273
|
Base retains its existing indexed adapter by default. BNB combines indexed browsing with RPC key
|
|
2274
2274
|
resolution; Robinhood uses RPC key resolution without indexed pool browsing.
|
|
2275
2275
|
|
|
2276
|
+
### BSC SushiSwap and Uniswap V3 snapshots
|
|
2277
|
+
|
|
2278
|
+
The exact qualified `MultiPositionSushi` and `MultiPositionUniswapV3` implementations now support vault resolution, single/bulk snapshots and direct pool reads. They reuse the fixed-fee V3 reader with 15% aggregate fee rounding. Normal bulk snapshot pages use two pinned RPC requests and preserve per-member failures with `allowFailure: true`.
|
|
2279
|
+
|
|
2280
|
+
AMM-filtered Steer vault listing works. Underlying AMM pool browsing remains unqualified: both inherited subgraphs returned pool rows without the expected factory identity and the SDK rejects those responses. Deposit/withdrawal flows were not newly qualified by this snapshot work. Base Sushi is separately qualified after the 30-vault migration, using its exact upgraded FeeManager/helper implementation; see [Base Sushi qualification](src/vault/adapters/uniswap-v3/base-sushi-qualification.md). See [source and live qualification](src/vault/adapters/uniswap-v3/bsc-qualification.md).
|
|
2281
|
+
|
|
2276
2282
|
### BSC PancakeSwap V3 vault snapshots
|
|
2277
2283
|
|
|
2278
2284
|
`MultiPositionPancake` vaults on BSC use the shared `UniswapV3Vault` implementation and
|
package/dist/index.cjs
CHANGED
|
@@ -780,6 +780,9 @@ let AmmDeployment = /* @__PURE__ */ function(AmmDeployment) {
|
|
|
780
780
|
AmmDeployment["AerodromeSlipstreamBase"] = "aerodrome-slipstream-base";
|
|
781
781
|
AmmDeployment["AerodromeSlipstreamV2Base"] = "aerodrome-slipstream-v2-base";
|
|
782
782
|
AmmDeployment["AerodromeSlipstreamV3Base"] = "aerodrome-slipstream-v3-base";
|
|
783
|
+
AmmDeployment["SushiSwapV3Base"] = "sushiswap-v3-base";
|
|
784
|
+
AmmDeployment["SushiSwapV3Bsc"] = "sushiswap-v3-bsc";
|
|
785
|
+
AmmDeployment["UniswapV3Bsc"] = "uniswap-v3-bsc";
|
|
783
786
|
AmmDeployment["SushiSwapV3Polygon"] = "sushiswap-v3-polygon";
|
|
784
787
|
AmmDeployment["RetroV3Polygon"] = "retro-v3-polygon";
|
|
785
788
|
AmmDeployment["UniswapV3Polygon"] = "uniswap-v3-polygon";
|
|
@@ -19918,6 +19921,38 @@ const quickSwapIntegralPolygon = /* @__PURE__ */ new Deployment({
|
|
|
19918
19921
|
}
|
|
19919
19922
|
}, (context, definition) => new QuickSwapIntegral(context, definition, new AlgebraIntegralDataAdapter(definition.dataAdapter, definition.contracts.factory.address, context.indexerRequest)));
|
|
19920
19923
|
//#endregion
|
|
19924
|
+
//#region src/amm/deployments/sushiswap-v3.ts
|
|
19925
|
+
/** Prior SDK endpoint metadata retained; vault reads verify factory registration independently. */
|
|
19926
|
+
const sushiswapV3Polygon = /* @__PURE__ */ new Deployment({
|
|
19927
|
+
id: "sushiswap-v3-polygon",
|
|
19928
|
+
chainId: 137,
|
|
19929
|
+
contracts: { factory: { address: "0x917933899c6a5F8E37F31E19f92CdBFF7e8FF0e2" } },
|
|
19930
|
+
dataAdapter: {
|
|
19931
|
+
kind: "subgraph",
|
|
19932
|
+
url: "https://gateway.thegraph.com/api/subgraphs/id/CqLnQY1d6DLcBYu7aZvGmt17LoNdTe4fDYnGbE2EgotR"
|
|
19933
|
+
}
|
|
19934
|
+
}, (context, definition) => new SushiSwapV3(context, definition, new UniswapV3DataAdapter(definition.dataAdapter, definition.contracts.factory.address, context.indexerRequest)));
|
|
19935
|
+
/** Prior SDK endpoint metadata retained; vault reads verify factory registration independently. */
|
|
19936
|
+
const sushiswapV3Bsc = /* @__PURE__ */ new Deployment({
|
|
19937
|
+
id: "sushiswap-v3-bsc",
|
|
19938
|
+
chainId: 56,
|
|
19939
|
+
contracts: { factory: { address: "0x126555dd55a39328F69400d6aE4F782Bd4C34ABb" } },
|
|
19940
|
+
dataAdapter: {
|
|
19941
|
+
kind: "subgraph",
|
|
19942
|
+
url: "https://gateway.thegraph.com/api/subgraphs/id/FiJDXMFCBv88GP17g2TtPh8BcA8jZozn5WRW7hCN7cUT"
|
|
19943
|
+
}
|
|
19944
|
+
}, (context, definition) => new SushiSwapV3(context, definition, new UniswapV3DataAdapter(definition.dataAdapter, definition.contracts.factory.address, context.indexerRequest)));
|
|
19945
|
+
/** Prior SDK endpoint metadata retained; vault reads verify factory registration independently. */
|
|
19946
|
+
const sushiswapV3Base = /* @__PURE__ */ new Deployment({
|
|
19947
|
+
id: "sushiswap-v3-base",
|
|
19948
|
+
chainId: 8453,
|
|
19949
|
+
contracts: { factory: { address: "0xc35DADB65012eC5796536bD9864eD8773aBc74C4" } },
|
|
19950
|
+
dataAdapter: {
|
|
19951
|
+
kind: "subgraph",
|
|
19952
|
+
url: "https://gateway.thegraph.com/api/subgraphs/id/Cz4Snpih41NNNPZcbj1gd3fYXPwFr5q92iWMoZjCarEb"
|
|
19953
|
+
}
|
|
19954
|
+
}, (context, definition) => new SushiSwapV3(context, definition, new UniswapV3DataAdapter(definition.dataAdapter, definition.contracts.factory.address, context.indexerRequest)));
|
|
19955
|
+
//#endregion
|
|
19921
19956
|
//#region src/amm/deployments/uniswap-v3.ts
|
|
19922
19957
|
/** Addresses: https://developers.uniswap.org/docs/protocols/v3/deployments/v3-base-deployments */
|
|
19923
19958
|
const uniswapV3Base = /* @__PURE__ */ new Deployment({
|
|
@@ -19947,6 +19982,20 @@ const uniswapV3Polygon = /* @__PURE__ */ new Deployment({
|
|
|
19947
19982
|
url: "https://gateway.thegraph.com/api/subgraphs/id/EsLGwxyeMMeJuhqWvuLmJEiDKXJ4Z6YsoJreUnyeozco"
|
|
19948
19983
|
}
|
|
19949
19984
|
}, (context, definition) => new UniswapV3(context, definition, new UniswapV3DataAdapter(definition.dataAdapter, definition.contracts.factory.address, context.indexerRequest)));
|
|
19985
|
+
/** Addresses: https://developers.uniswap.org/docs/protocols/v3/deployments/bsc-deployments */
|
|
19986
|
+
const uniswapV3Bsc = /* @__PURE__ */ new Deployment({
|
|
19987
|
+
id: "uniswap-v3-bsc",
|
|
19988
|
+
chainId: 56,
|
|
19989
|
+
contracts: {
|
|
19990
|
+
factory: { address: "0xdB1d10011AD0Ff90774D0C6Bb92e5C5c8b4461F7" },
|
|
19991
|
+
positionManager: { address: "0x7b8A01B39D58278b5DE7e48c8449c9f4F5170613" },
|
|
19992
|
+
quoter: { address: "0x78D78E420Da98ad378D7799bE8f4AF69033EB077" }
|
|
19993
|
+
},
|
|
19994
|
+
dataAdapter: {
|
|
19995
|
+
kind: "subgraph",
|
|
19996
|
+
url: "https://gateway.thegraph.com/api/subgraphs/id/G5MUbSBM7Nsrm9tH2tGQUiAF4SZDGf2qeo1xPLYjKr7K"
|
|
19997
|
+
}
|
|
19998
|
+
}, (context, definition) => new UniswapV3(context, definition, new UniswapV3DataAdapter(definition.dataAdapter, definition.contracts.factory.address, context.indexerRequest)));
|
|
19950
19999
|
//#endregion
|
|
19951
20000
|
//#region src/amm/adapters/uniswap-v4/key-lookup.ts
|
|
19952
20001
|
const abi = /* @__PURE__ */ (0, viem.parseAbi)([
|
|
@@ -22946,18 +22995,6 @@ const retroV3Polygon = /* @__PURE__ */ new Deployment({
|
|
|
22946
22995
|
}
|
|
22947
22996
|
}, (context, definition) => new RetroV3(context, definition, new UniswapV3DataAdapter(definition.dataAdapter, definition.contracts.factory.address, context.indexerRequest)));
|
|
22948
22997
|
//#endregion
|
|
22949
|
-
//#region src/amm/deployments/sushiswap-v3.ts
|
|
22950
|
-
/** Prior SDK endpoint metadata retained; vault reads verify factory registration independently. */
|
|
22951
|
-
const sushiswapV3Polygon = /* @__PURE__ */ new Deployment({
|
|
22952
|
-
id: "sushiswap-v3-polygon",
|
|
22953
|
-
chainId: 137,
|
|
22954
|
-
contracts: { factory: { address: "0x917933899c6a5F8E37F31E19f92CdBFF7e8FF0e2" } },
|
|
22955
|
-
dataAdapter: {
|
|
22956
|
-
kind: "subgraph",
|
|
22957
|
-
url: "https://gateway.thegraph.com/api/subgraphs/id/CqLnQY1d6DLcBYu7aZvGmt17LoNdTe4fDYnGbE2EgotR"
|
|
22958
|
-
}
|
|
22959
|
-
}, (context, definition) => new SushiSwapV3(context, definition, new UniswapV3DataAdapter(definition.dataAdapter, definition.contracts.factory.address, context.indexerRequest)));
|
|
22960
|
-
//#endregion
|
|
22961
22998
|
//#region src/vault/adapters/uniswap-v3/identity.ts
|
|
22962
22999
|
const baseV3VaultIdentity = /* @__PURE__ */ (() => Object.freeze({
|
|
22963
23000
|
beacon: "0xDf0b9Ef4d7C4E294A74efB4407129bd66e4f82f0",
|
|
@@ -22966,6 +23003,14 @@ const baseV3VaultIdentity = /* @__PURE__ */ (() => Object.freeze({
|
|
|
22966
23003
|
implementationCodeHash: "0x9fff8189bb2dd53465e6cb2bee210b941b7b37dee5ca30ee6eac3463ce871ff7",
|
|
22967
23004
|
helperCodeHash: "0x8d178d093d945e3d89a5ac57aa9f14a56d4446508557da168a5713496de77937"
|
|
22968
23005
|
}))();
|
|
23006
|
+
/** Migrated Base Sushi uses the qualified FeeManager/helper layout. */
|
|
23007
|
+
const baseSushiVaultIdentity = /* @__PURE__ */ (() => Object.freeze({
|
|
23008
|
+
...baseV3VaultIdentity,
|
|
23009
|
+
beacon: "0xb4f89b74aee9b9f1340835470fe4a6ed54e7fc11",
|
|
23010
|
+
implementation: "0x6270905CAb3fC7f9bAf13803Fa2F1111D14B8005",
|
|
23011
|
+
implementationCodeHash: "0xce1144e291dec2375eedebc3fd1032f41b107761031bcec1fcef02641c0bdaab",
|
|
23012
|
+
proxyCodeHashes: Object.freeze([baseV3VaultIdentity.proxyCodeHash, "0x925993ab444b9b69993f1a22416897ccc0eadff0f3681fee18ec0617efbc2f4f"])
|
|
23013
|
+
}))();
|
|
22969
23014
|
const beaconSlot = "0xa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50";
|
|
22970
23015
|
const polygonV3VaultIdentity = /* @__PURE__ */ (() => Object.freeze({
|
|
22971
23016
|
feePolicy: "fixed",
|
|
@@ -22996,11 +23041,29 @@ const bscPancakeVaultIdentity = /* @__PURE__ */ (() => Object.freeze({
|
|
|
22996
23041
|
implementation: "0x588B34D2a9598497f481A9d31B4eD372C6135f32",
|
|
22997
23042
|
implementationCodeHash: "0xf5709c6a1fcfeb4488663da7f8182975d3adc7a07f0ed0f04b98d9488cae6a83"
|
|
22998
23043
|
}))();
|
|
23044
|
+
const bscSushiVaultIdentity = /* @__PURE__ */ (() => Object.freeze({
|
|
23045
|
+
...polygonV3VaultIdentity,
|
|
23046
|
+
feeRounding: "aggregate",
|
|
23047
|
+
beacon: "0x33553c0914e1dc95de011f26f438a599df56f268",
|
|
23048
|
+
implementation: "0xE11709193e7b2E0a0F2a4591022cFf4f01E75050",
|
|
23049
|
+
implementationCodeHash: "0x10d00977df1a122495edb85c60972f2ffb92240f14a3770461cd32372e6b4570"
|
|
23050
|
+
}))();
|
|
23051
|
+
const bscV3VaultIdentity = /* @__PURE__ */ (() => Object.freeze({
|
|
23052
|
+
...polygonV3VaultIdentity,
|
|
23053
|
+
feeRounding: "aggregate",
|
|
23054
|
+
beacon: "0x05ac33a55366a61fed4b0720946691c9faebcbb0",
|
|
23055
|
+
implementation: "0x16BA7102271dC83Fff2f709691c2B601DAD7668e",
|
|
23056
|
+
implementationCodeHash: "0x6cc14caa5a81aea294c4913dfcf437aa9d6528084ca4835ac87f036e424b2da0"
|
|
23057
|
+
}))();
|
|
22999
23058
|
const qualifiedVaults = /* @__PURE__ */ (() => Object.freeze([
|
|
23000
23059
|
{
|
|
23001
23060
|
amm: uniswapV3Base,
|
|
23002
23061
|
identity: baseV3VaultIdentity
|
|
23003
23062
|
},
|
|
23063
|
+
{
|
|
23064
|
+
amm: sushiswapV3Base,
|
|
23065
|
+
identity: baseSushiVaultIdentity
|
|
23066
|
+
},
|
|
23004
23067
|
{
|
|
23005
23068
|
amm: uniswapV3Polygon,
|
|
23006
23069
|
identity: polygonV3VaultIdentity
|
|
@@ -23016,10 +23079,17 @@ const qualifiedVaults = /* @__PURE__ */ (() => Object.freeze([
|
|
|
23016
23079
|
{
|
|
23017
23080
|
amm: pancakeSwapV3Bsc,
|
|
23018
23081
|
identity: bscPancakeVaultIdentity
|
|
23082
|
+
},
|
|
23083
|
+
{
|
|
23084
|
+
amm: sushiswapV3Bsc,
|
|
23085
|
+
identity: bscSushiVaultIdentity
|
|
23086
|
+
},
|
|
23087
|
+
{
|
|
23088
|
+
amm: uniswapV3Bsc,
|
|
23089
|
+
identity: bscV3VaultIdentity
|
|
23019
23090
|
}
|
|
23020
23091
|
]))();
|
|
23021
23092
|
function v3VaultIdentity(chainId, factory) {
|
|
23022
|
-
if (chainId === 8453) return baseV3VaultIdentity;
|
|
23023
23093
|
const qualified = qualifiedVaults.find(({ amm }) => amm.definition.chainId === chainId && sameAddress(factory, amm.definition.contracts.factory.address));
|
|
23024
23094
|
if (qualified) return qualified.identity;
|
|
23025
23095
|
throw new Error("V3 vault identity is not configured for this chain/factory");
|
|
@@ -24234,8 +24304,19 @@ async function executeV3VaultReader(context, args, mode) {
|
|
|
24234
24304
|
}
|
|
24235
24305
|
async function readV3VaultSnapshot(context, rpc, pool, factory) {
|
|
24236
24306
|
const storage = await readVaultStorage(context);
|
|
24307
|
+
const identity = v3VaultIdentity(rpc.chainId, factory);
|
|
24308
|
+
let proxyCodeHash = identity.proxyCodeHash;
|
|
24309
|
+
if (identity.feePolicy !== "fixed" && identity.proxyCodeHashes) {
|
|
24310
|
+
const code = await vaultRpc(context).getCode({
|
|
24311
|
+
address: context.address,
|
|
24312
|
+
blockNumber: context.blockNumber
|
|
24313
|
+
});
|
|
24314
|
+
if (!code || !identity.proxyCodeHashes.includes((0, viem.keccak256)(code))) identityMismatch("Unsupported vault contract code");
|
|
24315
|
+
proxyCodeHash = (0, viem.keccak256)(code);
|
|
24316
|
+
}
|
|
24237
24317
|
const expected = {
|
|
24238
|
-
...
|
|
24318
|
+
...identity,
|
|
24319
|
+
proxyCodeHash,
|
|
24239
24320
|
factory,
|
|
24240
24321
|
pool
|
|
24241
24322
|
};
|
|
@@ -24654,6 +24735,66 @@ const bscPancakeVaultProtocol = /* @__PURE__ */ (() => Object.freeze({
|
|
|
24654
24735
|
protocolAddress: pancakeSwapV3Bsc.definition.contracts.factory.address,
|
|
24655
24736
|
deployment: pancakeSwapV3Bsc
|
|
24656
24737
|
}))();
|
|
24738
|
+
const bscSushiVaultDiscovery = /* @__PURE__ */ (() => Object.freeze({
|
|
24739
|
+
amm: sushiswapV3Bsc,
|
|
24740
|
+
beaconNames: Object.freeze(["MultiPositionSushi"])
|
|
24741
|
+
}))();
|
|
24742
|
+
const bscSushiVaultBinding = /* @__PURE__ */ (() => Object.freeze({
|
|
24743
|
+
readUnderlying: (context) => readUnderlyingForFactory(context, sushiswapV3Bsc.definition.contracts.factory.address),
|
|
24744
|
+
beaconNames: bscSushiVaultDiscovery.beaconNames,
|
|
24745
|
+
kind: "liquidity",
|
|
24746
|
+
readSnapshot: readV3VaultAccounting,
|
|
24747
|
+
createVault: (context) => new UniswapV3Vault(context),
|
|
24748
|
+
beaconAddress: bscSushiVaultIdentity.beacon,
|
|
24749
|
+
implementationAddress: bscSushiVaultIdentity.implementation,
|
|
24750
|
+
implementationCodeHash: bscSushiVaultIdentity.implementationCodeHash
|
|
24751
|
+
}))();
|
|
24752
|
+
const bscSushiVaultProtocol = /* @__PURE__ */ (() => Object.freeze({
|
|
24753
|
+
kind: "liquidity",
|
|
24754
|
+
role: "amm-factory",
|
|
24755
|
+
protocolAddress: sushiswapV3Bsc.definition.contracts.factory.address,
|
|
24756
|
+
deployment: sushiswapV3Bsc
|
|
24757
|
+
}))();
|
|
24758
|
+
const bscV3VaultDiscovery = /* @__PURE__ */ (() => Object.freeze({
|
|
24759
|
+
amm: uniswapV3Bsc,
|
|
24760
|
+
beaconNames: Object.freeze(["MultiPositionUniswapV3"])
|
|
24761
|
+
}))();
|
|
24762
|
+
const bscV3VaultBinding = /* @__PURE__ */ (() => Object.freeze({
|
|
24763
|
+
readUnderlying: (context) => readUnderlyingForFactory(context, uniswapV3Bsc.definition.contracts.factory.address),
|
|
24764
|
+
beaconNames: bscV3VaultDiscovery.beaconNames,
|
|
24765
|
+
kind: "liquidity",
|
|
24766
|
+
readSnapshot: readV3VaultAccounting,
|
|
24767
|
+
createVault: (context) => new UniswapV3Vault(context),
|
|
24768
|
+
beaconAddress: bscV3VaultIdentity.beacon,
|
|
24769
|
+
implementationAddress: bscV3VaultIdentity.implementation,
|
|
24770
|
+
implementationCodeHash: bscV3VaultIdentity.implementationCodeHash
|
|
24771
|
+
}))();
|
|
24772
|
+
const bscV3VaultProtocol = /* @__PURE__ */ (() => Object.freeze({
|
|
24773
|
+
kind: "liquidity",
|
|
24774
|
+
role: "amm-factory",
|
|
24775
|
+
protocolAddress: uniswapV3Bsc.definition.contracts.factory.address,
|
|
24776
|
+
deployment: uniswapV3Bsc
|
|
24777
|
+
}))();
|
|
24778
|
+
const baseSushiVaultDiscovery = /* @__PURE__ */ (() => Object.freeze({
|
|
24779
|
+
amm: sushiswapV3Base,
|
|
24780
|
+
beaconNames: Object.freeze(["MultiPositionSushi"])
|
|
24781
|
+
}))();
|
|
24782
|
+
const baseSushiVaultBinding = /* @__PURE__ */ (() => Object.freeze({
|
|
24783
|
+
readUnderlying: (context) => readUnderlyingForFactory(context, sushiswapV3Base.definition.contracts.factory.address),
|
|
24784
|
+
beaconNames: baseSushiVaultDiscovery.beaconNames,
|
|
24785
|
+
kind: "liquidity",
|
|
24786
|
+
readSnapshot: readV3VaultAccounting,
|
|
24787
|
+
createVault: (context) => new UniswapV3Vault(context),
|
|
24788
|
+
beaconAddress: baseSushiVaultIdentity.beacon,
|
|
24789
|
+
implementationAddress: baseSushiVaultIdentity.implementation,
|
|
24790
|
+
implementationCodeHash: baseSushiVaultIdentity.implementationCodeHash
|
|
24791
|
+
}))();
|
|
24792
|
+
const baseSushiVaultProtocol = /* @__PURE__ */ (() => Object.freeze({
|
|
24793
|
+
kind: "liquidity",
|
|
24794
|
+
role: "amm-factory",
|
|
24795
|
+
protocolAddress: sushiswapV3Base.definition.contracts.factory.address,
|
|
24796
|
+
deployment: sushiswapV3Base
|
|
24797
|
+
}))();
|
|
24657
24798
|
//#endregion
|
|
24658
24799
|
//#region src/vault/deployments/base.ts
|
|
24659
24800
|
function createBaseVaultResolver() {
|
|
@@ -24678,7 +24819,16 @@ function createBaseVaultResolver() {
|
|
|
24678
24819
|
snapshotRuntime: integralVaultBatchReaderRuntime,
|
|
24679
24820
|
readSnapshot: readIntegralBulkSnapshot
|
|
24680
24821
|
},
|
|
24681
|
-
...baseAerodromeVaultMappings
|
|
24822
|
+
...baseAerodromeVaultMappings,
|
|
24823
|
+
{
|
|
24824
|
+
identity: baseSushiVaultIdentity,
|
|
24825
|
+
factory: sushiswapV3Base.definition.contracts.factory.address,
|
|
24826
|
+
runtime: v3VaultResolutionReaderRuntime,
|
|
24827
|
+
binding: baseSushiVaultBinding,
|
|
24828
|
+
snapshotRuntime: v3VaultBatchReaderRuntime,
|
|
24829
|
+
helperCodeHash: baseSushiVaultIdentity.helperCodeHash,
|
|
24830
|
+
readSnapshot: readV3BulkSnapshot
|
|
24831
|
+
}
|
|
24682
24832
|
];
|
|
24683
24833
|
return Object.freeze({
|
|
24684
24834
|
reader: {
|
|
@@ -24701,12 +24851,14 @@ function createBaseVaultResolver() {
|
|
|
24701
24851
|
implementations: Object.freeze([
|
|
24702
24852
|
...baseV3VaultResolver.implementations,
|
|
24703
24853
|
...baseAerodromeVaultMappings.map((mapping) => mapping.binding),
|
|
24704
|
-
baseIntegralVaultBinding
|
|
24854
|
+
baseIntegralVaultBinding,
|
|
24855
|
+
baseSushiVaultBinding
|
|
24705
24856
|
]),
|
|
24706
24857
|
protocols: Object.freeze([
|
|
24707
24858
|
...baseV3VaultResolver.protocols,
|
|
24708
24859
|
baseIntegralVaultProtocol,
|
|
24709
|
-
...baseAerodromeVaultProtocols
|
|
24860
|
+
...baseAerodromeVaultProtocols,
|
|
24861
|
+
baseSushiVaultProtocol
|
|
24710
24862
|
])
|
|
24711
24863
|
});
|
|
24712
24864
|
}
|
|
@@ -24723,6 +24875,7 @@ var base_default = /* @__PURE__ */ defineSteerNetwork({
|
|
|
24723
24875
|
}
|
|
24724
24876
|
}, baseContracts, "https://api.subgraph.ormilabs.com/api/public/803c8c8c-be12-4188-8523-b9853e23051d/subgraphs/steer-protocol-base/beta/gn", [
|
|
24725
24877
|
uniswapV3Base,
|
|
24878
|
+
sushiswapV3Base,
|
|
24726
24879
|
uniswapV4Base,
|
|
24727
24880
|
quickSwapIntegralBase,
|
|
24728
24881
|
aerodromeSlipstreamBase,
|
|
@@ -24731,6 +24884,7 @@ var base_default = /* @__PURE__ */ defineSteerNetwork({
|
|
|
24731
24884
|
], /* @__PURE__ */ createBaseVaultResolver(), /* @__PURE__ */ (() => Object.freeze([
|
|
24732
24885
|
...baseAerodromeVaultDiscovery,
|
|
24733
24886
|
baseV3VaultDiscovery,
|
|
24887
|
+
baseSushiVaultDiscovery,
|
|
24734
24888
|
baseIntegralVaultDiscovery
|
|
24735
24889
|
]))());
|
|
24736
24890
|
//#endregion
|
|
@@ -25950,14 +26104,33 @@ async function readV4BulkSnapshot(vault, data, rpc) {
|
|
|
25950
26104
|
}
|
|
25951
26105
|
//#endregion
|
|
25952
26106
|
//#region src/vault/deployments/bsc.ts
|
|
25953
|
-
const mappings = /* @__PURE__ */ (() => Object.freeze([
|
|
25954
|
-
|
|
25955
|
-
|
|
25956
|
-
|
|
25957
|
-
|
|
25958
|
-
|
|
25959
|
-
|
|
25960
|
-
|
|
26107
|
+
const mappings = /* @__PURE__ */ (() => Object.freeze([
|
|
26108
|
+
{
|
|
26109
|
+
identity: bscPancakeVaultIdentity,
|
|
26110
|
+
factory: pancakeSwapV3Bsc.definition.contracts.factory.address,
|
|
26111
|
+
runtime: v3VaultResolutionReaderRuntime,
|
|
26112
|
+
snapshotRuntime: fixedFeeV3VaultBatchReaderRuntime,
|
|
26113
|
+
binding: bscPancakeVaultBinding,
|
|
26114
|
+
readSnapshot: readV3BulkSnapshot
|
|
26115
|
+
},
|
|
26116
|
+
...[{
|
|
26117
|
+
identity: bscSushiVaultIdentity,
|
|
26118
|
+
binding: bscSushiVaultBinding,
|
|
26119
|
+
amm: sushiswapV3Bsc
|
|
26120
|
+
}, {
|
|
26121
|
+
identity: bscV3VaultIdentity,
|
|
26122
|
+
binding: bscV3VaultBinding,
|
|
26123
|
+
amm: uniswapV3Bsc
|
|
26124
|
+
}].map(({ identity, binding, amm }) => ({
|
|
26125
|
+
identity,
|
|
26126
|
+
binding,
|
|
26127
|
+
factory: amm.definition.contracts.factory.address,
|
|
26128
|
+
runtime: v3VaultResolutionReaderRuntime,
|
|
26129
|
+
snapshotRuntime: fixedFeeV3VaultBatchReaderRuntime,
|
|
26130
|
+
readSnapshot: readV3BulkSnapshot
|
|
26131
|
+
})),
|
|
26132
|
+
v4BulkMapping(bscV4VaultIdentity, bscV4VaultBinding, uniswapV4Bsc.definition.contracts)
|
|
26133
|
+
]))();
|
|
25961
26134
|
//#endregion
|
|
25962
26135
|
//#region src/catalog/bsc.ts
|
|
25963
26136
|
var bsc_default = /* @__PURE__ */ defineSteerNetwork({
|
|
@@ -25971,7 +26144,9 @@ var bsc_default = /* @__PURE__ */ defineSteerNetwork({
|
|
|
25971
26144
|
}, bscContracts, "https://api.subgraph.ormilabs.com/api/public/803c8c8c-be12-4188-8523-b9853e23051d/subgraphs/steer-protocol-bsc-beta/prod/gn", [
|
|
25972
26145
|
pancakeSwapV3Bsc,
|
|
25973
26146
|
pancakeSwapInfinityCLBsc,
|
|
25974
|
-
uniswapV4Bsc
|
|
26147
|
+
uniswapV4Bsc,
|
|
26148
|
+
sushiswapV3Bsc,
|
|
26149
|
+
uniswapV3Bsc
|
|
25975
26150
|
], /* @__PURE__ */ (() => Object.freeze({
|
|
25976
26151
|
reader: {
|
|
25977
26152
|
readMany: (contexts, allowFailure) => readBulkVaults(contexts, mappings, allowFailure),
|
|
@@ -25983,14 +26158,29 @@ var bsc_default = /* @__PURE__ */ defineSteerNetwork({
|
|
|
25983
26158
|
await readContext(context.steer.context, { blockNumber: context.blockNumber });
|
|
25984
26159
|
const identity = await readRegisteredVaultIdentity(context);
|
|
25985
26160
|
if (!identity) return null;
|
|
25986
|
-
if (
|
|
26161
|
+
if (findV3VaultIdentity(context.steer.context.chainId, identity.beaconAddress, identity.implementationAddress)) await verifyV3Identity(context, identity);
|
|
25987
26162
|
else await verifyV4VaultIdentity(context, identity);
|
|
25988
26163
|
return identity;
|
|
25989
26164
|
}
|
|
25990
26165
|
},
|
|
25991
|
-
implementations: Object.freeze([
|
|
25992
|
-
|
|
25993
|
-
|
|
26166
|
+
implementations: Object.freeze([
|
|
26167
|
+
bscPancakeVaultBinding,
|
|
26168
|
+
bscSushiVaultBinding,
|
|
26169
|
+
bscV3VaultBinding,
|
|
26170
|
+
bscV4VaultBinding
|
|
26171
|
+
]),
|
|
26172
|
+
protocols: Object.freeze([
|
|
26173
|
+
bscPancakeVaultProtocol,
|
|
26174
|
+
bscSushiVaultProtocol,
|
|
26175
|
+
bscV3VaultProtocol,
|
|
26176
|
+
bscV4VaultProtocol
|
|
26177
|
+
])
|
|
26178
|
+
}))(), /* @__PURE__ */ Object.freeze([
|
|
26179
|
+
bscPancakeVaultDiscovery,
|
|
26180
|
+
bscSushiVaultDiscovery,
|
|
26181
|
+
bscV3VaultDiscovery,
|
|
26182
|
+
bscV4VaultDiscovery
|
|
26183
|
+
]));
|
|
25994
26184
|
//#endregion
|
|
25995
26185
|
//#region src/catalog/celo.ts
|
|
25996
26186
|
var celo_default = /* @__PURE__ */ defineSteerNetwork({
|