@@ -35,6 +35,20 @@ type V1TickerItem = {
35
35
count : number ;
36
36
} ;
37
37
38
+ type TotalVolumeItem = {
39
+ "alpFeeVOFor24Hour" : {
40
+ "fee" : number
41
+ "revenue" : number
42
+ } ,
43
+ "allAlpFeeVO" : {
44
+ "fee" : number
45
+ "revenue" : number
46
+ } ,
47
+ "cumVol" : number
48
+ }
49
+
50
+ const TotalVolumeAPI = "https://www.apollox.finance/bapi/futures/v1/public/future/apx/fee/all"
51
+
38
52
const v2VolumeAPI =
39
53
"https://www.apollox.finance/bapi/future/v1/public/future/apx/pair" ;
40
54
@@ -56,17 +70,26 @@ const fetchV1Volume = async () => {
56
70
return dailyVolume
57
71
} ;
58
72
73
+ const fetchTotalVolume = async ( chain : Chain ) => {
74
+ const { data } = (
75
+ await httpGet ( TotalVolumeAPI , { params : { chain, } } )
76
+ ) as { data : TotalVolumeItem }
77
+
78
+ return data . cumVol
79
+ } ;
59
80
const adapter : SimpleAdapter = {
60
81
adapter : {
61
82
[ CHAIN . BSC ] : {
62
83
runAtCurrTime : true ,
63
84
fetch : async ( timestamp ) => {
64
- const [ v1 , v2 ] = await Promise . all ( [
85
+ const [ v1 , v2 , totalVolume ] = await Promise . all ( [
65
86
fetchV2Volume ( CHAIN . BSC ) ,
66
87
fetchV1Volume ( ) ,
88
+ fetchTotalVolume ( CHAIN . BSC ) ,
67
89
] ) ;
68
90
return {
69
91
dailyVolume : v1 + v2 ,
92
+ totalVolume,
70
93
timestamp,
71
94
} ;
72
95
} ,
@@ -75,32 +98,44 @@ const adapter: SimpleAdapter = {
75
98
[ CHAIN . ARBITRUM ] : {
76
99
runAtCurrTime : true ,
77
100
fetch : async ( timestamp ) => {
78
- const dailyVolume = await fetchV2Volume ( CHAIN . ARBITRUM ) ;
101
+ const [ v2 , totalVolume ] = await Promise . all ( [
102
+ fetchV2Volume ( CHAIN . ARBITRUM ) ,
103
+ fetchTotalVolume ( CHAIN . ARBITRUM ) ,
104
+ ] ) ;
79
105
return {
80
106
timestamp,
81
- dailyVolume : dailyVolume ,
107
+ dailyVolume : v2 ,
108
+ totalVolume,
82
109
} ;
83
110
} ,
84
111
start : 1682035200 ,
85
112
} ,
86
113
[ CHAIN . OP_BNB ] : {
87
114
runAtCurrTime : true ,
88
115
fetch : async ( timestamp ) => {
89
- const dailyVolume = await fetchV2Volume ( 'opbnb' ) ;
116
+ const [ v2 , totalVolume ] = await Promise . all ( [
117
+ fetchV2Volume ( 'opbnb' ) ,
118
+ fetchTotalVolume ( 'opbnb' ) ,
119
+ ] ) ;
90
120
return {
91
121
timestamp,
92
- dailyVolume : dailyVolume ,
122
+ dailyVolume : v2 ,
123
+ totalVolume,
93
124
} ;
94
125
} ,
95
126
start : 1682035200 ,
96
127
} ,
97
128
[ CHAIN . BASE ] : {
98
129
runAtCurrTime : true ,
99
130
fetch : async ( timestamp ) => {
100
- const dailyVolume = await fetchV2Volume ( CHAIN . BASE ) ;
131
+ const [ v2 , totalVolume ] = await Promise . all ( [
132
+ fetchV2Volume ( CHAIN . BASE ) ,
133
+ fetchTotalVolume ( CHAIN . BASE ) ,
134
+ ] ) ;
101
135
return {
102
136
timestamp,
103
- dailyVolume : dailyVolume ,
137
+ dailyVolume : v2 ,
138
+ totalVolume,
104
139
} ;
105
140
} ,
106
141
start : 1682035200 ,
0 commit comments