@@ -41,10 +41,10 @@ contract ACash is ERC20, Initializable, Ownable {
4141 AddressQueue.Queue public bondQueue;
4242
4343 // the minimum maturity time in seconds for a bond below which it gets removed from the bond queue
44- uint256 private _minQueueMaturiySec ;
44+ uint256 public minMaturiySec ;
4545
4646 // the maximum maturity time in seconds for a bond above which it can't get added into the bond queue
47- uint256 private _maxQueueMaturiySec ;
47+ uint256 public maxMaturiySec ;
4848
4949 //---- ERC-20 parameters
5050 uint8 private immutable _decimals;
@@ -98,7 +98,7 @@ contract ACash is ERC20, Initializable, Ownable {
9898 uint256 mintAmt = 0 ;
9999 for (uint256 i = 0 ; i < trancheCount; i++ ) {
100100 uint256 trancheYield = _trancheYields[configHash][i];
101- if (trancheYield == 0 ){
101+ if (trancheYield == 0 ) {
102102 continue ;
103103 }
104104
@@ -121,8 +121,7 @@ contract ACash is ERC20, Initializable, Ownable {
121121 function advanceMintBond (IBondController newBond ) public {
122122 require (address (newBond) != bondQueue.head (), "New bond already in queue " );
123123 require (bondIssuer.isInstance (newBond), "Expect new bond to be minted by the minter " );
124- require (newBond.maturityDate () > minQueueMaturityDate (), "New bond matures too soon " );
125- require (newBond.maturityDate () <= maxQueueMaturityDate (), "New bond matures too late " );
124+ require (isActiveBond (newBond), "New bond not active " );
126125
127126 bondQueue.enqueue (address (newBond));
128127 }
@@ -133,7 +132,7 @@ contract ACash is ERC20, Initializable, Ownable {
133132 while (true ) {
134133 IBondController latestBond = IBondController (bondQueue.tail ());
135134
136- if (address (latestBond) == address (0 ) || latestBond. maturityDate () > minQueueMaturityDate ( )) {
135+ if (address (latestBond) == address (0 ) || isActiveBond (latestBond )) {
137136 break ;
138137 }
139138
@@ -187,21 +186,20 @@ contract ACash is ERC20, Initializable, Ownable {
187186 feeStrategy = feeStrategy_;
188187 }
189188
190- function setTolarableBondMaturiy (uint256 minQueueMaturiySec , uint256 maxQueueMaturiySec ) external onlyOwner {
191- _minQueueMaturiySec = minQueueMaturiySec ;
192- _maxQueueMaturiySec = maxQueueMaturiySec ;
189+ function setTolerableBondMaturiy (uint256 minMaturiySec_ , uint256 maxMaturiySec_ ) external onlyOwner {
190+ minMaturiySec = minMaturiySec_ ;
191+ maxMaturiySec = maxMaturiySec_ ;
193192 }
194193
195194 function setTrancheYields (bytes32 configHash , uint256 [] memory yields ) external onlyOwner {
196195 _trancheYields[configHash] = yields;
197196 }
198197
199- function minQueueMaturityDate () public view returns (uint256 ) {
200- return block .timestamp + _minQueueMaturiySec;
201- }
202-
203- function maxQueueMaturityDate () public view returns (uint256 ) {
204- return block .timestamp + _maxQueueMaturiySec;
198+ // bond's maturity is within bounds
199+ // only active bonds can be added to the queue. If a bond is inactive it gets kicked from the queue ..
200+ function isActiveBond (IBondController bond ) public view returns (bool ) {
201+ return (bond.maturityDate () >= block .timestamp + minMaturiySec &&
202+ bond.maturityDate () < block .timestamp + maxMaturiySec);
205203 }
206204
207205 /*
0 commit comments