Skip to content

Commit 27d7ccb

Browse files
authored
temporary code to reset twap calc on negative values (#79)
1 parent 138a220 commit 27d7ccb

File tree

1 file changed

+14
-7
lines changed

1 file changed

+14
-7
lines changed

program/src/oracle/upd_aggregate.h

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -108,16 +108,23 @@ static void upd_ema(
108108
pd_load( denom, ptr->denom_ );
109109
}
110110
else {
111-
/* temporary upgrade code */
111+
// temporary upgrade code
112112
pd_new_scale( numer, ptr->numer_, PD_EMA_EXPO );
113113
pd_new_scale( denom, ptr->denom_, PD_EMA_EXPO );
114114
}
115-
pd_mul( numer, numer, decay );
116-
pd_mul( wval, val, cwgt );
117-
pd_add( numer, numer, wval, qs->fact_ );
118-
pd_mul( denom, denom, decay );
119-
pd_add( denom, denom, cwgt, qs->fact_ );
120-
pd_div( val, numer, denom );
115+
if ( numer->v_ < 0 || denom->v_ < 0 ) {
116+
// temporary reset twap on negative value
117+
pd_set( numer, val );
118+
pd_set( denom, one );
119+
}
120+
else {
121+
pd_mul( numer, numer, decay );
122+
pd_mul( wval, val, cwgt );
123+
pd_add( numer, numer, wval, qs->fact_ );
124+
pd_mul( denom, denom, decay );
125+
pd_add( denom, denom, cwgt, qs->fact_ );
126+
pd_div( val, numer, denom );
127+
}
121128
}
122129

123130
// adjust and store results

0 commit comments

Comments
 (0)