@@ -4,7 +4,6 @@ import Rebase, { RebaseData } from './Rebase'
44export interface PolicyData {
55 id : string
66 address : string
7- baseCPI : string
87 rebaseFunctionLowerPercentage : string
98 rebaseFunctionUpperPercentage : string
109 rebaseFunctionGrowth : string
@@ -42,6 +41,10 @@ export default class Policy {
4241 return this . lastRebase . supply
4342 }
4443
44+ get targetRate ( ) : BigNumber {
45+ return this . lastRebase . targetRate
46+ }
47+
4548 get rebaseFunctionLowerPercentage ( ) : BigNumber {
4649 return new BigNumber ( this . data . rebaseFunctionLowerPercentage )
4750 }
@@ -54,11 +57,6 @@ export default class Policy {
5457 return new BigNumber ( this . data . rebaseFunctionGrowth )
5558 }
5659
57- // TODO: remove this
58- get baseCPI ( ) : BigNumber {
59- return new BigNumber ( this . data . baseCPI )
60- }
61-
6260 get rebaseLag ( ) : BigNumber {
6361 return new BigNumber ( this . data . rebaseLag )
6462 }
@@ -93,14 +91,15 @@ export default class Policy {
9391 return [ nextRebaseWindowStart , nextRebaseWindowEnd ]
9492 }
9593
96- nextRebaseSupply ( marketRate : string , cpi : string ) : BigNumber {
97- const supplyDelta = this . computeSupplyDelta ( marketRate , cpi )
94+ nextRebaseSupply ( marketRate : string , targetRate : string ) : BigNumber {
95+ const supplyDelta = this . computeSupplyDelta ( marketRate , targetRate )
9896 return this . supply . plus ( supplyDelta )
9997 }
10098
101- nextRebasePerc ( marketRate : string , cpi : string ) : BigNumber {
102- const targetRate = new BigNumber ( cpi ) . div ( this . baseCPI )
103- const deviation = new BigNumber ( marketRate ) . minus ( targetRate )
99+ nextRebasePerc ( marketRate : string , targetRate : string ) : BigNumber {
100+ const deviation = new BigNumber ( marketRate ) . minus (
101+ new BigNumber ( targetRate ) ,
102+ )
104103
105104 if ( deviation . abs ( ) . lte ( this . deviationThreshold ) ) {
106105 return new BigNumber ( '0' )
@@ -112,7 +111,7 @@ export default class Policy {
112111 const scaling = new BigNumber ( '32' )
113112
114113 const delta = new BigNumber ( marketRate )
115- . div ( targetRate )
114+ . div ( new BigNumber ( targetRate ) )
116115 . minus ( new BigNumber ( '1' ) )
117116
118117 let exp = growth . multipliedBy ( delta )
@@ -136,8 +135,8 @@ export default class Policy {
136135 return lower . plus ( numerator . div ( denominator ) )
137136 }
138137
139- computeSupplyDelta ( marketRate : string , cpi : string ) : BigNumber {
140- const nextRebasePercentage = this . nextRebasePerc ( marketRate , cpi )
138+ computeSupplyDelta ( marketRate : string , targetRate : string ) : BigNumber {
139+ const nextRebasePercentage = this . nextRebasePerc ( marketRate , targetRate )
141140 return this . supply . multipliedBy ( nextRebasePercentage )
142141 }
143142
0 commit comments