code.vegaprotocol.io/vega@v0.79.0/core/integration/features/referrals/0083-RFPR-benefit_factors.feature (about) 1 Feature: Setting and applying referee benefit factors 2 3 Background: 4 5 # Initialise timings 6 Given time is updated to "2023-01-01T00:00:00Z" 7 And the average block duration is "1" 8 And the margin calculator named "margin-calculator-1": 9 | search factor | initial factor | release factor | 10 | 1.2 | 1.5 | 1.7 | 11 And the log normal risk model named "log-normal-risk-model": 12 | risk aversion | tau | mu | r | sigma | 13 | 0.000001 | 0.1 | 0 | 0 | 1.0 | 14 And the price monitoring named "price-monitoring": 15 | horizon | probability | auction extension | 16 | 3600 | 0.99 | 3 | 17 18 # Initialise the markets and network parameters 19 Given the following network parameters are set: 20 | name | value | 21 | market.fee.factors.infrastructureFee | 0.01 | 22 | market.fee.factors.makerFee | 0.01 | 23 | market.auction.minimumDuration | 1 | 24 | limits.markets.maxPeggedOrders | 4 | 25 | referralProgram.minStakedVegaTokens | 0 | 26 | referralProgram.maxPartyNotionalVolumeByQuantumPerEpoch | 1000000000 | 27 | referralProgram.maxReferralRewardProportion | 0.1 | 28 29 # Initalise the referral program then move forwards an epoch to start the program 30 Given the referral benefit tiers "rbt": 31 | minimum running notional taker volume | minimum epochs | referral reward infra factor | referral reward maker factor | referral reward liquidity factor | referral discount infra factor | referral discount maker factor | referral discount liquidity factor | 32 | 2000 | 2 | 0.021 | 0.022 | 0.023 | 0.024 | 0.025 | 0.026 | 33 | 3000 | 3 | 0.21 | 0.22 | 0.23 | 0.24 | 0.25 | 0.26 | 34 And the referral staking tiers "rst": 35 | minimum staked tokens | referral reward multiplier | 36 | 1 | 1 | 37 And the referral program: 38 | end of program | window length | benefit tiers | staking tiers | 39 | 2023-12-12T12:12:12Z | 7 | rbt | rst | 40 And the network moves ahead "1" epochs 41 42 # Initialse the assets and markets 43 And the following assets are registered: 44 | id | decimal places | quantum | 45 | USD.1.1 | 1 | 1 | 46 And the markets: 47 | id | quote name | asset | risk model | margin calculator | auction duration | fees | price monitoring | data source config | linear slippage factor | quadratic slippage factor | sla params | decimal places | position decimal places | 48 | ETH/USD.1.1 | ETH | USD.1.1 | default-log-normal-risk-model | default-margin-calculator | 1 | default-none | default-none | default-eth-for-future | 1e-3 | 0 | default-futures | 1 | 1 | 49 | ETH/USD.1.2 | ETH | USD.1.1 | log-normal-risk-model | margin-calculator-1 | 1 | default-none | price-monitoring | default-eth-for-future | 1e-3 | 0 | default-futures | 1 | 1 | 50 And the liquidity monitoring parameters: 51 | name | triggering ratio | time window | scaling factor | 52 | lqm-params | 1.0 | 3600s | 1 | 53 When the markets are updated: 54 | id | liquidity monitoring | linear slippage factor | quadratic slippage factor | 55 | ETH/USD.1.1 | lqm-params | 1e-3 | 0 | 56 | ETH/USD.1.2 | lqm-params | 1e-3 | 0 | 57 58 # Initialise the parties 59 Given the parties deposit on asset's general account the following amount: 60 | party | asset | amount | 61 | lpprov | USD.1.1 | 1000000000 | 62 | lpprov2 | USD.1.1 | 1000000000 | 63 | aux1 | USD.1.1 | 1000000000 | 64 | aux2 | USD.1.1 | 1000000000 | 65 | aux3 | USD.1.1 | 1000000000 | 66 | aux4 | USD.1.1 | 1000000000 | 67 | referrer1 | USD.1.1 | 1000000000 | 68 | referee1 | USD.1.1 | 1000000000 | 69 | referee2 | USD.1.1 | 1000000000 | 70 | ptbuy | USD.1.1 | 1000000000 | 71 | ptsell | USD.1.1 | 1000000000 | 72 73 # Exit the opening auction 74 Given the parties submit the following liquidity provision: 75 | id | party | market id | commitment amount | fee | lp type | 76 | lp1 | lpprov | ETH/USD.1.1 | 1000000 | 0.01 | submission | 77 | lp2 | lpprov2 | ETH/USD.1.2 | 1000000 | 0.01 | submission | 78 And the parties place the following pegged iceberg orders: 79 | party | market id | peak size | minimum visible size | side | pegged reference | volume | offset | 80 | lpprov | ETH/USD.1.1 | 5000 | 1000 | buy | BID | 10000 | 1 | 81 | lpprov | ETH/USD.1.1 | 5000 | 1000 | sell | ASK | 10000 | 1 | 82 | lpprov2 | ETH/USD.1.2 | 5000 | 1000 | buy | BID | 10000 | 1 | 83 | lpprov2 | ETH/USD.1.2 | 5000 | 1000 | sell | ASK | 10000 | 1 | 84 When the parties place the following orders: 85 | party | market id | side | volume | price | resulting trades | type | tif | 86 | aux1 | ETH/USD.1.1 | buy | 1 | 990 | 0 | TYPE_LIMIT | TIF_GTC | 87 | aux1 | ETH/USD.1.1 | buy | 1 | 1000 | 0 | TYPE_LIMIT | TIF_GTC | 88 | aux2 | ETH/USD.1.1 | sell | 1 | 1000 | 0 | TYPE_LIMIT | TIF_GTC | 89 | aux2 | ETH/USD.1.1 | sell | 1 | 1100 | 0 | TYPE_LIMIT | TIF_GTC | 90 | aux3 | ETH/USD.1.2 | buy | 1 | 900 | 0 | TYPE_LIMIT | TIF_GTC | 91 | aux3 | ETH/USD.1.2 | buy | 1 | 1000 | 0 | TYPE_LIMIT | TIF_GTC | 92 | aux4 | ETH/USD.1.2 | sell | 1 | 1000 | 0 | TYPE_LIMIT | TIF_GTC | 93 | aux4 | ETH/USD.1.2 | sell | 1 | 1100 | 0 | TYPE_LIMIT | TIF_GTC | 94 And the opening auction period ends for market "ETH/USD.1.1" 95 Then the trading mode should be "TRADING_MODE_CONTINUOUS" for the market "ETH/USD.1.1" 96 And the trading mode should be "TRADING_MODE_CONTINUOUS" for the market "ETH/USD.1.2" 97 98 # Create the referral set and codes 99 Given the parties create the following referral codes: 100 | party | code | is_team | team | 101 | referrer1 | referral-code-1 | true | team1 | 102 And the parties apply the following referral codes: 103 | party | code | is_team | team | 104 | referee1 | referral-code-1 | true | team1 | 105 106 And the team "team1" has the following members: 107 | party | 108 | referrer1 | 109 | referee1 | 110 111 Scenario Outline: Referral set generates variable running taker volume with a referee with variable epochs in set (0083-RFPR-036)(0083-RFPR-037)(0083-RFPR-038)(0083-RFPR-039)(0083-RFPR-040) 112 # Expectation: Referral reward factor and referral discount factor should be set correctly according to the spec 113 114 # Test cases 115 # - Referral set does not fulfill the smallest 'minimimum running taker volume' requirement and referee does not fulfill the smallest 'minimum epochs' requirement 116 # - Referral set does not fulfill the smallest 'minimimum running taker volume' requirement but referee fulfulls the smallest 'minimum epochs' requirement 117 # - Referral set fulfills the smallest 'minimimum running taker volume' requirement but referee does fulfill the smallest 'minimum epochs' requirement 118 # - Referral set fulfills the 'minimum running taker volume' requirement tier for a higher tier than a referee fulfulls the 'minimum epochs' requirement for 119 # - Referral set fulfills the 'minimum running taker volume' requirement tier for a lower tier than a referee fulfulls the 'minimum epochs' requirement for 120 # - Referral set fulfills the 'minimum running taker volume' requirement tier for the same tier as a referee fulfulls the 'minimum epochs' requirement for 121 122 Given the parties place the following orders: 123 | party | market id | side | volume | price | resulting trades | type | tif | 124 | aux1 | ETH/USD.1.1 | buy | <initial volume> | 1000 | 0 | TYPE_LIMIT | TIF_GTC | 125 | referee1 | ETH/USD.1.1 | sell | <initial volume> | 1000 | 1 | TYPE_LIMIT | TIF_GTC | 126 When the network moves ahead <time in set> epochs 127 Then the referral set stats for code "referral-code-1" at epoch <time in set> should have a running volume of <running volume>: 128 | party | reward infra factor | reward maker factor | reward liquidity factor | discount infra factor | discount maker factor | discount liquidity factor | 129 | referee1 | <max infra reward factor> | <max maker reward factor> | <max liquidity reward factor> | <max infra discount factor> | <max maker discount factor> | <max liquidity discount factor> | 130 131 Given the parties place the following orders: 132 | party | market id | side | volume | price | resulting trades | type | tif | 133 | aux1 | ETH/USD.1.1 | buy | 10 | 1000 | 0 | TYPE_LIMIT | TIF_GTC | 134 | referee1 | ETH/USD.1.1 | sell | 10 | 1000 | 1 | TYPE_LIMIT | TIF_GTC | 135 136 Examples: 137 | initial volume | running volume | time in set | max infra reward factor | max maker reward factor | max liquidity reward factor | max infra discount factor | max maker discount factor | max liquidity discount factor | 138 | 10 | 1000 | "1" | 0 | 0 | 0 | 0 | 0 | 0 | 139 | 10 | 1000 | "4" | 0 | 0 | 0 | 0 | 0 | 0 | 140 | 20 | 2000 | "1" | 0.021 | 0.022 | 0.023 | 0 | 0 | 0 | 141 | 30 | 3000 | "2" | 0.21 | 0.22 | 0.23 | 0.024 | 0.025 | 0.026 | 142 | 20 | 2000 | "3" | 0.021 | 0.022 | 0.023 | 0.024 | 0.025 | 0.026 | 143 | 30 | 3000 | "3" | 0.21 | 0.22 | 0.23 | 0.24 | 0.25 | 0.26 | 144 145 146 Scenario: Referee incurs fees during continuous trading (0029-FEES-023)(0029-FEES-025) 147 # Expectation: referral discount applied and referral reward calculated from resulting fee 148 149 Given the parties place the following orders: 150 | party | market id | side | volume | price | resulting trades | type | tif | 151 | aux1 | ETH/USD.1.1 | buy | 20 | 1000 | 0 | TYPE_LIMIT | TIF_GTC | 152 | referee1 | ETH/USD.1.1 | sell | 20 | 1000 | 1 | TYPE_LIMIT | TIF_GTC | 153 When the network moves ahead "2" epochs 154 Then the referral set stats for code "referral-code-1" at epoch "2" should have a running volume of 2000: 155 | party | reward infra factor | reward maker factor | reward liquidity factor | discount infra factor | discount maker factor | discount liquidity factor | 156 | referee1 | 0.021 | 0.022 | 0.023 | 0.024 | 0.025 | 0.026 | 157 158 Given the parties place the following orders: 159 | party | market id | side | volume | price | resulting trades | type | tif | 160 | aux1 | ETH/USD.1.1 | buy | 100 | 1000 | 0 | TYPE_LIMIT | TIF_GTC | 161 | referee1 | ETH/USD.1.1 | sell | 100 | 1000 | 1 | TYPE_LIMIT | TIF_GTC | 162 When the following trades should be executed: 163 | buyer | price | size | seller | 164 | aux1 | 1000 | 100 | referee1 | 165 Then the following transfers should happen: 166 | from | to | from account | to account | market id | amount | asset | 167 | referee1 | market | ACCOUNT_TYPE_GENERAL | ACCOUNT_TYPE_FEES_MAKER | ETH/USD.1.1 | 96 | USD.1.1 | 168 | referee1 | market | ACCOUNT_TYPE_GENERAL | ACCOUNT_TYPE_FEES_LIQUIDITY | ETH/USD.1.1 | 96 | USD.1.1 | 169 | referee1 | | ACCOUNT_TYPE_GENERAL | ACCOUNT_TYPE_FEES_INFRASTRUCTURE | | 96 | USD.1.1 | 170 | referee1 | | ACCOUNT_TYPE_GENERAL | ACCOUNT_TYPE_PENDING_FEE_REFERRAL_REWARD | | 6 | USD.1.1 | 171 | | referrer1 | ACCOUNT_TYPE_PENDING_FEE_REFERRAL_REWARD | ACCOUNT_TYPE_GENERAL | | 6 | USD.1.1 | 172 173 174 Scenario: Referrer incurs fees during continuous trading (0029-FEES-023)(0029-FEES-025) 175 # Expectation: referral discount should not be applied and no referral rewards should be distributed 176 177 Given the parties place the following orders: 178 | party | market id | side | volume | price | resulting trades | type | tif | 179 | aux1 | ETH/USD.1.1 | buy | 20 | 1000 | 0 | TYPE_LIMIT | TIF_GTC | 180 | referee1 | ETH/USD.1.1 | sell | 20 | 1000 | 1 | TYPE_LIMIT | TIF_GTC | 181 When the network moves ahead "2" epochs 182 Then the referral set stats for code "referral-code-1" at epoch "2" should have a running volume of 2000: 183 | party | reward infra factor | reward maker factor | reward liquidity factor | discount infra factor | discount maker factor | discount liquidity factor | 184 | referee1 | 0.021 | 0.022 | 0.023 | 0.024 | 0.025 | 0.026 | 185 186 Given the parties place the following orders: 187 | party | market id | side | volume | price | resulting trades | type | tif | 188 | aux1 | ETH/USD.1.1 | buy | 100 | 1000 | 0 | TYPE_LIMIT | TIF_GTC | 189 | referrer1 | ETH/USD.1.1 | sell | 100 | 1000 | 1 | TYPE_LIMIT | TIF_GTC | 190 When the following trades should be executed: 191 | buyer | price | size | seller | 192 | aux1 | 1000 | 100 | referrer1 | 193 Then the following transfers should happen: 194 | from | to | from account | to account | market id | amount | asset | 195 | referrer1 | market | ACCOUNT_TYPE_GENERAL | ACCOUNT_TYPE_FEES_MAKER | ETH/USD.1.1 | 100 | USD.1.1 | 196 | referrer1 | market | ACCOUNT_TYPE_GENERAL | ACCOUNT_TYPE_FEES_LIQUIDITY | ETH/USD.1.1 | 100 | USD.1.1 | 197 | referrer1 | | ACCOUNT_TYPE_GENERAL | ACCOUNT_TYPE_FEES_INFRASTRUCTURE | | 100 | USD.1.1 | 198 199 200 Scenario: Referee incurs fees when exiting an auction (0029-FEES-024)(0029-FEES-026) 201 # Expectation: fee should be split between buyer and seller, referral discount applied and referral reward calculated from resulting fee 202 203 Given the parties place the following orders: 204 | party | market id | side | volume | price | resulting trades | type | tif | 205 | aux1 | ETH/USD.1.1 | buy | 20 | 1000 | 0 | TYPE_LIMIT | TIF_GTC | 206 | referrer1 | ETH/USD.1.1 | sell | 20 | 1000 | 1 | TYPE_LIMIT | TIF_GTC | 207 When the network moves ahead "2" epochs 208 Then the referral set stats for code "referral-code-1" at epoch "2" should have a running volume of 2000: 209 | party | reward infra factor | reward maker factor | reward liquidity factor | discount infra factor | discount maker factor | discount liquidity factor | 210 | referee1 | 0.021 | 0.022 | 0.023 | 0.024 | 0.025 | 0.026 | 211 212 # Cancel the liquidity commitment triggering an auction 213 Given the parties submit the following liquidity provision: 214 | id | party | market id | commitment amount | fee | lp type | 215 | lp1 | lpprov | ETH/USD.1.1 | 0 | 0.1 | cancellation | 216 And the network moves ahead "1" epochs 217 And the trading mode should be "TRADING_MODE_CONTINUOUS" for the market "ETH/USD.1.1" 218 When the parties place the following orders: 219 | party | market id | side | volume | price | resulting trades | type | tif | 220 | aux1 | ETH/USD.1.1 | buy | 200 | 1000 | 0 | TYPE_LIMIT | TIF_GTC | 221 | referee1 | ETH/USD.1.1 | sell | 200 | 1000 | 1 | TYPE_LIMIT | TIF_GTC | 222 Then the following trades should be executed: 223 | buyer | price | size | seller | 224 | aux1 | 1000 | 200 | referee1 | 225 And the parties submit the following liquidity provision: 226 | id | party | market id | commitment amount | fee | lp type | 227 | lp2 | lpprov | ETH/USD.1.1 | 1000000 | 0.01 | submission | 228 And the network moves ahead "1" epochs 229 # fees are split between referee1 and aux1 230 # aux1 has no discounts or rewards so is paying 100, 100 231 # referee1 has a discount of 1 and pays a reward of 2 to the referrer 232 And the following transfers should happen: 233 | from | to | from account | to account | market id | amount | asset | 234 | referee1 | market | ACCOUNT_TYPE_GENERAL | ACCOUNT_TYPE_FEES_LIQUIDITY | ETH/USD.1.1 | 0 | USD.1.1 | 235 | referee1 | | ACCOUNT_TYPE_GENERAL | ACCOUNT_TYPE_FEES_INFRASTRUCTURE | | 192 | USD.1.1 | 236 | referee1 | | ACCOUNT_TYPE_GENERAL | ACCOUNT_TYPE_PENDING_FEE_REFERRAL_REWARD | | 8 | USD.1.1 | 237 | | referrer1 | ACCOUNT_TYPE_PENDING_FEE_REFERRAL_REWARD | ACCOUNT_TYPE_GENERAL | | 8 | USD.1.1 | 238 239 240 Scenario: Referrer incurs fees when exiting an auction (0029-FEES-024)(0029-FEES-026) 241 # Expectation: fee should be split between buyer and seller, referral discount applied and referral reward calculated from resulting fee 242 243 Given the parties place the following orders: 244 | party | market id | side | volume | price | resulting trades | type | tif | 245 | aux3 | ETH/USD.1.2 | buy | 20 | 1000 | 0 | TYPE_LIMIT | TIF_GTC | 246 | referee1 | ETH/USD.1.2 | sell | 20 | 1000 | 1 | TYPE_LIMIT | TIF_GTC | 247 When the network moves ahead "2" epochs 248 Then the referral set stats for code "referral-code-1" at epoch "2" should have a running volume of 2000: 249 | party | reward infra factor | reward maker factor | reward liquidity factor | discount infra factor | discount maker factor | discount liquidity factor | 250 | referee1 | 0.021 | 0.022 | 0.023 | 0.024 | 0.025 | 0.026 | 251 And the market data for the market "ETH/USD.1.2" should be: 252 | mark price | trading mode | target stake | supplied stake | open interest | horizon | min bound | max bound | 253 | 1000 | TRADING_MODE_CONTINUOUS | 7469 | 1000000 | 21 | 3600 | 973 | 1027 | 254 255 # Submit ourders out of price range to trigger auction 256 When the parties place the following orders: 257 | party | market id | side | volume | price | resulting trades | type | tif | 258 | ptbuy | ETH/USD.1.2 | buy | 2 | 970 | 0 | TYPE_LIMIT | TIF_GTC | 259 | ptsell | ETH/USD.1.2 | sell | 2 | 970 | 0 | TYPE_LIMIT | TIF_GTC | 260 Then the market data for the market "ETH/USD.1.2" should be: 261 | mark price | trading mode | auction trigger | target stake | supplied stake | open interest | auction end | 262 | 1000 | TRADING_MODE_MONITORING_AUCTION | AUCTION_TRIGGER_PRICE | 7935 | 1000000 | 21 | 3 | 263 When the parties place the following orders: 264 | party | market id | side | volume | price | resulting trades | type | tif | 265 | aux3 | ETH/USD.1.2 | buy | 200 | 1000 | 0 | TYPE_LIMIT | TIF_GTC | 266 | referrer1 | ETH/USD.1.2 | sell | 200 | 1000 | 0 | TYPE_LIMIT | TIF_GTC | 267 And the network moves ahead "1" epochs 268 And the network moves ahead "3" blocks 269 Then the trading mode should be "TRADING_MODE_CONTINUOUS" for the market "ETH/USD.1.2" 270 And the following trades should be executed: 271 | buyer | price | size | seller | 272 | aux3 | 1000 | 198 | referrer1 | 273 | aux3 | 1000 | 2 | ptsell | 274 And the following transfers should happen: 275 | from | to | from account | to account | market id | amount | asset | 276 | referrer1 | market | ACCOUNT_TYPE_GENERAL | ACCOUNT_TYPE_FEES_LIQUIDITY | ETH/USD.1.2 | 99 | USD.1.1 | 277 | referrer1 | | ACCOUNT_TYPE_GENERAL | ACCOUNT_TYPE_FEES_INFRASTRUCTURE | | 99 | USD.1.1 | 278 279 280 Scenario: Insufficent fees after discounts applied to pay a referral commision to the referrer (0029-FEES-029) 281 # Expectation: rewards (<1) should be floored and therefore no reward paid 282 283 Given the parties place the following orders: 284 | party | market id | side | volume | price | resulting trades | type | tif | 285 | aux1 | ETH/USD.1.1 | buy | 20 | 1000 | 0 | TYPE_LIMIT | TIF_GTC | 286 | referee1 | ETH/USD.1.1 | sell | 20 | 1000 | 1 | TYPE_LIMIT | TIF_GTC | 287 When the network moves ahead "2" epochs 288 Then the referral set stats for code "referral-code-1" at epoch "2" should have a running volume of 2000: 289 | party | reward infra factor | reward maker factor | reward liquidity factor | discount infra factor | discount maker factor | discount liquidity factor | 290 | referee1 | 0.021 | 0.022 | 0.023 | 0.024 | 0.025 | 0.026 | 291 292 Given the parties place the following orders: 293 | party | market id | side | volume | price | resulting trades | type | tif | 294 | aux1 | ETH/USD.1.1 | buy | 50 | 1000 | 0 | TYPE_LIMIT | TIF_GTC | 295 | referee1 | ETH/USD.1.1 | sell | 50 | 1000 | 1 | TYPE_LIMIT | TIF_GTC | 296 When the following trades should be executed: 297 | buyer | price | size | seller | 298 | aux1 | 1000 | 50 | referee1 | 299 Then the following transfers should happen: 300 | from | to | from account | to account | market id | amount | asset | 301 | referee1 | market | ACCOUNT_TYPE_GENERAL | ACCOUNT_TYPE_FEES_MAKER | ETH/USD.1.1 | 48 | USD.1.1 | 302 | referee1 | market | ACCOUNT_TYPE_GENERAL | ACCOUNT_TYPE_FEES_LIQUIDITY | ETH/USD.1.1 | 48 | USD.1.1 | 303 | referee1 | | ACCOUNT_TYPE_GENERAL | ACCOUNT_TYPE_FEES_INFRASTRUCTURE | | 48 | USD.1.1 | 304 305 306 Scenario: Insufficent fees to be able to apply a referral discount discount for the referee (0029-FEES-030) 307 # Expectation: discounts (<1) should be floored and therefore no discount applied 308 309 Given the parties place the following orders: 310 | party | market id | side | volume | price | resulting trades | type | tif | 311 | aux1 | ETH/USD.1.1 | buy | 20 | 1000 | 0 | TYPE_LIMIT | TIF_GTC | 312 | referee1 | ETH/USD.1.1 | sell | 20 | 1000 | 1 | TYPE_LIMIT | TIF_GTC | 313 When the network moves ahead "2" epochs 314 Then the referral set stats for code "referral-code-1" at epoch "2" should have a running volume of 2000: 315 | party | reward infra factor | reward maker factor | reward liquidity factor | discount infra factor | discount maker factor | discount liquidity factor | 316 | referee1 | 0.021 | 0.022 | 0.023 | 0.024 | 0.025 | 0.026 | 317 318 Given the parties place the following orders: 319 | party | market id | side | volume | price | resulting trades | type | tif | 320 | aux1 | ETH/USD.1.1 | buy | 40 | 1000 | 0 | TYPE_LIMIT | TIF_GTC | 321 | referee1 | ETH/USD.1.1 | sell | 40 | 1000 | 1 | TYPE_LIMIT | TIF_GTC | 322 When the following trades should be executed: 323 | buyer | price | size | seller | 324 | aux1 | 1000 | 40 | referee1 | 325 Then the following transfers should happen: 326 | from | to | from account | to account | market id | amount | asset | 327 | referee1 | market | ACCOUNT_TYPE_GENERAL | ACCOUNT_TYPE_FEES_MAKER | ETH/USD.1.1 | 39 | USD.1.1 | 328 | referee1 | market | ACCOUNT_TYPE_GENERAL | ACCOUNT_TYPE_FEES_LIQUIDITY | ETH/USD.1.1 | 39 | USD.1.1 | 329 | referee1 | | ACCOUNT_TYPE_GENERAL | ACCOUNT_TYPE_FEES_INFRASTRUCTURE | | 40 | USD.1.1 | 330 331 332 Scenario: Referal reward factor set greater than referralProgram.maxReferralRewardProportion (0029-FEES-029, 0029-FEES-031) 333 # Expectation: the maximum reward proportion should be adhered to 334 335 Given the parties place the following orders: 336 | party | market id | side | volume | price | resulting trades | type | tif | 337 | aux1 | ETH/USD.1.1 | buy | 30 | 1000 | 0 | TYPE_LIMIT | TIF_GTC | 338 | referrer1 | ETH/USD.1.1 | sell | 30 | 1000 | 1 | TYPE_LIMIT | TIF_GTC | 339 When the network moves ahead "3" epochs 340 Then the referral set stats for code "referral-code-1" at epoch "3" should have a running volume of 3000: 341 | party | reward infra factor | reward maker factor | reward liquidity factor | discount infra factor | discount maker factor | discount liquidity factor | 342 | referee1 | 0.21 | 0.22 | 0.23 | 0.24 | 0.25 | 0.26 | 343 344 Given the parties place the following orders: 345 | party | market id | side | volume | price | resulting trades | type | tif | 346 | aux1 | ETH/USD.1.1 | buy | 100 | 1000 | 0 | TYPE_LIMIT | TIF_GTC | 347 | referee1 | ETH/USD.1.1 | sell | 100 | 1000 | 1 | TYPE_LIMIT | TIF_GTC | 348 When the following trades should be executed: 349 | buyer | price | size | seller | 350 | aux1 | 1000 | 100 | referee1 | 351 352 # reward factor is 0.21, multiplier is 1 however the maxReferralRewardProportion is set to 0.1 therefore 353 # the actual reward given is 0.1 * 240 = 24 354 Then the following transfers should happen: 355 | from | to | from account | to account | market id | amount | asset | 356 | referee1 | market | ACCOUNT_TYPE_GENERAL | ACCOUNT_TYPE_FEES_MAKER | ETH/USD.1.1 | 68 | USD.1.1 | 357 | referee1 | market | ACCOUNT_TYPE_GENERAL | ACCOUNT_TYPE_FEES_LIQUIDITY | ETH/USD.1.1 | 67 | USD.1.1 | 358 | referee1 | | ACCOUNT_TYPE_GENERAL | ACCOUNT_TYPE_FEES_INFRASTRUCTURE | | 69 | USD.1.1 | 359 | referee1 | | ACCOUNT_TYPE_GENERAL | ACCOUNT_TYPE_PENDING_FEE_REFERRAL_REWARD | | 21 | USD.1.1 | 360 | | referrer1 | ACCOUNT_TYPE_PENDING_FEE_REFERRAL_REWARD | ACCOUNT_TYPE_GENERAL | | 21 | USD.1.1 |