@@ -10,10 +10,15 @@ import "./userInterfaces/data/AgentInfo.sol";
1010import "./userInterfaces/data/AgentSettings.sol " ;
1111import "./userInterfaces/data/AvailableAgentInfo.sol " ;
1212import "./userInterfaces/data/RedemptionTicketInfo.sol " ;
13+ import "./userInterfaces/data/RedemptionRequestInfo.sol " ;
14+ import "./userInterfaces/data/CollateralReservationInfo.sol " ;
1315import "./IAssetManagerEvents.sol " ;
1416import "./IAgentPing.sol " ;
1517import "./IRedemptionTimeExtension.sol " ;
1618import "./ITransferFees.sol " ;
19+ import "./ICoreVault.sol " ;
20+ import "./ICoreVaultSettings.sol " ;
21+ import "./IAgentAlwaysAllowedMinters.sol " ;
1722
1823
1924/**
@@ -25,7 +30,10 @@ interface IAssetManager is
2530 IAssetManagerEvents ,
2631 IAgentPing ,
2732 IRedemptionTimeExtension ,
28- ITransferFees
33+ ITransferFees ,
34+ ICoreVault ,
35+ ICoreVaultSettings ,
36+ IAgentAlwaysAllowedMinters
2937{
3038 ////////////////////////////////////////////////////////////////////////////////////
3139 // Basic system information
@@ -284,6 +292,8 @@ interface IAssetManager is
284292 * Due to the effect on the pool, all agent settings are timelocked.
285293 * This method announces a setting change. The change can be executed after the timelock expires.
286294 * NOTE: may only be called by the agent vault owner.
295+ * @param _agentVault agent vault address
296+ * @param _name setting name, same as for `getAgentSetting`
287297 * @return _updateAllowedAt the timestamp at which the update can be executed
288298 */
289299 function announceAgentSettingUpdate (
@@ -297,6 +307,8 @@ interface IAssetManager is
297307 * Due to the effect on the pool, all agent settings are timelocked.
298308 * This method executes a setting change after the timelock expires.
299309 * NOTE: may only be called by the agent vault owner.
310+ * @param _agentVault agent vault address
311+ * @param _name setting name, same as for `getAgentSetting`
300312 */
301313 function executeAgentSettingUpdate (
302314 address _agentVault ,
@@ -455,6 +467,19 @@ interface IAssetManager is
455467 external view
456468 returns (AgentInfo.Info memory );
457469
470+ /**
471+ * Get agent's setting by name.
472+ * This allows reading individual settings.
473+ * @param _agentVault agent vault address
474+ * @param _name setting name, one of: `feeBIPS`, `poolFeeShareBIPS`, `redemptionPoolFeeShareBIPS`,
475+ * `mintingVaultCollateralRatioBIPS`, `mintingPoolCollateralRatioBIPS`,`buyFAssetByAgentFactorBIPS`,
476+ * `poolExitCollateralRatioBIPS`, `poolTopupCollateralRatioBIPS`, `poolTopupTokenPriceFactorBIPS`,
477+ * `handshakeType`
478+ */
479+ function getAgentSetting (address _agentVault , string memory _name )
480+ external view
481+ returns (uint256 );
482+
458483 /**
459484 * Returns the collateral pool address of the agent identified by `_agentVault`.
460485 */
@@ -638,17 +663,26 @@ interface IAssetManager is
638663
639664 /**
640665 * Return the collateral reservation fee amount that has to be passed to the `reserveCollateral` method.
641- * NOTE: the *exact* amount of the collateral fee must be paid. Even if the amount paid in `reserveCollateral` is
642- * more than required, the transaction will revert. This is intentional to protect the minter from accidentally
643- * overpaying, but may cause unexpected reverts if the FTSO prices get published between calls to
644- * `collateralReservationFee` and `reserveCollateral`.
666+ * NOTE: the amount paid may be larger than the required amount, but the difference is not returned.
667+ * It is advised that the minter pays the exact amount, but when the amount is so small that the revert
668+ * would cost more than the lost difference, the minter may want to send a slightly larger amount to compensate
669+ * for the possibility of a FTSO price change between obtaining this value and calling `reserveCollateral`.
645670 * @param _lots the number of lots for which to reserve collateral
646671 * @return _reservationFeeNATWei the amount of reservation fee in NAT wei
647672 */
648673 function collateralReservationFee (uint256 _lots )
649674 external view
650675 returns (uint256 _reservationFeeNATWei );
651676
677+ /**
678+ * Returns the data about the collateral reservation for an ongoing minting.
679+ * Note: once the minting is executed or defaulted, the collateral reservation is deleted and this method fails.
680+ * @param _collateralReservationId the collateral reservation id, as used for executing or defaulting the minting
681+ */
682+ function collateralReservationInfo (uint256 _collateralReservationId )
683+ external view
684+ returns (CollateralReservationInfo.Data memory );
685+
652686 /**
653687 * After obtaining proof of underlying payment, the minter calls this method to finish the minting
654688 * and collect the minted f-assets.
@@ -859,6 +893,16 @@ interface IAssetManager is
859893 uint256 _redemptionRequestId
860894 ) external ;
861895
896+ /**
897+ * Returns the data about an ongoing redemption request.
898+ * Note: once the redemptions is confirmed, the request is deleted and this method fails.
899+ * However, if there is no payment and the redemption defaults, the method works and returns status DEFAULTED.
900+ * @param _redemptionRequestId the redemption request id, as used for confirming or defaulting the redemption
901+ */
902+ function redemptionRequestInfo (uint256 _redemptionRequestId )
903+ external view
904+ returns (RedemptionRequestInfo.Data memory );
905+
862906 /**
863907 * Agent can "redeem against himself" by calling `selfClose`, which burns agent's own f-assets
864908 * and unlocks agent's collateral. The underlying funds backing the f-assets are released
@@ -876,7 +920,7 @@ interface IAssetManager is
876920 returns (uint256 _closedAmountUBA );
877921
878922 ////////////////////////////////////////////////////////////////////////////////////
879- // Redemption info
923+ // Redemption queue info
880924
881925 /**
882926 * Return (part of) the redemption queue.
0 commit comments