code.vegaprotocol.io/vega@v0.79.0/core/integration/features/verified/0061-REWP-delegation_rewards_genesis.feature (about) 1 Feature: Staking & Delegation - scenarios focusing on initial epoch 2 3 Background: 4 Given the following network parameters are set: 5 | name | value | 6 | reward.asset | VEGA | 7 | validators.epoch.length | 24h | 8 | validators.delegation.minAmount | 10 | 9 | reward.staking.delegation.delegatorShare | 0.883 | 10 | reward.staking.delegation.minimumValidatorStake | 100 | 11 | reward.staking.delegation.maxPayoutPerParticipant | 100000 | 12 | reward.staking.delegation.competitionLevel | 1.1 | 13 | reward.staking.delegation.minValidators | 5 | 14 | reward.staking.delegation.optimalStakeMultiplier | 5.0 | 15 16 And the average block duration is "1" 17 And time is updated to "2021-09-10T00:00:00Z" 18 19 And the validators: 20 | id | staking account balance | 21 | node1 | 1000000 | 22 | node2 | 1000000 | 23 | node3 | 1000000 | 24 | node4 | 1000000 | 25 | node5 | 1000000 | 26 | node6 | 1000000 | 27 | node7 | 1000000 | 28 | node8 | 1000000 | 29 | node9 | 1000000 | 30 | node10 | 1000000 | 31 | node11 | 1000000 | 32 | node12 | 1000000 | 33 | node13 | 1000000 | 34 35 Scenario: No delegation in the first epoch (0061-REWP-additional-tests) 36 37 38 Then the network moves ahead "172804" blocks 39 40 And the parties receive the following reward for epoch 1: 41 | party | asset | amount | 42 | node1 | VEGA | 0 | 43 | node2 | VEGA | 0 | 44 | node3 | VEGA | 0 | 45 | node4 | VEGA | 0 | 46 | node5 | VEGA | 0 | 47 | node6 | VEGA | 0 | 48 | node8 | VEGA | 0 | 49 | node10 | VEGA | 0 | 50 | node11 | VEGA | 0 | 51 | node12 | VEGA | 0 | 52 | node13 | VEGA | 0 | 53 54 Then the network moves ahead "86403" blocks 55 56 And the parties receive the following reward for epoch 2: 57 | party | asset | amount | 58 | node1 | VEGA | 0 | 59 | node2 | VEGA | 0 | 60 | node3 | VEGA | 0 | 61 | node4 | VEGA | 0 | 62 | node5 | VEGA | 0 | 63 | node6 | VEGA | 0 | 64 | node8 | VEGA | 0 | 65 | node10 | VEGA | 0 | 66 | node11 | VEGA | 0 | 67 | node12 | VEGA | 0 | 68 | node13 | VEGA | 0 | 69 70 And the parties deposit on asset's general account the following amount: 71 | party | asset | amount | 72 | party1 | VEGA | 111000 | 73 74 And the parties deposit on staking account the following amount: 75 | party | asset | amount | 76 | party1 | VEGA | 111000 | 77 78 #set up the self delegation of the validators (number of validators < min. validators parameter) 79 Then the parties submit the following delegations: 80 | party | node id | amount | 81 | node1 | node1 | 11000 | 82 | node2 | node2 | 12000 | 83 | node3 | node3 | 13000 | 84 | node4 | node4 | 99 | 85 | party1 | node4 | 111000 | 86 87 And the parties should have the following delegation balances for epoch 4: 88 | party | node id | amount | 89 | node1 | node1 | 11000 | 90 | node2 | node2 | 12000 | 91 | node3 | node3 | 13000 | 92 | node4 | node4 | 99 | 93 | party1 | node4 | 111000 | 94 95 And the parties deposit on asset's general account the following amount: 96 | party | asset | amount | 97 | f0b40ebdc5b92cf2cf82ff5d0c3f94085d23d5ec2d37d0b929e177c6d4d37e4c | VEGA | 100000 | 98 And the parties submit the following one off transfers: 99 | id | from | from_account_type | to | to_account_type | asset | amount | delivery_time | 100 | 1 | f0b40ebdc5b92cf2cf82ff5d0c3f94085d23d5ec2d37d0b929e177c6d4d37e4c | ACCOUNT_TYPE_GENERAL | 0000000000000000000000000000000000000000000000000000000000000000 | ACCOUNT_TYPE_GLOBAL_REWARD | VEGA | 50000 | 2021-09-10T00:00:01Z | 101 Then the network moves ahead "172804" blocks 102 103 And the parties should have the following delegation balances for epoch 4: 104 | party | node id | amount | 105 | node1 | node1 | 11000 | 106 | node2 | node2 | 12000 | 107 | node3 | node3 | 13000 | 108 | node4 | node4 | 99 | 109 | party1 | node4 | 111000 | 110 111 # val score = max(0, (valStake - penaltyFlatAmt - penaltyDownAmt) / totalStake) 112 # node1 score = (11000 - 0 - 0)/ 147099 = 0.07478 113 # node2 score = (12000 - 0 - 0)/ 147099 = 0.08158 114 # node3 score = (13000 - 0 - 0)/ 147099 = 0.08462 115 # node4 score = max(0, (111099 - 98652.16154 - 48,864.80769) / 147099) = 0 116 Then the validators should have the following val scores for epoch 4: 117 | node id | validator score | normalised score | 118 | node1 | 0.07478 | 0.31032 | 119 | node2 | 0.08158 | 0.33854 | 120 | node3 | 0.08462 | 0.35114 | 121 | node4 | 0.00000 | 0.00000 | 122 | node5 | 0.00000 | 0.00000 | 123 | node6 | 0.00000 | 0.00000 | 124 | node7 | 0.00000 | 0.00000 | 125 | node8 | 0.00000 | 0.00000 | 126 | node9 | 0.00000 | 0.00000 | 127 | node10 | 0.00000 | 0.00000 | 128 | node11 | 0.00000 | 0.00000 | 129 | node12 | 0.00000 | 0.00000 | 130 | node13 | 0.00000 | 0.00000 | 131 132 # party1 is delegating to node 4 which has a 0 valScore so they get nothing 133 # node1 gets 0.31032 of the reward 134 # node2 gets 0.33854 of the reward 135 # node3 gets 0.35114 of the reward 136 And the parties receive the following reward for epoch 4: 137 | party | asset | amount | 138 | party1 | VEGA | 0 | 139 | node1 | VEGA | 15516 | 140 | node2 | VEGA | 16926 | 141 | node3 | VEGA | 17557 | 142 | node4 | VEGA | 0 | 143 | node5 | VEGA | 0 | 144 | node6 | VEGA | 0 | 145 | node8 | VEGA | 0 | 146 | node10 | VEGA | 0 | 147 | node11 | VEGA | 0 | 148 | node12 | VEGA | 0 | 149 | node13 | VEGA | 0 | 150 151 Scenario: Only a few validators self-delegate, no delegation (0061-REWP-additional-tests) 152 153 #set up the self delegation of the validators (number of validators = min. validators parameter) 154 Then the parties submit the following delegations: 155 | party | node id | amount | 156 | node1 | node1 | 11000 | 157 | node2 | node2 | 12000 | 158 | node3 | node3 | 13000 | 159 | node4 | node4 | 14000 | 160 | node5 | node5 | 15000 | 161 162 And the parties deposit on asset's general account the following amount: 163 | party | asset | amount | 164 | f0b40ebdc5b92cf2cf82ff5d0c3f94085d23d5ec2d37d0b929e177c6d4d37e4c | VEGA | 100000 | 165 And the parties submit the following one off transfers: 166 | id | from | from_account_type | to | to_account_type | asset | amount | delivery_time | 167 | 1 | f0b40ebdc5b92cf2cf82ff5d0c3f94085d23d5ec2d37d0b929e177c6d4d37e4c | ACCOUNT_TYPE_GENERAL | 0000000000000000000000000000000000000000000000000000000000000000 | ACCOUNT_TYPE_GLOBAL_REWARD | VEGA | 50000 | 2021-09-10T00:00:01Z | 168 169 #complete the initial epoch for delegation to take effect 170 Then the network moves ahead "172804" blocks 171 172 # optStake = 65000/(max(5, 13/1.1)) = 5500 173 # val score = max(0, (valStake - penaltyFlatAmt - penaltyDownAmt) / totalStake) 174 # node1 score = (11000 - 5500 - 0)/ 65000 = 0.08462 175 # node2 score = (12000 - 6500 - 0)/ 65000 = 0.08462 176 # node3 score = (13000 - 7500 - 0)/ 65000 = 0.08462 177 # node4 score = (14000 - 8500 - 0)/ 65000 = 0.08462 178 # node5 score = (15000 - 9500 - 0)/ 65000 = 0.08462 179 Then the validators should have the following val scores for epoch 1: 180 | node id | validator score | normalised score | 181 | node1 | 0.08462 | 0.20000 | 182 | node2 | 0.08462 | 0.20000 | 183 | node3 | 0.08462 | 0.20000 | 184 | node4 | 0.08462 | 0.20000 | 185 | node5 | 0.08462 | 0.20000 | 186 | node6 | 0.00000 | 0.00000 | 187 | node7 | 0.00000 | 0.00000 | 188 | node8 | 0.00000 | 0.00000 | 189 | node9 | 0.00000 | 0.00000 | 190 | node10 | 0.00000 | 0.00000 | 191 | node11 | 0.00000 | 0.00000 | 192 | node12 | 0.00000 | 0.00000 | 193 | node13 | 0.00000 | 0.00000 | 194 195 #each node gets 0.2 of the reward, only self delegation in place 196 And the parties receive the following reward for epoch 1: 197 | party | asset | amount | 198 | node1 | VEGA | 10000 | 199 | node2 | VEGA | 10000 | 200 | node3 | VEGA | 10000 | 201 | node4 | VEGA | 10000 | 202 | node5 | VEGA | 10000 | 203 | node6 | VEGA | 0 | 204 | node8 | VEGA | 0 | 205 | node10 | VEGA | 0 | 206 | node11 | VEGA | 0 | 207 | node12 | VEGA | 0 | 208 | node13 | VEGA | 0 | 209 210 Scenario: Only a few validators self-delegate, small delegation to a single validator (with own stake). Some validators delegate over max delegatable amount (0061-REWP-additional-tests) 211 212 And the parties deposit on asset's general account the following amount: 213 | party | asset | amount | 214 | party1 | VEGA | 10 | 215 | party2 | VEGA | 50 | 216 | party3 | VEGA | 200 | 217 218 And the parties deposit on staking account the following amount: 219 | party | asset | amount | 220 | party1 | VEGA | 10 | 221 | party2 | VEGA | 50 | 222 | party3 | VEGA | 200 | 223 224 Then the parties submit the following delegations: 225 | party | node id | amount | 226 | party1 | node1 | 10 | 227 | party2 | node1 | 50 | 228 | party3 | node1 | 200 | 229 230 #set up the self delegation of the validators (number of validators = min. validators parameter) 231 Then the parties submit the following delegations: 232 | party | node id | amount | 233 | node1 | node1 | 100 | 234 | node2 | node2 | 200 | 235 | node3 | node3 | 300 | 236 | node4 | node4 | 400 | 237 | node5 | node5 | 500 | 238 239 And the parties deposit on asset's general account the following amount: 240 | party | asset | amount | 241 | f0b40ebdc5b92cf2cf82ff5d0c3f94085d23d5ec2d37d0b929e177c6d4d37e4c | VEGA | 100000 | 242 And the parties submit the following one off transfers: 243 | id | from | from_account_type | to | to_account_type | asset | amount | delivery_time | 244 | 1 | f0b40ebdc5b92cf2cf82ff5d0c3f94085d23d5ec2d37d0b929e177c6d4d37e4c | ACCOUNT_TYPE_GENERAL | 0000000000000000000000000000000000000000000000000000000000000000 | ACCOUNT_TYPE_GLOBAL_REWARD | VEGA | 50000 | 2021-09-10T00:00:01Z | 245 246 #complete the initial epoch for delegation to take effect 247 Then the network moves ahead "172804" blocks 248 249 And the parties should have the following delegation balances for epoch 1: 250 | party | node id | amount | 251 | node1 | node1 | 100 | 252 | node2 | node2 | 200 | 253 | node3 | node3 | 300 | 254 | node4 | node4 | 400 | 255 | node5 | node5 | 500 | 256 | party1 | node1 | 10 | 257 | party2 | node1 | 50 | 258 | party3 | node1 | 200 | 259 260 # totalStale = 1760 261 # optStake = 1760/(max(5, 13/1.1)) = 148.9230769231 262 # val score = max(0, (valStake - penaltyFlatAmt - penaltyDownAmt) / totalStake) 263 # node1 score = (360 - 211.0769230769 - 0)/ 1760 = 0.08462 264 # node2 score = (200 - 51.0769230769 - 0)/ 1760 = 0.08462 265 # node3 score = (300 - 151.0769230769 - 0)/ 1760 = 0.08462 266 # node4 score = (400 - 251.0769230769 - 0)/ 1760 = 0.08462 267 # node5 score = (500 - 351.0769230769 - 0)/ 1760 = 0.08462 268 Then the validators should have the following val scores for epoch 1: 269 | node id | validator score | normalised score | 270 | node1 | 0.08462 | 0.20000 | 271 | node2 | 0.08462 | 0.20000 | 272 | node3 | 0.08462 | 0.20000 | 273 | node4 | 0.08462 | 0.20000 | 274 | node5 | 0.08462 | 0.20000 | 275 | node6 | 0.00000 | 0.00000 | 276 | node7 | 0.00000 | 0.00000 | 277 | node8 | 0.00000 | 0.00000 | 278 | node9 | 0.00000 | 0.00000 | 279 | node10 | 0.00000 | 0.00000 | 280 | node11 | 0.00000 | 0.00000 | 281 | node12 | 0.00000 | 0.00000 | 282 | node13 | 0.00000 | 0.00000 | 283 284 # node 1 and its delegators receive 10k 285 # delegators to node1 receive 0.883 * 260 / 360 * 10000 = 6377 286 # party1 gets 10/260 * 6377 = 245 287 # party1 gets 50/260 * 6377 = 1126 288 # party1 gets 200/260 * 6377 = 4905 289 # node1 takes the rest = 3622 290 # node 2, 3, 4, 5 receive 0.2 of the reward each - only self delegation 291 And the parties receive the following reward for epoch 1: 292 | party | asset | amount | 293 | party1 | VEGA | 245 | 294 | party2 | VEGA | 1226 | 295 | party3 | VEGA | 4905 | 296 | node1 | VEGA | 3622 | 297 | node2 | VEGA | 10000 | 298 | node3 | VEGA | 10000 | 299 | node4 | VEGA | 10000 | 300 | node5 | VEGA | 10000 | 301 | node6 | VEGA | 0 | 302 | node7 | VEGA | 0 | 303 | node8 | VEGA | 0 | 304 | node10 | VEGA | 0 | 305 | node11 | VEGA | 0 | 306 | node12 | VEGA | 0 | 307 | node13 | VEGA | 0 | 308 309 Scenario: Only a few validators self-delegate, significant delegation to a three validators only (one w/o own stake) (0061-REWP-additional-tests) 310 311 And the parties deposit on asset's general account the following amount: 312 | party | asset | amount | 313 | party1 | VEGA | 111000 | 314 | party2 | VEGA | 222000 | 315 | party3 | VEGA | 333000 | 316 | party4 | VEGA | 444000 | 317 | party5 | VEGA | 555000 | 318 319 And the parties deposit on staking account the following amount: 320 | party | asset | amount | 321 | party1 | VEGA | 111000 | 322 | party2 | VEGA | 222000 | 323 | party3 | VEGA | 333000 | 324 | party4 | VEGA | 444000 | 325 | party5 | VEGA | 555000 | 326 327 Then the parties submit the following delegations: 328 | party | node id | amount | 329 | node1 | node1 | 11000 | 330 | node2 | node2 | 12000 | 331 | node3 | node3 | 13000 | 332 | node4 | node4 | 14000 | 333 | node5 | node5 | 15000 | 334 | node6 | node6 | 16000 | 335 336 Then the parties submit the following delegations: 337 | party | node id | amount | 338 | party1 | node1 | 111000 | 339 | party2 | node2 | 111000 | 340 | party2 | node7 | 111000 | 341 | party3 | node1 | 111000 | 342 | party3 | node2 | 111000 | 343 | party3 | node7 | 111000 | 344 | party4 | node1 | 222000 | 345 | party4 | node7 | 222000 | 346 | party5 | node2 | 555000 | 347 348 #set up the self delegation of the validators (number of validators > min. validators parameter) 349 And the parties should have the following delegation balances for epoch 1: 350 | party | node id | amount | 351 | node1 | node1 | 11000 | 352 | node2 | node2 | 12000 | 353 | node3 | node3 | 13000 | 354 | node4 | node4 | 14000 | 355 | node5 | node5 | 15000 | 356 | node6 | node6 | 16000 | 357 | node7 | node7 | 0 | 358 | party1 | node1 | 111000 | 359 | party2 | node2 | 111000 | 360 | party2 | node7 | 111000 | 361 | party3 | node1 | 111000 | 362 | party3 | node2 | 111000 | 363 | party3 | node7 | 111000 | 364 | party4 | node1 | 222000 | 365 | party4 | node7 | 222000 | 366 | party5 | node2 | 555000 | 367 368 And the parties deposit on asset's general account the following amount: 369 | party | asset | amount | 370 | f0b40ebdc5b92cf2cf82ff5d0c3f94085d23d5ec2d37d0b929e177c6d4d37e4c | VEGA | 100000 | 371 And the parties submit the following one off transfers: 372 | id | from | from_account_type | to | to_account_type | asset | amount | delivery_time | 373 | 1 | f0b40ebdc5b92cf2cf82ff5d0c3f94085d23d5ec2d37d0b929e177c6d4d37e4c | ACCOUNT_TYPE_GENERAL | 0000000000000000000000000000000000000000000000000000000000000000 | ACCOUNT_TYPE_GLOBAL_REWARD | VEGA | 50000 | 2021-09-10T00:00:01Z | 374 375 #complete the initial epoch for delegation to take effect 376 Then the network moves ahead "172804" blocks 377 378 And the parties should have the following delegation balances for epoch 1: 379 | party | node id | amount | 380 | node1 | node1 | 11000 | 381 | node2 | node2 | 12000 | 382 | node3 | node3 | 13000 | 383 | node4 | node4 | 14000 | 384 | node5 | node5 | 15000 | 385 | node6 | node6 | 16000 | 386 | node7 | node7 | 0 | 387 | party1 | node1 | 111000 | 388 | party2 | node2 | 111000 | 389 | party2 | node7 | 111000 | 390 | party3 | node1 | 111000 | 391 | party3 | node2 | 111000 | 392 | party3 | node7 | 111000 | 393 | party4 | node1 | 222000 | 394 | party4 | node7 | 222000 | 395 | party5 | node2 | 555000 | 396 397 # totalStale = 1,746,000 398 # optStake = 1,746,000/(max(5, 13/1.1)) = 147,738.4615384615 399 # val score = max(0, (valStake - penaltyFlatAmt - penaltyDownAmt) / totalStake) 400 # node1 score = (455000 - 307,261.5384615385 - 0)/ 1746000 = 0.08462 401 # node2 score = (789000 - 641,261.5384615385 - 50,307.6923076925)/ 1746000 = 0.05580 402 # node3 score = (13000 - 0 - 0)/ 1746000 = 0.00745 403 # node4 score = (14000 - 0 - 0)/ 1746000 = 0.00802 404 # node5 score = (15000 - 0 - 0)/ 1746000 = 0.00859 405 # node6 score = (16000 - 0 - 0)/ 1746000 = 0.00916 406 # node7 score = 0 (self stake less than min stake) 407 Then the validators should have the following val scores for epoch 1: 408 | node id | validator score | normalised score | 409 | node1 | 0.08462 | 0.48731 | 410 | node2 | 0.05580 | 0.32137 | 411 | node3 | 0.00745 | 0.04288 | 412 | node4 | 0.00802 | 0.04618 | 413 | node5 | 0.00859 | 0.04948 | 414 | node6 | 0.00916 | 0.05278 | 415 | node7 | 0.00000 | 0.00000 | 416 | node8 | 0.00000 | 0.00000 | 417 | node9 | 0.00000 | 0.00000 | 418 | node10 | 0.00000 | 0.00000 | 419 | node11 | 0.00000 | 0.00000 | 420 | node12 | 0.00000 | 0.00000 | 421 | node13 | 0.00000 | 0.00000 | 422 423 And the parties receive the following reward for epoch 1: 424 | party | asset | amount | 425 | party1 | VEGA | 5248 | 426 | party2 | VEGA | 1996 | 427 | party3 | VEGA | 7244 | 428 | node1 | VEGA | 3370 | 429 | node2 | VEGA | 2095 | 430 | node3 | VEGA | 2144 | 431 | node4 | VEGA | 2308 | 432 | node5 | VEGA | 2473 | 433 | node6 | VEGA | 2638 | 434 | node7 | VEGA | 0 | 435 | node8 | VEGA | 0 | 436 | node10 | VEGA | 0 | 437 | node11 | VEGA | 0 | 438 | node12 | VEGA | 0 | 439 | node13 | VEGA | 0 | 440 441 Scenario: Validator owns more tokens than the minimumValidatorStake, but most of them are delegated to a different validator, then withdraws so that he owns less than minimumValidatorStake (0061-REWP-additional-tests) 442 443 And the parties deposit on asset's general account the following amount: 444 | party | asset | amount | 445 | party1 | VEGA | 111000 | 446 | party2 | VEGA | 222000 | 447 448 And the parties deposit on staking account the following amount: 449 | party | asset | amount | 450 | party1 | VEGA | 111000 | 451 | party2 | VEGA | 222000 | 452 453 Then the parties submit the following delegations: 454 | party | node id | amount | 455 | node1 | node1 | 11000 | 456 | node2 | node2 | 20 | 457 | node3 | node3 | 30 | 458 | node4 | node4 | 14000 | 459 | node5 | node5 | 15000 | 460 | node6 | node6 | 16000 | 461 | node8 | node8 | 110 | 462 | node2 | node7 | 180 | 463 | node3 | node7 | 3000 | 464 465 Then the parties submit the following delegations: 466 | party | node id | amount | 467 | party1 | node1 | 111000 | 468 | party2 | node2 | 222000 | 469 470 #set up the self delegation of the validators (number of validators > min. validators parameter) 471 And the parties should have the following delegation balances for epoch 1: 472 | party | node id | amount | 473 | node1 | node1 | 11000 | 474 | node2 | node2 | 20 | 475 | node3 | node3 | 30 | 476 | node4 | node4 | 14000 | 477 | node5 | node5 | 15000 | 478 | node6 | node6 | 16000 | 479 | node8 | node8 | 110 | 480 | node2 | node7 | 180 | 481 | node3 | node7 | 3000 | 482 | party1 | node1 | 111000 | 483 | party2 | node2 | 222000 | 484 485 And the parties deposit on asset's general account the following amount: 486 | party | asset | amount | 487 | f0b40ebdc5b92cf2cf82ff5d0c3f94085d23d5ec2d37d0b929e177c6d4d37e4c | VEGA | 100000 | 488 And the parties submit the following one off transfers: 489 | id | from | from_account_type | to | to_account_type | asset | amount | delivery_time | 490 | 1 | f0b40ebdc5b92cf2cf82ff5d0c3f94085d23d5ec2d37d0b929e177c6d4d37e4c | ACCOUNT_TYPE_GENERAL | 0000000000000000000000000000000000000000000000000000000000000000 | ACCOUNT_TYPE_GLOBAL_REWARD | VEGA | 50000 | 2021-09-10T00:00:01Z | 491 492 #complete the initial epoch for delegation to take effect 493 Then the network moves ahead "172804" blocks 494 495 And the parties should have the following delegation balances for epoch 1: 496 | party | node id | amount | 497 | node1 | node1 | 11000 | 498 | node2 | node2 | 20 | 499 | node3 | node3 | 30 | 500 | node4 | node4 | 14000 | 501 | node5 | node5 | 15000 | 502 | node6 | node6 | 16000 | 503 | node8 | node8 | 110 | 504 | node2 | node7 | 180 | 505 | node3 | node7 | 3000 | 506 | party1 | node1 | 111000 | 507 | party2 | node2 | 222000 | 508 509 # totalStale = 392,340 510 # optStake = 392,340/(max(5, 13/1.1)) = 33,198 511 # val score = max(0, (valStake - penaltyFlatAmt - penaltyDownAmt) / totalStake) 512 # node1 score = (122000 - 88802 - 0)/ 392340 = 0.08462 513 # node2 score = max(0, (222020 - 188,822 - 56,030)/ 392340) = 0 514 # node3 score = (30 - 0 - 0)/ 392340 = 0.00008 515 # node4 score = (14000 - 0 - 0)/ 392340 = 0.03568 516 # node5 score = (15000 - 0 - 0)/ 392340 = 0.03823 517 # node6 score = (16000 - 0 - 0)/ 392340 = 0.04078 518 # node7 score = (3180 - 0 - 0)/ 392340 = 0.00811 519 # node8 score = (110 - 0 - 0)/ 392340 = 0.00028 520 Then the validators should have the following val scores for epoch 1: 521 | node id | validator score | normalised score | 522 | node1 | 0.08462 | 0.42394 | 523 | node2 | 0.00000 | 0.00000 | #no self stake 524 | node3 | 0.00000 | 0.00000 | #no self stake 525 | node4 | 0.03568 | 0.17878 | 526 | node5 | 0.03823 | 0.19155 | 527 | node6 | 0.04078 | 0.20432 | 528 | node7 | 0.00000 | 0.00000 | ֱֱ#no self stake 529 | node8 | 0.00028 | 0.00140 | 530 | node9 | 0.00000 | 0.00000 | 531 | node10 | 0.00000 | 0.00000 | 532 | node11 | 0.00000 | 0.00000 | 533 | node12 | 0.00000 | 0.00000 | 534 | node13 | 0.00000 | 0.00000 | 535 536 And the parties receive the following reward for epoch 1: 537 | party | asset | amount | 538 | party1 | VEGA | 17029 | 539 | party2 | VEGA | 0 | 540 | node1 | VEGA | 4167 | 541 | node2 | VEGA | 0 | 542 | node3 | VEGA | 0 | 543 | node4 | VEGA | 8939 | 544 | node5 | VEGA | 9577 | 545 | node6 | VEGA | 10216 | 546 | node7 | VEGA | 0 | 547 | node8 | VEGA | 70 | 548 | node10 | VEGA | 0 | 549 | node11 | VEGA | 0 | 550 | node12 | VEGA | 0 | 551 | node13 | VEGA | 0 | 552 553 # Leave 20 in the account 554 Given the parties withdraw from staking account the following amount: 555 | party | asset | amount | 556 | node2 | VEGA | 999980 | 557 558 And the parties submit the following undelegations: 559 | party | node id | amount | when | 560 | node3 | node7 | 2900 | now | 561 | node8 | node8 | 60 | now | 562 563 Then the network moves ahead "1" blocks 564 565 # Delegation changes due to undelegation are immediate, need to complete the epoch for withdrawal to get registered 566 And the parties should have the following delegation balances for epoch 2: 567 | party | node id | amount | 568 | node1 | node1 | 11000 | 569 | node2 | node2 | 20 | 570 | node3 | node3 | 30 | 571 | node4 | node4 | 14000 | 572 | node5 | node5 | 15000 | 573 | node6 | node6 | 16000 | 574 | node8 | node8 | 50 | 575 | node2 | node7 | 180 | 576 | node3 | node7 | 100 | 577 | party1 | node1 | 111000 | 578 | party2 | node2 | 222000 | 579 580 Then the network moves ahead "86401" blocks 581 582 And the parties should have the following delegation balances for epoch 2: 583 | party | node id | amount | 584 | node1 | node1 | 11000 | 585 | node2 | node2 | 2 | 586 | node3 | node3 | 30 | 587 | node4 | node4 | 14000 | 588 | node5 | node5 | 15000 | 589 | node6 | node6 | 16000 | 590 | node8 | node8 | 50 | 591 | node2 | node7 | 18 | 592 | node3 | node7 | 100 | 593 | party1 | node1 | 111000 | 594 | party2 | node2 | 222000 | 595 596 Scenario: In presence of max delegation cap self-delegation gets priorities even if submitted later (0061-REWP-additional-tests) 597 598 Given the parties deposit on asset's general account the following amount: 599 | party | asset | amount | 600 | party1 | VEGA | 111000 | 601 | party2 | VEGA | 222000 | 602 603 And the parties deposit on staking account the following amount: 604 | party | asset | amount | 605 | party1 | VEGA | 111000 | 606 | party2 | VEGA | 222000 | 607 608 Then the parties submit the following delegations: 609 | party | node id | amount | 610 | party1 | node1 | 111000 | 611 | party2 | node2 | 222000 | 612 613 Then the network moves ahead "1" blocks 614 615 Then the parties submit the following delegations: 616 | party | node id | amount | 617 | node1 | node1 | 100000 | 618 | node2 | node2 | 12000 | 619 | node3 | node3 | 13000 | 620 | node4 | node4 | 14000 | 621 | node5 | node5 | 15000 | 622 | node6 | node6 | 16000 | 623 624 Then the network moves ahead "1" blocks 625 626 And the parties should have the following delegation balances for epoch 1: 627 | party | node id | amount | 628 | node1 | node1 | 100000 | 629 | node2 | node2 | 12000 | 630 | node3 | node3 | 13000 | 631 | node4 | node4 | 14000 | 632 | node5 | node5 | 15000 | 633 | node6 | node6 | 16000 | 634 | party1 | node1 | 111000 | 635 | party2 | node2 | 222000 | 636 637 And the parties deposit on asset's general account the following amount: 638 | party | asset | amount | 639 | f0b40ebdc5b92cf2cf82ff5d0c3f94085d23d5ec2d37d0b929e177c6d4d37e4c | VEGA | 100000 | 640 And the parties submit the following one off transfers: 641 | id | from | from_account_type | to | to_account_type | asset | amount | delivery_time | 642 | 1 | f0b40ebdc5b92cf2cf82ff5d0c3f94085d23d5ec2d37d0b929e177c6d4d37e4c | ACCOUNT_TYPE_GENERAL | 0000000000000000000000000000000000000000000000000000000000000000 | ACCOUNT_TYPE_GLOBAL_REWARD | VEGA | 50000 | 2021-09-10T00:00:01Z | 643 644 #complete the initial epoch for delegation to take effect 645 Then the network moves ahead "172802" blocks 646 647 And the parties should have the following delegation balances for epoch 1: 648 | party | node id | amount | 649 | node1 | node1 | 100000 | 650 | node2 | node2 | 12000 | 651 | node3 | node3 | 13000 | 652 | node4 | node4 | 14000 | 653 | node5 | node5 | 15000 | 654 | node6 | node6 | 16000 | 655 | party1 | node1 | 111000 | 656 | party2 | node2 | 222000 | 657 658 # totalStale = 503000 659 # optStake = 503000/(max(5, 13/1.1)) = 42,561.5384615385 660 # val score = max(0, (valStake - penaltyFlatAmt - penaltyDownAmt) / totalStake) 661 # node1 score = (211000 - 168,438.4615384615 - 0)/ 503000 = 0.08462 662 # node2 score = (234000 - 191,438.4615384615 - 21,192.3076923075)/ 503000 = 0.04248 663 # node3 score = (13000 - 0 - 0)/ 503000 = 0.02584 664 # node4 score = (14000 - 0 - 0)/ 503000 = 0.02783 665 # node5 score = (15000 - 0 - 0)/ 503000 = 0.02982 666 # node6 score = (16000 - 0 - 0)/ 503000 = 0.03181 667 Then the validators should have the following val scores for epoch 1: 668 | node id | validator score | normalised score | 669 | node1 | 0.08462 | 0.34906 | 670 | node2 | 0.04248 | 0.17526 | 671 | node3 | 0.02584 | 0.10662 | 672 | node4 | 0.02783 | 0.11482 | 673 | node5 | 0.02982 | 0.12302 | 674 | node6 | 0.03181 | 0.13122 | 675 | node7 | 0.00000 | 0.00000 | 676 | node8 | 0.00000 | 0.00000 | 677 | node9 | 0.00000 | 0.00000 | 678 | node10 | 0.00000 | 0.00000 | 679 | node11 | 0.00000 | 0.00000 | 680 | node12 | 0.00000 | 0.00000 | 681 | node13 | 0.00000 | 0.00000 | 682 683 And the parties receive the following reward for epoch 1: 684 | party | asset | amount | 685 | party1 | VEGA | 8107 | 686 | party2 | VEGA | 7340 | 687 | node1 | VEGA | 9345 | 688 | node2 | VEGA | 1422 | 689 | node3 | VEGA | 5330 | 690 | node4 | VEGA | 5740 | 691 | node5 | VEGA | 6151 | 692 | node6 | VEGA | 6561 | 693 | node7 | VEGA | 0 | 694 | node8 | VEGA | 0 | 695 | node10 | VEGA | 0 | 696 | node11 | VEGA | 0 | 697 | node12 | VEGA | 0 | 698 | node13 | VEGA | 0 | 699 700 Scenario: Validator subset can self-delegate as to push themselves below min validator stake due to max delegatable amount cap (0061-REWP-additional-tests) 701 702 Then the parties submit the following delegations: 703 | party | node id | amount | 704 | node1 | node1 | 100 | 705 | node2 | node2 | 200 | 706 | node3 | node3 | 300 | 707 708 Then the network moves ahead "1" blocks 709 710 And the parties should have the following delegation balances for epoch 1: 711 | party | node id | amount | 712 | node1 | node1 | 100 | 713 | node2 | node2 | 200 | 714 | node3 | node3 | 300 | 715 | node4 | node4 | 0 | 716 717 And the parties deposit on asset's general account the following amount: 718 | party | asset | amount | 719 | f0b40ebdc5b92cf2cf82ff5d0c3f94085d23d5ec2d37d0b929e177c6d4d37e4c | VEGA | 100000 | 720 And the parties submit the following one off transfers: 721 | id | from | from_account_type | to | to_account_type | asset | amount | delivery_time | 722 | 1 | f0b40ebdc5b92cf2cf82ff5d0c3f94085d23d5ec2d37d0b929e177c6d4d37e4c | ACCOUNT_TYPE_GENERAL | 0000000000000000000000000000000000000000000000000000000000000000 | ACCOUNT_TYPE_GLOBAL_REWARD | VEGA | 100000 | 2021-08-26T00:00:01Z | 723 724 #complete the initial epoch for delegation to take effect 725 Then the network moves ahead "172802" blocks 726 727 And the parties should have the following delegation balances for epoch 1: 728 | party | node id | amount | 729 | node1 | node1 | 100 | 730 | node2 | node2 | 200 | 731 | node3 | node3 | 300 | 732 | node4 | node4 | 0 | 733 734 And the parties receive the following reward for epoch 1: 735 | party | asset | amount | 736 | node1 | VEGA | 0 | 737 | node2 | VEGA | 0 | 738 | node3 | VEGA | 0 | 739 | node4 | VEGA | 0 | 740 | node5 | VEGA | 0 | 741 | node6 | VEGA | 0 | 742 | node7 | VEGA | 0 | 743 | node8 | VEGA | 0 | 744 | node10 | VEGA | 0 | 745 | node11 | VEGA | 0 | 746 | node12 | VEGA | 0 | 747 | node13 | VEGA | 0 |