Skip to content

Commit

Permalink
Gas optimization of governance fee calc
Browse files Browse the repository at this point in the history
  • Loading branch information
naddison36 committed Mar 3, 2021
1 parent 3c4dddc commit 529529d
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 11 deletions.
30 changes: 20 additions & 10 deletions contracts/feeders/FeederPool.sol
Original file line number Diff line number Diff line change
Expand Up @@ -325,8 +325,10 @@ contract FeederPool is
_recipient
);

if(data.govFee > 0){
data.pendingFees += localFee * data.govFee / 1e18;
uint256 govFee = data.govFee;
if(govFee > 0) {
uint256 pendingFees = data.pendingFees;
data.pendingFees = pendingFees + (localFee * govFee / 1e18);
}

emit Swapped(msg.sender, input.addr, output.addr, swapOutput, localFee, _recipient);
Expand Down Expand Up @@ -451,8 +453,10 @@ contract FeederPool is
_recipient
);

if(data.govFee > 0){
data.pendingFees += localFee * data.govFee / 1e18;
uint256 govFee = data.govFee;
if(govFee > 0) {
uint256 pendingFees = data.pendingFees;
data.pendingFees = pendingFees + (localFee * govFee / 1e18);
}

emit Redeemed(
Expand Down Expand Up @@ -495,8 +499,10 @@ contract FeederPool is
_recipient
);

if(data.govFee > 0){
data.pendingFees += scaledFee * data.govFee / 1e18;
uint256 govFee = data.govFee;
if(govFee > 0) {
uint256 pendingFees = data.pendingFees;
data.pendingFees = pendingFees + (scaledFee * govFee / 1e18);
}

emit RedeemedMulti(
Expand Down Expand Up @@ -542,8 +548,10 @@ contract FeederPool is
);

_burn(msg.sender, fpTokenQuantity);
if(data.govFee > 0){
data.pendingFees += localFee * data.govFee / 1e18;
uint256 govFee = data.govFee;
if(govFee > 0) {
uint256 pendingFees = data.pendingFees;
data.pendingFees = pendingFees + (localFee * govFee / 1e18);
}

emit RedeemedMulti(
Expand Down Expand Up @@ -760,8 +768,10 @@ contract FeederPool is
newSupply = totalSupply() + mintAmount;
require(mintAmount > 0, "Must collect something");

if(data.govFee > 0){
data.pendingFees += mintAmount * data.govFee / 1e18;
uint256 govFee = data.govFee;
if(govFee > 0) {
uint256 pendingFees = data.pendingFees;
data.pendingFees = pendingFees + (mintAmount * govFee / 1e18);
}

// Dummy mint event to catch the collections here
Expand Down
2 changes: 1 addition & 1 deletion test/feeders/basic-fns.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -144,7 +144,7 @@ describe("Feeder Pools", () => {
)
})
})
describe.only("testing some swaps", () => {
describe("testing some swaps", () => {
before(async () => {
await runSetup()
})
Expand Down

0 comments on commit 529529d

Please sign in to comment.