UNPKG

@nodeset/contracts

Version:

Protocol for accessing NodeSet's Constellation Ethereum staking network

57 lines (47 loc) 2.59 kB
import { printTitle } from '../_utils/formatting'; import { getNodeFeeByDemand } from '../_helpers/network'; import { RocketDAOProtocolSettingsNetwork } from '../_utils/artifacts'; import { setDAOProtocolBootstrapSetting } from '../dao/scenario-dao-protocol-bootstrap'; import { assertBN } from '../_helpers/bn'; export default function() { contract('RocketNetworkFees', async (accounts) => { // Accounts const [ owner, ] = accounts; // Setup let minNodeFee = '0.00'.ether; let targetNodeFee = '0.50'.ether; let maxNodeFee = '1.00'.ether; let demandRange = '1'.ether; before(async () => { // Set network settings await setDAOProtocolBootstrapSetting(RocketDAOProtocolSettingsNetwork, 'network.node.fee.minimum', minNodeFee, {from: owner}); await setDAOProtocolBootstrapSetting(RocketDAOProtocolSettingsNetwork, 'network.node.fee.target', targetNodeFee, {from: owner}); await setDAOProtocolBootstrapSetting(RocketDAOProtocolSettingsNetwork, 'network.node.fee.maximum', maxNodeFee, {from: owner}); await setDAOProtocolBootstrapSetting(RocketDAOProtocolSettingsNetwork, 'network.node.fee.demand.range', demandRange, {from: owner}); }); it(printTitle('network node fee', 'has correct value based on node demand'), async () => { // Set expected fees for node demand values let values = [ {demand: '-1.25'.ether, expectedFee: '0'.ether}, {demand: '-1.00'.ether, expectedFee: '0'.ether}, {demand: '-0.75'.ether, expectedFee: '0.2890625'.ether}, {demand: '-0.50'.ether, expectedFee: '0.4375'.ether}, {demand: '-0.25'.ether, expectedFee: '0.4921875'.ether}, {demand: '0.00'.ether, expectedFee: '0.5'.ether}, {demand: '0.25'.ether, expectedFee: '0.5078125'.ether}, {demand: '0.50'.ether, expectedFee: '0.5625'.ether}, {demand: '0.75'.ether, expectedFee: '0.7109375'.ether}, {demand: '1.00'.ether, expectedFee: '1'.ether}, {demand: '1.25'.ether, expectedFee: '1'.ether}, ]; // Check fees for (let vi = 0; vi < values.length; ++vi) { let v = values[vi]; let nodeFee = await getNodeFeeByDemand(v.demand); assertBN.equal(nodeFee, v.expectedFee, 'Node fee does not match expected fee for node demand value'); } }); }); }