@@ -2,6 +2,7 @@ import BigNumber from "bignumber.js";
2
2
3
3
import { ParsedDownsampledApiReserveAssetDataEvent } from "@suilend/sdk/parsers/apiReserveAssetDataEvent" ;
4
4
import { ParsedReserve } from "@suilend/sdk/parsers/reserve" ;
5
+ import { Side } from "@suilend/sdk/types" ;
5
6
6
7
import {
7
8
NORMALIZED_SUI_COINTYPE ,
@@ -72,7 +73,8 @@ type ReducedPoolReward = {
72
73
endTimeMs : number ;
73
74
} ;
74
75
75
- export const calculateRewardDepositAprPercent = (
76
+ export const calculateRewardAprPercent = (
77
+ side : Side ,
76
78
event : ParsedDownsampledApiReserveAssetDataEvent ,
77
79
rewardEvents : ParsedDownsampledApiReserveAssetDataEvent [ ] ,
78
80
reserve : ParsedReserve ,
@@ -86,73 +88,81 @@ export const calculateRewardDepositAprPercent = (
86
88
87
89
const rewardCoinType = rewardEvent . coinType ;
88
90
89
- const historicalRewardsMap : Record < string , ReducedPoolReward [ ] > = {
90
- [ NORMALIZED_SUI_COINTYPE ] : [
91
- {
92
- coinType : NORMALIZED_SUI_COINTYPE ,
93
- totalRewards : new BigNumber ( 93613.13 ) ,
94
- startTimeMs : 1713225600000 ,
95
- endTimeMs : 1713830400000 ,
96
- } ,
97
- {
98
- coinType : NORMALIZED_SUI_COINTYPE ,
99
- totalRewards : new BigNumber ( 177579 ) ,
100
- startTimeMs : 1713830400000 , // 2024-04-23 08:00:00
101
- endTimeMs : 1715040000000 , // 2024-05-07 08:00:00
102
- } ,
103
- {
104
- coinType : NORMALIZED_SUI_COINTYPE ,
105
- totalRewards : new BigNumber ( 162386.57 ) ,
106
- startTimeMs : 1715040000000 , // 2024-05-07 08:00:00
107
- endTimeMs : 1716249600000 , //2024-05-21 08:00:00
108
- } ,
109
- ] ,
110
- [ NORMALIZED_USDC_COINTYPE ] : [
111
- {
112
- coinType : NORMALIZED_SUI_COINTYPE ,
113
- totalRewards : new BigNumber ( 75915.32 ) ,
114
- startTimeMs : 1713225600000 ,
115
- endTimeMs : 1713830400000 ,
116
- } ,
117
- {
118
- coinType : NORMALIZED_SUI_COINTYPE ,
119
- totalRewards : new BigNumber ( 168534 ) ,
120
- startTimeMs : 1713830400000 , // 2024-04-23 08:00:00
121
- endTimeMs : 1715040000000 , // 2024-05-07 08:00:00
122
- } ,
123
- {
124
- coinType : NORMALIZED_SUI_COINTYPE ,
125
- totalRewards : new BigNumber ( 176679.79 ) ,
126
- startTimeMs : 1715040000000 , // 2024-05-07 08:00:00
127
- endTimeMs : 1716249600000 , //2024-05-21 08:00:00
128
- } ,
129
- ] ,
130
- [ NORMALIZED_USDT_COINTYPE ] : [
131
- {
132
- coinType : NORMALIZED_SUI_COINTYPE ,
133
- totalRewards : new BigNumber ( 64602.32 ) ,
134
- startTimeMs : 1713225600000 ,
135
- endTimeMs : 1713830400000 ,
136
- } ,
137
- {
138
- coinType : NORMALIZED_SUI_COINTYPE ,
139
- totalRewards : new BigNumber ( 128939 ) ,
140
- startTimeMs : 1713830400000 , // 2024-04-23 08:00:00
141
- endTimeMs : 1715040000000 , // 2024-05-07 08:00:00
142
- } ,
143
- {
144
- coinType : NORMALIZED_SUI_COINTYPE ,
145
- totalRewards : new BigNumber ( 116534.73 ) ,
146
- startTimeMs : 1715040000000 , // 2024-05-07 08:00:00
147
- endTimeMs : 1716249600000 , //2024-05-21 08:00:00
148
- } ,
149
- ] ,
91
+ const historicalRewardsMap : Record <
92
+ Side ,
93
+ Record < string , ReducedPoolReward [ ] >
94
+ > = {
95
+ [ Side . DEPOSIT ] : {
96
+ [ NORMALIZED_SUI_COINTYPE ] : [
97
+ {
98
+ coinType : NORMALIZED_SUI_COINTYPE ,
99
+ totalRewards : new BigNumber ( 93613.13 ) ,
100
+ startTimeMs : 1713225600000 ,
101
+ endTimeMs : 1713830400000 ,
102
+ } ,
103
+ {
104
+ coinType : NORMALIZED_SUI_COINTYPE ,
105
+ totalRewards : new BigNumber ( 177579 ) ,
106
+ startTimeMs : 1713830400000 , // 2024-04-23 08:00:00
107
+ endTimeMs : 1715040000000 , // 2024-05-07 08:00:00
108
+ } ,
109
+ {
110
+ coinType : NORMALIZED_SUI_COINTYPE ,
111
+ totalRewards : new BigNumber ( 162386.57 ) ,
112
+ startTimeMs : 1715040000000 , // 2024-05-07 08:00:00
113
+ endTimeMs : 1716249600000 , //2024-05-21 08:00:00
114
+ } ,
115
+ ] ,
116
+ [ NORMALIZED_USDC_COINTYPE ] : [
117
+ {
118
+ coinType : NORMALIZED_SUI_COINTYPE ,
119
+ totalRewards : new BigNumber ( 75915.32 ) ,
120
+ startTimeMs : 1713225600000 ,
121
+ endTimeMs : 1713830400000 ,
122
+ } ,
123
+ {
124
+ coinType : NORMALIZED_SUI_COINTYPE ,
125
+ totalRewards : new BigNumber ( 168534 ) ,
126
+ startTimeMs : 1713830400000 , // 2024-04-23 08:00:00
127
+ endTimeMs : 1715040000000 , // 2024-05-07 08:00:00
128
+ } ,
129
+ {
130
+ coinType : NORMALIZED_SUI_COINTYPE ,
131
+ totalRewards : new BigNumber ( 176679.79 ) ,
132
+ startTimeMs : 1715040000000 , // 2024-05-07 08:00:00
133
+ endTimeMs : 1716249600000 , //2024-05-21 08:00:00
134
+ } ,
135
+ ] ,
136
+ [ NORMALIZED_USDT_COINTYPE ] : [
137
+ {
138
+ coinType : NORMALIZED_SUI_COINTYPE ,
139
+ totalRewards : new BigNumber ( 64602.32 ) ,
140
+ startTimeMs : 1713225600000 ,
141
+ endTimeMs : 1713830400000 ,
142
+ } ,
143
+ {
144
+ coinType : NORMALIZED_SUI_COINTYPE ,
145
+ totalRewards : new BigNumber ( 128939 ) ,
146
+ startTimeMs : 1713830400000 , // 2024-04-23 08:00:00
147
+ endTimeMs : 1715040000000 , // 2024-05-07 08:00:00
148
+ } ,
149
+ {
150
+ coinType : NORMALIZED_SUI_COINTYPE ,
151
+ totalRewards : new BigNumber ( 116534.73 ) ,
152
+ startTimeMs : 1715040000000 , // 2024-05-07 08:00:00
153
+ endTimeMs : 1716249600000 , //2024-05-21 08:00:00
154
+ } ,
155
+ ] ,
156
+ } ,
157
+ [ Side . BORROW ] : { } ,
150
158
} ;
151
159
152
160
const allPoolRewards : ReducedPoolReward [ ] = [
153
- ...reserve . depositsPoolRewardManager . poolRewards ,
161
+ ...( side === Side . DEPOSIT
162
+ ? reserve . depositsPoolRewardManager . poolRewards
163
+ : reserve . borrowsPoolRewardManager . poolRewards ) ,
154
164
] ;
155
- ( historicalRewardsMap [ event . coinType ] ?? [ ] ) . forEach ( ( hr ) => {
165
+ ( historicalRewardsMap [ side ] [ event . coinType ] ?? [ ] ) . forEach ( ( hr ) => {
156
166
if (
157
167
allPoolRewards . find (
158
168
( pr ) =>
@@ -185,7 +195,11 @@ export const calculateRewardDepositAprPercent = (
185
195
pr . totalRewards
186
196
. times ( rewardEvent . price )
187
197
. times ( new BigNumber ( msPerYear ) . div ( pr . endTimeMs - pr . startTimeMs ) )
188
- . div ( event . depositedAmountUsd )
198
+ . div (
199
+ side === Side . DEPOSIT
200
+ ? event . depositedAmountUsd
201
+ : event . borrowedAmountUsd ,
202
+ )
189
203
. times ( 100 ) ,
190
204
) ,
191
205
new BigNumber ( 0 ) ,
0 commit comments