payment handling on controller side

pull/48/head
Yhtyyar Sahatov 2022-06-08 16:37:35 +03:00
rodzic 98f82c6dcb
commit 6c9949e652
1 zmienionych plików z 10 dodań i 1 usunięć

Wyświetl plik

@ -7,7 +7,7 @@
* This contract stands as a proxy for the Terminus contract * This contract stands as a proxy for the Terminus contract
* with a ability to whitelist operators by using Terminus Pools * with a ability to whitelist operators by using Terminus Pools
*/ */
import "@openzeppelin-contracts/contracts/token/ERC20/IERC20.sol";
import "../TerminusFacet.sol"; import "../TerminusFacet.sol";
import "../TerminusPermissions.sol"; import "../TerminusPermissions.sol";
import "./LibTerminusController.sol"; import "./LibTerminusController.sol";
@ -187,11 +187,19 @@ contract TerminusControllerFacet is TerminusPermissions {
return terminusContract().terminusPoolSupply(poolID); return terminusContract().terminusPoolSupply(poolID);
} }
function _getPoolCreationPayments() internal {
IERC20 paymentToken = IERC20(terminusContract().paymentToken());
uint256 fee = terminusContract().poolBasePrice();
paymentToken.transferFrom(msg.sender, address(this), fee);
paymentToken.approve(getTerminusAddress(), fee);
}
function createSimplePool(uint256 _capacity) function createSimplePool(uint256 _capacity)
external external
onlyMainAdmin onlyMainAdmin
returns (uint256) returns (uint256)
{ {
_getPoolCreationPayments();
return terminusContract().createSimplePool(_capacity); return terminusContract().createSimplePool(_capacity);
} }
@ -200,6 +208,7 @@ contract TerminusControllerFacet is TerminusPermissions {
bool _transferable, bool _transferable,
bool _burnable bool _burnable
) external onlyMainAdmin returns (uint256) { ) external onlyMainAdmin returns (uint256) {
_getPoolCreationPayments();
return return
terminusContract().createPoolV1( terminusContract().createPoolV1(
_capacity, _capacity,