Skip to content

Commit

Permalink
Merge branch 'main' into solady-ownable-fees
Browse files Browse the repository at this point in the history
  • Loading branch information
jaketimothy committed Jun 7, 2023
2 parents 7c94c53 + 317c102 commit a585f2c
Show file tree
Hide file tree
Showing 3 changed files with 32 additions and 16 deletions.
33 changes: 17 additions & 16 deletions .gas-snapshot
Original file line number Diff line number Diff line change
Expand Up @@ -11,25 +11,26 @@ BridgedERC20Test:testTransferBannedFromReverts() (gas: 117070)
BridgedERC20Test:testTransferBannedToReverts() (gas: 119329)
BridgedERC20Test:testTransferRestrictedToReverts() (gas: 120257)
BridgedTokenFactoryTest:testDeployToken() (gas: 1138684)
DirectBuyIssuerTest:testCancelOrder(uint128,uint128,string) (runs: 518, μ: 355165, ~: 363994)
DirectBuyIssuerTest:testCancelOrder(uint128,uint128,string) (runs: 518, μ: 355500, ~: 363890)
DirectBuyIssuerTest:testCancelOrderNotFoundReverts() (gas: 32635)
DirectBuyIssuerTest:testFillOrder(uint128,uint128,uint128,uint256) (runs: 518, μ: 309460, ~: 282843)
DirectBuyIssuerTest:testFillorderNoOrderReverts() (gas: 32535)
DirectBuyIssuerTest:testInitialize(address,address) (runs: 518, μ: 6984512, ~: 6984512)
DirectBuyIssuerTest:testRequestCancel() (gas: 244093)
DirectBuyIssuerTest:testFillOrder(uint128,uint128,uint128,uint256) (runs: 518, μ: 310722, ~: 282755)
DirectBuyIssuerTest:testFillorderNoOrderReverts() (gas: 32425)
DirectBuyIssuerTest:testGetInputValue(uint128) (runs: 518, μ: 35379, ~: 35423)
DirectBuyIssuerTest:testInitialize(address,address) (runs: 518, μ: 7118821, ~: 7118821)
DirectBuyIssuerTest:testRequestCancel() (gas: 244115)
DirectBuyIssuerTest:testRequestCancelNotFoundReverts() (gas: 30082)
DirectBuyIssuerTest:testRequestCancelNotRecipientReverts() (gas: 236455)
DirectBuyIssuerTest:testRequestOrder(uint128) (runs: 518, μ: 196220, ~: 252262)
DirectBuyIssuerTest:testRequestOrderCollisionReverts() (gas: 239020)
DirectBuyIssuerTest:testRequestOrderPausedReverts() (gas: 53647)
DirectBuyIssuerTest:testRequestOrderUnsupportedAssetReverts(address) (runs: 518, μ: 93015, ~: 93015)
DirectBuyIssuerTest:testRequestCancelNotRecipientReverts() (gas: 236477)
DirectBuyIssuerTest:testRequestOrder(uint128) (runs: 518, μ: 191700, ~: 252373)
DirectBuyIssuerTest:testRequestOrderCollisionReverts() (gas: 239042)
DirectBuyIssuerTest:testRequestOrderPausedReverts() (gas: 53669)
DirectBuyIssuerTest:testRequestOrderUnsupportedAssetReverts(address) (runs: 518, μ: 92971, ~: 92971)
DirectBuyIssuerTest:testRequestOrderUnsupportedPaymentReverts(address) (runs: 518, μ: 95482, ~: 95482)
DirectBuyIssuerTest:testRequestOrderWithPermit() (gas: 309880)
DirectBuyIssuerTest:testReturnEscrow(uint128,uint256) (runs: 518, μ: 289787, ~: 285116)
DirectBuyIssuerTest:testSetFees(address) (runs: 518, μ: 24634, ~: 24634)
DirectBuyIssuerTest:testSetOrdersPaused(bool) (runs: 518, μ: 28092, ~: 21677)
DirectBuyIssuerTest:testSetTreasury(address) (runs: 518, μ: 24967, ~: 24973)
DirectBuyIssuerTest:testTakeEscrow(uint128,uint256) (runs: 518, μ: 261493, ~: 246656)
DirectBuyIssuerTest:testRequestOrderWithPermit() (gas: 310013)
DirectBuyIssuerTest:testReturnEscrow(uint128,uint256) (runs: 518, μ: 289695, ~: 285071)
DirectBuyIssuerTest:testSetFees(address) (runs: 518, μ: 24656, ~: 24656)
DirectBuyIssuerTest:testSetOrdersPaused(bool) (runs: 518, μ: 28114, ~: 21699)
DirectBuyIssuerTest:testSetTreasury(address) (runs: 518, μ: 24885, ~: 24885)
DirectBuyIssuerTest:testTakeEscrow(uint128,uint256) (runs: 518, μ: 262547, ~: 246678)
MessagerTest:testSendMessage(uint256,address,string) (runs: 518, μ: 22472, ~: 22522)
MessagerTest:testSendMessageInvalidReverts() (gas: 19518)
OrderFeesTest:testRecoverInputValueFromFee(uint64,uint128) (runs: 518, μ: 22637, ~: 22985)
Expand Down
9 changes: 9 additions & 0 deletions src/issuer/BuyOrderIssuer.sol
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,15 @@ contract BuyOrderIssuer is OrderProcessor {
}
}

function getInputValueForOrderValue(address token, uint256 orderValue) external view returns (uint256) {
if (address(orderFees) == address(0)) {
return orderValue;
}
uint256 flatFee = orderFees.flatFeeForOrder(token);
uint256 recoveredValue = orderFees.recoverInputValueFromFeeOnRemaining(orderValue);
return recoveredValue + flatFee;
}

function _requestOrderAccounting(OrderRequest calldata order, bytes32 salt, bytes32 orderId)
internal
virtual
Expand Down
6 changes: 6 additions & 0 deletions test/DirectBuyIssuer.t.sol
Original file line number Diff line number Diff line change
Expand Up @@ -147,6 +147,12 @@ contract DirectBuyIssuerTest is Test {
assertEq(issuer.ordersPaused(), pause);
}

function testGetInputValue(uint128 orderValue) public {
uint256 inputValue = issuer.getInputValueForOrderValue(address(paymentToken), orderValue);
(uint256 flatFee, uint256 percentageFee) = issuer.getFeesForOrder(address(paymentToken), inputValue);
assertEq(inputValue - flatFee - percentageFee, orderValue);
}

function testRequestOrder(uint128 quantityIn) public {
OrderProcessor.OrderRequest memory order = OrderProcessor.OrderRequest({
recipient: user,
Expand Down

0 comments on commit a585f2c

Please sign in to comment.