mirror of https://github.com/nucypher/nucypher.git
Applied suggestions from code review by @vzotova
parent
8baba568ed
commit
c700986135
|
@ -502,10 +502,10 @@ class ContractAdministrator(NucypherTokenActor):
|
|||
return filepath
|
||||
|
||||
def set_fee_rate_range(self,
|
||||
minimum: int,
|
||||
default: int,
|
||||
maximum: int,
|
||||
transaction_gas_limit: int = None) -> dict:
|
||||
minimum: int,
|
||||
default: int,
|
||||
maximum: int,
|
||||
transaction_gas_limit: int = None) -> dict:
|
||||
|
||||
policy_manager_deployer = PolicyManagerDeployer(registry=self.registry,
|
||||
deployer_address=self.deployer_address,
|
||||
|
|
|
@ -822,7 +822,7 @@ class PolicyManagerAgent(EthereumContractAgent):
|
|||
|
||||
def get_fee_rate_range(self) -> Tuple[int, int, int]:
|
||||
"""Check maximum, minimum & default fee rate for all stakers and all policies ('global fee range')"""
|
||||
minimum, default, maximum = self.contract.functions.FeeRateRange().call()
|
||||
minimum, default, maximum = self.contract.functions.feeRateRange().call()
|
||||
return minimum, default, maximum
|
||||
|
||||
@validate_checksum_address
|
||||
|
|
|
@ -14,7 +14,7 @@ import "contracts/proxy/Upgradeable.sol";
|
|||
|
||||
/**
|
||||
* @notice Contract holds policy data and locks accrued policy fees until collection
|
||||
* @dev |v5.1.1|
|
||||
* @dev |v6.1.1|
|
||||
*/
|
||||
contract PolicyManager is Upgradeable {
|
||||
using SafeERC20 for NuCypherToken;
|
||||
|
@ -51,7 +51,7 @@ contract PolicyManager is Upgradeable {
|
|||
event MinFeeRateSet(address indexed node, uint256 value);
|
||||
// TODO #1501
|
||||
// Range range
|
||||
event FeeRateRangeSet(address indexed sender, uint256 min, uint256 defaultValue, uint256 max);
|
||||
event feeRateRangeSet(address indexed sender, uint256 min, uint256 defaultValue, uint256 max);
|
||||
event Withdrawn(address indexed node, address indexed recipient, uint256 value);
|
||||
|
||||
struct ArrangementInfo {
|
||||
|
@ -103,7 +103,7 @@ contract PolicyManager is Upgradeable {
|
|||
|
||||
mapping (bytes16 => Policy) public policies;
|
||||
mapping (address => NodeInfo) public nodes;
|
||||
Range public FeeRateRange;
|
||||
Range public feeRateRange;
|
||||
|
||||
/**
|
||||
* @notice Constructor sets address of the escrow contract
|
||||
|
@ -145,23 +145,23 @@ contract PolicyManager is Upgradeable {
|
|||
}
|
||||
|
||||
/**
|
||||
* @notice Set maximum, minimum and and default fee rate for all stakers and all policies ('global fee range')
|
||||
* @notice Set maximum, minimum and default fee rate for all stakers and all policies ('global fee range')
|
||||
*/
|
||||
// TODO # 1501
|
||||
// function setFeeRateRange(Range calldata _range) external onlyOwner {
|
||||
function setFeeRateRange(uint128 _min, uint128 _default, uint128 _max) external onlyOwner {
|
||||
require(_min <= _default && _default <= _max);
|
||||
FeeRateRange = Range(_min, _default, _max);
|
||||
emit FeeRateRangeSet(msg.sender, _min, _default, _max);
|
||||
feeRateRange = Range(_min, _default, _max);
|
||||
emit feeRateRangeSet(msg.sender, _min, _default, _max);
|
||||
}
|
||||
|
||||
/**
|
||||
* @notice Set the minimum acceptable fee rate (set by staker)
|
||||
* @dev Input value must fall within `FeeRateRange` (global fee range)
|
||||
* @dev Input value must fall within `feeRateRange` (global fee range)
|
||||
*/
|
||||
function setMinFeeRate(uint256 _minFeeRate) external {
|
||||
require(_minFeeRate >= FeeRateRange.min &&
|
||||
_minFeeRate <= FeeRateRange.max,
|
||||
require(_minFeeRate >= feeRateRange.min &&
|
||||
_minFeeRate <= feeRateRange.max,
|
||||
"The staker's min fee rate must fall within the global fee range");
|
||||
NodeInfo storage nodeInfo = nodes[msg.sender];
|
||||
if (nodeInfo.minFeeRate == _minFeeRate) {
|
||||
|
@ -178,9 +178,9 @@ contract PolicyManager is Upgradeable {
|
|||
// if minFeeRate has not been set or chosen value falls outside the global fee range
|
||||
// a default value is returned instead
|
||||
if (_nodeInfo.minFeeRate == 0 ||
|
||||
_nodeInfo.minFeeRate < FeeRateRange.min ||
|
||||
_nodeInfo.minFeeRate > FeeRateRange.max) {
|
||||
return FeeRateRange.defaultValue;
|
||||
_nodeInfo.minFeeRate < feeRateRange.min ||
|
||||
_nodeInfo.minFeeRate > feeRateRange.max) {
|
||||
return feeRateRange.defaultValue;
|
||||
} else {
|
||||
return _nodeInfo.minFeeRate;
|
||||
}
|
||||
|
@ -690,10 +690,10 @@ contract PolicyManager is Upgradeable {
|
|||
}
|
||||
|
||||
/**
|
||||
* @dev Get FeeRateRange structure by delegatecall
|
||||
* @dev Get feeRateRange structure by delegatecall
|
||||
*/
|
||||
function delegateGetFeeRateRange(address _target) internal returns (Range memory result) {
|
||||
bytes32 memoryAddress = delegateGetData(_target, this.FeeRateRange.selector, 0, 0, 0);
|
||||
bytes32 memoryAddress = delegateGetData(_target, this.feeRateRange.selector, 0, 0, 0);
|
||||
assembly {
|
||||
result := memoryAddress
|
||||
}
|
||||
|
@ -703,9 +703,9 @@ contract PolicyManager is Upgradeable {
|
|||
function verifyState(address _testTarget) public override virtual {
|
||||
super.verifyState(_testTarget);
|
||||
Range memory rangeToCheck = delegateGetFeeRateRange(_testTarget);
|
||||
require(FeeRateRange.min == rangeToCheck.min &&
|
||||
FeeRateRange.defaultValue == rangeToCheck.defaultValue &&
|
||||
FeeRateRange.max == rangeToCheck.max);
|
||||
require(feeRateRange.min == rangeToCheck.min &&
|
||||
feeRateRange.defaultValue == rangeToCheck.defaultValue &&
|
||||
feeRateRange.max == rangeToCheck.max);
|
||||
Policy storage policy = policies[RESERVED_POLICY_ID];
|
||||
Policy memory policyToCheck = delegateGetPolicy(_testTarget, RESERVED_POLICY_ID);
|
||||
require(policyToCheck.sponsor == policy.sponsor &&
|
||||
|
|
|
@ -58,7 +58,7 @@ def test_create_revoke(testerchain, escrow, policy_manager):
|
|||
policy_refund_log = policy_manager.events.RefundForPolicy.createFilter(fromBlock='latest')
|
||||
warn_log = policy_manager.events.NodeBrokenState.createFilter(fromBlock='latest')
|
||||
min_fee_log = policy_manager.events.MinFeeRateSet.createFilter(fromBlock='latest')
|
||||
fee_range_log = policy_manager.events.FeeRateRangeSet.createFilter(fromBlock='latest')
|
||||
fee_range_log = policy_manager.events.feeRateRangeSet.createFilter(fromBlock='latest')
|
||||
|
||||
# Only past periods is allowed in register method
|
||||
current_period = policy_manager.functions.getCurrentPeriod().call()
|
||||
|
@ -311,7 +311,7 @@ def test_create_revoke(testerchain, escrow, policy_manager):
|
|||
with pytest.raises((TransactionFailed, ValueError)):
|
||||
tx = policy_manager.functions.setFeeRateRange(10, 20, 30).transact({'from': node1})
|
||||
testerchain.wait_for_receipt(tx)
|
||||
assert policy_manager.functions.FeeRateRange().call() == [0, 0, 0]
|
||||
assert policy_manager.functions.feeRateRange().call() == [0, 0, 0]
|
||||
|
||||
tx = policy_manager.functions.setMinFeeRate(0).transact({'from': node1})
|
||||
testerchain.wait_for_receipt(tx)
|
||||
|
@ -320,7 +320,7 @@ def test_create_revoke(testerchain, escrow, policy_manager):
|
|||
|
||||
tx = policy_manager.functions.setFeeRateRange(0, 0, 0).transact({'from': creator})
|
||||
testerchain.wait_for_receipt(tx)
|
||||
assert policy_manager.functions.FeeRateRange().call() == [0, 0, 0]
|
||||
assert policy_manager.functions.feeRateRange().call() == [0, 0, 0]
|
||||
|
||||
events = fee_range_log.get_all_entries()
|
||||
assert len(events) == 1
|
||||
|
@ -341,7 +341,7 @@ def test_create_revoke(testerchain, escrow, policy_manager):
|
|||
min_rate, default_rate, max_rate = 10, 20, 30
|
||||
tx = policy_manager.functions.setFeeRateRange(min_rate, default_rate, max_rate).transact({'from': creator})
|
||||
testerchain.wait_for_receipt(tx)
|
||||
assert policy_manager.functions.FeeRateRange().call() == [min_rate, default_rate, max_rate]
|
||||
assert policy_manager.functions.feeRateRange().call() == [min_rate, default_rate, max_rate]
|
||||
assert policy_manager.functions.nodes(node1).call()[MIN_FEE_RATE_FIELD] == 0
|
||||
assert policy_manager.functions.nodes(node2).call()[MIN_FEE_RATE_FIELD] == 0
|
||||
assert policy_manager.functions.getMinFeeRate(node1).call() == default_rate
|
||||
|
@ -485,7 +485,7 @@ def test_create_revoke(testerchain, escrow, policy_manager):
|
|||
min_rate, default_rate, max_rate = 11, 15, 19
|
||||
tx = policy_manager.functions.setFeeRateRange(min_rate, default_rate, max_rate).transact({'from': creator})
|
||||
testerchain.wait_for_receipt(tx)
|
||||
assert policy_manager.functions.FeeRateRange().call() == [min_rate, default_rate, max_rate]
|
||||
assert policy_manager.functions.feeRateRange().call() == [min_rate, default_rate, max_rate]
|
||||
assert policy_manager.functions.nodes(node1).call()[MIN_FEE_RATE_FIELD] == 10
|
||||
assert policy_manager.functions.nodes(node2).call()[MIN_FEE_RATE_FIELD] == 20
|
||||
assert policy_manager.functions.getMinFeeRate(node1).call() == default_rate
|
||||
|
|
Loading…
Reference in New Issue