1
- import { getLogs } from "@defillama/sdk/build/util/logs" ;
2
- import { getProvider } from "@defillama/sdk" ;
1
+ import { ChainApi } from '@defillama/sdk'
3
2
import { LinearAdapterResult , TimeSeriesChainData } from "../../types/adapters" ;
4
3
import { PromisePool } from "@supercharge/promise-pool" ;
5
4
import { getBlock } from "@defillama/sdk/build/computeTVL/blocks" ;
@@ -75,6 +74,10 @@ async function getCachedChainData(version: 'v1' | 'v2'): Promise<VelodromeChainD
75
74
}
76
75
77
76
async function fetchChainData ( version : 'v1' | 'v2' ) : Promise < VelodromeChainData > {
77
+ const api = new ChainApi ( {
78
+ chain : 'optimism'
79
+ } )
80
+
78
81
const chainData : VelodromeChainData = { } ;
79
82
const versionConfig = VERSIONS [ version ] ;
80
83
const toBlock = ( await getBlock ( "optimism" , unixTimestampNow ( ) ) ) . number ;
@@ -84,7 +87,7 @@ async function fetchChainData(version: 'v1' | 'v2'): Promise<VelodromeChainData>
84
87
85
88
if ( version === 'v2' ) {
86
89
const [ mintLogs , tokenMints ] = await Promise . all ( [
87
- getLogs ( {
90
+ api . getLogs ( {
88
91
target : versionConfig . MINTER_ADDRESS ,
89
92
eventAbi : mintEventAbi ,
90
93
fromBlock : versionConfig . START ,
@@ -93,7 +96,7 @@ async function fetchChainData(version: 'v1' | 'v2'): Promise<VelodromeChainData>
93
96
entireLog : true ,
94
97
parseLog : true
95
98
} ) ,
96
- getLogs ( {
99
+ api . getLogs ( {
97
100
target : versionConfig . VELO_TOKEN ,
98
101
topics : [
99
102
"0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef" ,
@@ -133,7 +136,7 @@ async function fetchChainData(version: 'v1' | 'v2'): Promise<VelodromeChainData>
133
136
}
134
137
} else {
135
138
const [ mintLogs , teamTransfers , rebaseTransfers ] = await Promise . all ( [
136
- getLogs ( {
139
+ api . getLogs ( {
137
140
target : versionConfig . MINTER_ADDRESS ,
138
141
eventAbi : mintEventAbi ,
139
142
fromBlock : versionConfig . START ,
@@ -142,7 +145,7 @@ async function fetchChainData(version: 'v1' | 'v2'): Promise<VelodromeChainData>
142
145
entireLog : true ,
143
146
parseLog : true
144
147
} ) ,
145
- getLogs ( {
148
+ api . getLogs ( {
146
149
target : versionConfig . VELO_TOKEN ,
147
150
topics : [
148
151
"0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef" ,
@@ -154,7 +157,7 @@ async function fetchChainData(version: 'v1' | 'v2'): Promise<VelodromeChainData>
154
157
chain : "optimism" ,
155
158
entireLog : true
156
159
} ) ,
157
- getLogs ( {
160
+ api . getLogs ( {
158
161
target : versionConfig . VELO_TOKEN ,
159
162
topics : [
160
163
"0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef" ,
@@ -210,11 +213,15 @@ function groupTransfersByTx(transfers: any[]) {
210
213
}
211
214
212
215
async function processBlocks ( mintLogs : any [ ] , chainData : VelodromeChainData ) {
216
+ const api = new ChainApi ( {
217
+ chain : 'optimism'
218
+ } )
219
+
213
220
const blockNumbers = [ ...new Set ( mintLogs . map ( log => log . blockNumber ) ) ] ;
214
221
await PromisePool . withConcurrency ( 10 )
215
222
. for ( blockNumbers )
216
223
. process ( async ( blockNum ) => {
217
- const block = await getProvider ( "optimism" ) . getBlock ( blockNum ) ;
224
+ const block = await api . provider . getBlock ( blockNum ) ;
218
225
if ( block ?. timestamp ) {
219
226
chainData [ blockNum ] = {
220
227
timestamp : block . timestamp ,
0 commit comments