@@ -87,78 +87,51 @@ export const setTotals = (
8787 factor : BigDecimal ,
8888) : void => {
8989 let total = initTotals ( userAddress , false ) ;
90+
91+ const isInbound = type === TxType . CORE_DEPOSIT || type === TxType . TRANSFER_IN ;
92+ const coinAmountSigned = isInbound
93+ ? coinAmount
94+ : coinAmount . times ( NUM . MINUS_ONE ) ;
95+ const usdAmountSigned = isInbound
96+ ? usdAmount
97+ : usdAmount . times ( NUM . MINUS_ONE ) ;
98+
9099 if ( coin === Token . GRO ) {
91- if (
92- type === TxType . CORE_DEPOSIT
93- || type === TxType . TRANSFER_IN
94- ) {
95- total . amount_added_gro = total . amount_added_gro
96- . plus ( coinAmount ) ;
97- total . amount_total_gro = total . amount_total_gro
98- . plus ( coinAmount ) ;
100+ if ( isInbound ) {
101+ total . amount_added_gro = total . amount_added_gro . plus ( coinAmount ) ;
99102 } else {
100- total . amount_removed_gro = total . amount_removed_gro
101- . plus ( coinAmount ) ;
102- total . amount_total_gro = total . amount_total_gro
103- . minus ( coinAmount ) ;
103+ total . amount_removed_gro = total . amount_removed_gro . plus ( coinAmount ) ;
104104 }
105- } else if (
106- type === TxType . CORE_DEPOSIT
107- || type === TxType . TRANSFER_IN
108- ) {
109- if ( coin === Token . GVT ) {
110- total . amount_added_gvt = total . amount_added_gvt
111- . plus ( coinAmount ) ;
112- total . value_added_gvt = total . value_added_gvt
113- . plus ( usdAmount ) ;
114- total . net_amount_gvt = total . net_amount_gvt
115- . plus ( coinAmount ) ;
116- total . net_value_gvt = total . net_value_gvt
117- . plus ( usdAmount ) ;
118- } else if ( coin === Token . PWRD ) {
119- const based_amount_pwrd = coinAmount . times ( factor ) ;
120- total . amount_added_pwrd = total . amount_added_pwrd
121- . plus ( coinAmount ) ;
122- total . value_added_pwrd = total . value_added_pwrd
123- . plus ( usdAmount ) ;
124- total . net_based_amount_pwrd = total . net_based_amount_pwrd
125- . plus ( based_amount_pwrd ) ;
126- total . net_value_pwrd = total . net_value_pwrd
127- . plus ( usdAmount ) ;
105+ total . amount_total_gro = total . amount_total_gro . plus ( coinAmountSigned ) ;
106+ } else if ( coin === Token . GVT ) {
107+ if ( isInbound ) {
108+ total . amount_added_gvt = total . amount_added_gvt . plus ( coinAmount ) ;
109+ total . value_added_gvt = total . value_added_gvt . plus ( usdAmount ) ;
110+ } else {
111+ total . amount_removed_gvt = total . amount_removed_gvt . plus ( coinAmount ) ;
112+ total . value_removed_gvt = total . value_removed_gvt . plus ( usdAmount ) ;
128113 }
129- total . value_added_total = total . value_added_total
130- . plus ( usdAmount ) ;
131- total . net_value_total = total . net_value_total
132- . plus ( usdAmount ) ;
133- } else if (
134- type === TxType . CORE_WITHDRAWAL
135- || type === TxType . TRANSFER_OUT
136- ) {
137- if ( coin === Token . GVT ) {
138- total . amount_removed_gvt = total . amount_removed_gvt
139- . plus ( coinAmount ) ;
140- total . value_removed_gvt = total . value_removed_gvt
141- . plus ( usdAmount ) ;
142- total . net_amount_gvt = total . net_amount_gvt
143- . minus ( coinAmount ) ;
144- total . net_value_gvt = total . net_value_gvt
145- . minus ( usdAmount ) ;
146- } else if ( coin === Token . PWRD ) {
147- total . amount_removed_pwrd = total . amount_removed_pwrd
148- . plus ( coinAmount ) ;
149- total . value_removed_pwrd = total . value_removed_pwrd
150- . plus ( usdAmount ) ;
151- const based_amount_pwrd = coinAmount
152- . times ( factor ) ;
153- total . net_based_amount_pwrd = total . net_based_amount_pwrd
154- . minus ( based_amount_pwrd ) ;
155- total . net_value_pwrd = total . net_value_pwrd
156- . minus ( usdAmount ) ;
114+ total . net_amount_gvt = total . net_amount_gvt . plus ( coinAmountSigned ) ;
115+ total . net_value_gvt = total . net_value_gvt . plus ( usdAmountSigned ) ;
116+ } else if ( coin === Token . PWRD ) {
117+ const basedAmountPwrdSigned = coinAmountSigned . times ( factor ) ;
118+ if ( isInbound ) {
119+ total . amount_added_pwrd = total . amount_added_pwrd . plus ( coinAmount ) ;
120+ total . value_added_pwrd = total . value_added_pwrd . plus ( usdAmount ) ;
121+ } else {
122+ total . amount_removed_pwrd = total . amount_removed_pwrd . plus ( coinAmount ) ;
123+ total . value_removed_pwrd = total . value_removed_pwrd . plus ( usdAmount ) ;
124+ }
125+ total . net_based_amount_pwrd = total . net_based_amount_pwrd . plus ( basedAmountPwrdSigned ) ;
126+ total . net_value_pwrd = total . net_value_pwrd . plus ( usdAmountSigned ) ;
127+ }
128+ if ( coin === Token . GVT || coin === Token . PWRD ) {
129+ total . net_value_total = total . net_value_total . plus ( usdAmountSigned ) ;
130+ if ( isInbound ) {
131+ total . value_added_total = total . value_added_total . plus ( usdAmount ) ;
132+ } else {
133+ total . value_removed_total = total . value_removed_total . plus ( usdAmount ) ;
157134 }
158- total . value_removed_total = total . value_removed_total
159- . plus ( usdAmount ) ;
160- total . net_value_total = total . net_value_total
161- . minus ( usdAmount ) ;
162135 }
163136 total . save ( ) ;
164137}
0 commit comments