Skip to content

Commit

Permalink
Fix the case where trader is not tx.origin
Browse files Browse the repository at this point in the history
  • Loading branch information
cwsnt committed Jun 26, 2021
1 parent ecc7df1 commit 52221b9
Show file tree
Hide file tree
Showing 6 changed files with 10 additions and 5 deletions.
1 change: 1 addition & 0 deletions contracts/interfaces/ISovryn.sol
Original file line number Diff line number Diff line change
Expand Up @@ -324,6 +324,7 @@ contract ISovryn is

function payTradingFeeToAffiliatesReferrer(
address referrer,
address trader,
address token,
uint256 tradingFeeTokenBaseAmount
) external returns (uint256 affiliatesBonusSOVAmount, uint256 affiliatesBonusTokenAmount);
Expand Down
5 changes: 3 additions & 2 deletions contracts/mixins/FeesHelper.sol
Original file line number Diff line number Diff line change
Expand Up @@ -69,11 +69,12 @@ contract FeesHelper is State, ProtocolTokenUser, FeesEvents {

function _payTradingFeeToAffiliate(
address referrer,
address trader,
address feeToken,
uint256 tradingFee
) internal returns (uint256 affiliatesBonusSOVAmount, uint256 affiliatesBonusTokenAmount) {
(affiliatesBonusSOVAmount, affiliatesBonusTokenAmount) = ProtocolAffiliatesInterface(protocolAddress)
.payTradingFeeToAffiliatesReferrer(referrer, feeToken, tradingFee);
.payTradingFeeToAffiliatesReferrer(referrer, trader, feeToken, tradingFee);
}

/**
Expand All @@ -92,7 +93,7 @@ contract FeesHelper is State, ProtocolTokenUser, FeesEvents {
uint256 protocolTradingFee = tradingFee; //trading fee paid to protocol
if (tradingFee != 0) {
if (affiliatesUserReferrer[user] != address(0)) {
_payTradingFeeToAffiliate(affiliatesUserReferrer[user], feeToken, protocolTradingFee);
_payTradingFeeToAffiliate(affiliatesUserReferrer[user], user, feeToken, protocolTradingFee);
protocolTradingFee = (protocolTradingFee.sub(protocolTradingFee.mul(affiliateFeePercent).div(10**20))).sub(
protocolTradingFee.mul(affiliateTradingTokenFeePercent).div(10**20)
);
Expand Down
5 changes: 3 additions & 2 deletions contracts/modules/Affiliates.sol
Original file line number Diff line number Diff line change
Expand Up @@ -143,6 +143,7 @@ contract Affiliates is State, AffiliatesEvents {
*/
function payTradingFeeToAffiliatesReferrer(
address referrer,
address trader,
address token,
uint256 tradingFeeTokenBaseAmount
) external onlyCallableInternal returns (uint256 referrerBonusSovAmount, uint256 referrerBonusTokenAmount) {
Expand Down Expand Up @@ -181,7 +182,7 @@ contract Affiliates is State, AffiliatesEvents {
if (bonusPaymentIsSuccess) {
emit PayTradingFeeToAffiliate(
referrer,
tx.origin, // trader
trader, // trader
token,
isHeld,
tradingFeeTokenBaseAmount,
Expand All @@ -192,7 +193,7 @@ contract Affiliates is State, AffiliatesEvents {
} else {
emit PayTradingFeeToAffiliateFail(
referrer,
tx.origin, // trader
trader, // trader
token,
tradingFeeTokenBaseAmount,
referrerBonusTokenAmount,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ interface ProtocolAffiliatesInterface {

function payTradingFeeToAffiliatesReferrer(
address affiliate,
address trader,
address token,
uint256 amount
) external returns (uint256 affiliatesBonusSOVAmount, uint256 affiliatesBonusTokenAmount);
Expand Down
1 change: 1 addition & 0 deletions interfaces/ISovrynBrownie.sol
Original file line number Diff line number Diff line change
Expand Up @@ -325,6 +325,7 @@ contract ISovrynBrownie is

function payTradingFeeToAffiliatesReferrer(
address referrer,
address trader,
address token,
uint256 tradingFeeTokenBaseAmount
) external returns (uint256 affiliatesBonusSOVAmount, uint256 affiliatesBonusTokenAmount);
Expand Down
2 changes: 1 addition & 1 deletion tests-js/affiliates.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -465,7 +465,7 @@ contract("Affiliates", (accounts) => {

it("payTradingFeeToAffiliatesReferrer() Should revert if not called by protocol", async () => {
await expectRevert(
sovryn.payTradingFeeToAffiliatesReferrer(referrer, tokenSOV.address, wei("1", "gwei")),
sovryn.payTradingFeeToAffiliatesReferrer(referrer, trader, tokenSOV.address, wei("1", "gwei")),
"Affiliates: not authorized"
);
});
Expand Down

0 comments on commit 52221b9

Please sign in to comment.