@@ -2,8 +2,8 @@ import type { Address, ContractEventName, Log } from "viem";
22
33import { priceOracleV3Abi } from "../abi" ;
44import type { PriceOracleData } from "../base" ;
5- import type { NetworkType } from "../chain" ;
65import type { GearboxSDK } from "../GearboxSDK" ;
6+ import { tickerInfoTokensByNetwork } from "../sdk-gov-legacy" ;
77import { PriceOracleBaseContract } from "./PriceOracleBaseContract" ;
88
99type 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