Skip to content

Commit f8dfa26

Browse files
committed
fix: finding ticker for price oracles v3
1 parent 90921a6 commit f8dfa26

File tree

1 file changed

+11
-67
lines changed

1 file changed

+11
-67
lines changed

src/sdk/market/PriceOracleV300Contract.ts

Lines changed: 11 additions & 67 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@ import type { Address, ContractEventName, Log } from "viem";
22

33
import { priceOracleV3Abi } from "../abi";
44
import type { PriceOracleData } from "../base";
5-
import type { NetworkType } from "../chain";
65
import type { GearboxSDK } from "../GearboxSDK";
6+
import { tickerInfoTokensByNetwork } from "../sdk-gov-legacy";
77
import { PriceOracleBaseContract } from "./PriceOracleBaseContract";
88

99
type abi = typeof priceOracleV3Abi;
@@ -53,74 +53,18 @@ export class PriceOracleV300Contract extends PriceOracleBaseContract<abi> {
5353
if (token) {
5454
return [token, reserve];
5555
}
56-
const ticker = priceFeedToTicker[this.sdk.provider.networkType][priceFeed];
56+
const tickers = Object.values(
57+
tickerInfoTokensByNetwork[this.sdk.provider.networkType],
58+
).flat();
59+
const ticker = tickers.find(
60+
t => t.priceFeed.toLowerCase() === priceFeed.toLowerCase(),
61+
);
5762
if (ticker) {
58-
return [ticker, false];
63+
this.logger?.debug(
64+
`will use ticker ${ticker.symbol} (${ticker.address}) for price feed ${priceFeed}`,
65+
);
66+
return [ticker.address, false];
5967
}
6068
return [undefined, false];
6169
}
6270
}
63-
64-
/**
65-
* Mapping for ticker price feeds PriceFeed -> TickerToken
66-
* This is v3.0 stuff, in v3.1 tickers are not added into price oracles
67-
*/
68-
const priceFeedToTicker: Record<NetworkType, Record<Address, Address>> = {
69-
Mainnet: {
70-
"0x6F13996411743d22566176482B6b677Ec4eb6cE6":
71-
"0x8C23b9E4CB9884e807294c4b4C33820333cC613c",
72-
"0xa7cB34Cd731486F61cfDb7ff5F6fC7B40537eD76":
73-
"0xFb56Fb16B4F33A875b01881Da7458E09D286208e",
74-
"0xcf1FDc8DC6e83B38729d58C117BE704bb2AC362a":
75-
"0xf08D818be34C82cB5e3f33AC78F8268828764F17",
76-
"0xE683362b8ebcbfd9332CBB79BfAF9fC42073C49b":
77-
"0xBdb778F566b6cEd70D3d329DD1D14E221fFe1ba5",
78-
"0xB72A69e2182bE87bda706B7Ff9A539AC78338C61":
79-
"0x7fF63E75F48aad6F4bE97E75C6421f348f19fE7F",
80-
"0xd7396fA3aFB9833293Ce2149EEb3Dbf5380B1e0D":
81-
"0xB0EA0EC3Fd4947348816f76768b3a56249d47EEc",
82-
},
83-
Arbitrum: {
84-
"0xcB44ADd611f75F03191f8f1A2e2AF7a0113eadd1":
85-
"0x07299E4E806e4253727084c0493fFDf6fB2dBa3D",
86-
"0x354A63F07A5c1605920794aFFF09963b6DF897a9":
87-
"0x15094B05e679c9B7fDde6FB8e6BDa930ff1D6a62",
88-
},
89-
Optimism: {
90-
"0xF23C91b1E3B7FD9174c82F7Fb2BD270C3CfcC3CE":
91-
"0x658f8e60c57ad62a9299ef6c7b1da9a0d1d1e681",
92-
},
93-
Base: {},
94-
};
95-
96-
/**
97-
* Mapping for v3 conversion token -> ticker
98-
*/
99-
// TODO: unused
100-
export const tokenToTicker: Record<NetworkType, Record<Address, Address>> = {
101-
Mainnet: {
102-
"0xCd5fE23C85820F7B72D0926FC9b05b43E359b7ee":
103-
"0x8C23b9E4CB9884e807294c4b4C33820333cC613c",
104-
"0xbf5495Efe5DB9ce00f80364C8B423567e58d2110":
105-
"0xFb56Fb16B4F33A875b01881Da7458E09D286208e",
106-
"0xA1290d69c65A6Fe4DF752f95823fae25cB99e5A7":
107-
"0xf08D818be34C82cB5e3f33AC78F8268828764F17",
108-
"0xD9A442856C234a39a81a089C06451EBAa4306a72":
109-
"0xBdb778F566b6cEd70D3d329DD1D14E221fFe1ba5",
110-
"0xFAe103DC9cf190eD75350761e95403b7b8aFa6c0":
111-
"0x7fF63E75F48aad6F4bE97E75C6421f348f19fE7F",
112-
"0x8236a87084f8B84306f72007F36F2618A5634494":
113-
"0xB0EA0EC3Fd4947348816f76768b3a56249d47EEc",
114-
},
115-
Arbitrum: {
116-
"0x2416092f143378750bb29b79eD961ab195CcEea5":
117-
"0x07299E4E806e4253727084c0493fFDf6fB2dBa3D",
118-
"0x4186BFC76E2E237523CBC30FD220FE055156b41F":
119-
"0x15094B05e679c9B7fDde6FB8e6BDa930ff1D6a62",
120-
},
121-
Optimism: {
122-
"0x2416092f143378750bb29b79eD961ab195CcEea5":
123-
"0x658f8e60c57ad62a9299ef6c7b1da9a0d1d1e681",
124-
},
125-
Base: {},
126-
};

0 commit comments

Comments
 (0)