admin can change protocol fee address
This commit is contained in:
@@ -32,8 +32,8 @@ contract PartyPlanner is OwnableExternal, IPartyPlanner {
|
|||||||
function protocolFeePpm() external view returns (uint256) { return PROTOCOL_FEE_PPM; }
|
function protocolFeePpm() external view returns (uint256) { return PROTOCOL_FEE_PPM; }
|
||||||
|
|
||||||
/// @notice Address to receive protocol fees for pools created by this planner (may be address(0))
|
/// @notice Address to receive protocol fees for pools created by this planner (may be address(0))
|
||||||
address private immutable PROTOCOL_FEE_ADDRESS;
|
address public protocolFeeAddress;
|
||||||
function protocolFeeAddress() external view returns (address) { return PROTOCOL_FEE_ADDRESS; }
|
function setProtocolFeeAddress( address feeAddress ) external onlyOwner { protocolFeeAddress = feeAddress; }
|
||||||
|
|
||||||
NativeWrapper private immutable WRAPPER;
|
NativeWrapper private immutable WRAPPER;
|
||||||
function wrapper() external view returns (NativeWrapper) { return WRAPPER; }
|
function wrapper() external view returns (NativeWrapper) { return WRAPPER; }
|
||||||
@@ -78,7 +78,7 @@ contract PartyPlanner is OwnableExternal, IPartyPlanner {
|
|||||||
|
|
||||||
require(protocolFeePpm_ < 1_000_000, "Planner: protocol fee >= ppm");
|
require(protocolFeePpm_ < 1_000_000, "Planner: protocol fee >= ppm");
|
||||||
PROTOCOL_FEE_PPM = protocolFeePpm_;
|
PROTOCOL_FEE_PPM = protocolFeePpm_;
|
||||||
PROTOCOL_FEE_ADDRESS = protocolFeeAddress_;
|
protocolFeeAddress = protocolFeeAddress_;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Main newPool variant: accepts kappa directly (preferred).
|
/// Main newPool variant: accepts kappa directly (preferred).
|
||||||
@@ -120,7 +120,7 @@ contract PartyPlanner is OwnableExternal, IPartyPlanner {
|
|||||||
swapFeePpm_,
|
swapFeePpm_,
|
||||||
flashFeePpm_,
|
flashFeePpm_,
|
||||||
PROTOCOL_FEE_PPM,
|
PROTOCOL_FEE_PPM,
|
||||||
PROTOCOL_FEE_ADDRESS,
|
protocolFeeAddress,
|
||||||
WRAPPER,
|
WRAPPER,
|
||||||
SWAP_IMPL,
|
SWAP_IMPL,
|
||||||
MINT_IMPL
|
MINT_IMPL
|
||||||
|
|||||||
@@ -67,8 +67,7 @@ contract PartyPool is PartyPoolBase, OwnableExternal, ERC20External, IPartyPool
|
|||||||
function protocolFeePpm() external view returns (uint256) { return PROTOCOL_FEE_PPM; }
|
function protocolFeePpm() external view returns (uint256) { return PROTOCOL_FEE_PPM; }
|
||||||
|
|
||||||
/// @notice Address to which collected protocol _tokens will be sent on collectProtocolFees()
|
/// @notice Address to which collected protocol _tokens will be sent on collectProtocolFees()
|
||||||
address private immutable PROTOCOL_FEE_ADDRESS;
|
address public protocolFeeAddress;
|
||||||
function protocolFeeAddress() external view returns (address) { return PROTOCOL_FEE_ADDRESS; }
|
|
||||||
|
|
||||||
// @inheritdoc IPartyPool
|
// @inheritdoc IPartyPool
|
||||||
function allProtocolFeesOwed() external view returns (uint256[] memory) { return _protocolFeesOwed; }
|
function allProtocolFeesOwed() external view returns (uint256[] memory) { return _protocolFeesOwed; }
|
||||||
@@ -139,7 +138,7 @@ contract PartyPool is PartyPoolBase, OwnableExternal, ERC20External, IPartyPool
|
|||||||
// If the protocolFeePpm_ is set, then also require the fee address to be nonzero
|
// If the protocolFeePpm_ is set, then also require the fee address to be nonzero
|
||||||
require(protocolFeePpm_ == 0 || protocolFeeAddress_ != address(0));
|
require(protocolFeePpm_ == 0 || protocolFeeAddress_ != address(0));
|
||||||
PROTOCOL_FEE_PPM = protocolFeePpm_;
|
PROTOCOL_FEE_PPM = protocolFeePpm_;
|
||||||
PROTOCOL_FEE_ADDRESS = protocolFeeAddress_;
|
protocolFeeAddress = protocolFeeAddress_;
|
||||||
SWAP_IMPL = swapImpl_;
|
SWAP_IMPL = swapImpl_;
|
||||||
MINT_IMPL = mintImpl_;
|
MINT_IMPL = mintImpl_;
|
||||||
|
|
||||||
@@ -159,6 +158,14 @@ contract PartyPool is PartyPoolBase, OwnableExternal, ERC20External, IPartyPool
|
|||||||
_protocolFeesOwed = new uint256[](n);
|
_protocolFeesOwed = new uint256[](n);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// Admin operations
|
||||||
|
//
|
||||||
|
|
||||||
|
function setProtocolFeeAddress( address feeAddress ) external onlyOwner {
|
||||||
|
protocolFeeAddress = feeAddress;
|
||||||
|
}
|
||||||
|
|
||||||
/// @notice If a security problem is found, the vault owner may call this function to permanently disable swap and
|
/// @notice If a security problem is found, the vault owner may call this function to permanently disable swap and
|
||||||
/// mint functionality, leaving only burns (withdrawals) working.
|
/// mint functionality, leaving only burns (withdrawals) working.
|
||||||
function kill() external onlyOwner {
|
function kill() external onlyOwner {
|
||||||
@@ -482,7 +489,7 @@ contract PartyPool is PartyPoolBase, OwnableExternal, ERC20External, IPartyPool
|
|||||||
function collectProtocolFees() external nonReentrant {
|
function collectProtocolFees() external nonReentrant {
|
||||||
bytes memory data = abi.encodeWithSelector(
|
bytes memory data = abi.encodeWithSelector(
|
||||||
PartyPoolSwapImpl.collectProtocolFees.selector,
|
PartyPoolSwapImpl.collectProtocolFees.selector,
|
||||||
PROTOCOL_FEE_ADDRESS
|
protocolFeeAddress
|
||||||
);
|
);
|
||||||
Address.functionDelegateCall(address(MINT_IMPL), data);
|
Address.functionDelegateCall(address(MINT_IMPL), data);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user