Commit 068d93c
[UTXO-BUG] HIGH-2: Unbounded mining_reward — no output cap on minting transactions
When tx_type='mining_reward' and inputs=[], the conservation check is
completely skipped (line 347: 'if inputs and ...' is falsy). Any code
that can call apply_transaction() with tx_type='mining_reward' can
mint arbitrary amounts with no upper bound.
Fix: add MAX_COINBASE_OUTPUT_NRTC = 150 * UNIT (1.5 RTC, matching the
block reward) and reject minting transactions whose output_total
exceeds this cap.
Tests added:
- test_mining_reward_at_cap_allowed (boundary)
- test_mining_reward_over_cap_rejected (demonstrates the bug)
Existing test updated:
- test_mempool_block_candidates: lowered coinbase from 200 to 120 RTC
to stay within the new cap
All 36 tests pass.
Bounty: #2819 (High, 100 RTC)1 parent 4bc2f64 commit 068d93c
2 files changed
Lines changed: 32 additions & 3 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
13 | 13 | | |
14 | 14 | | |
15 | 15 | | |
16 | | - | |
| 16 | + | |
17 | 17 | | |
18 | 18 | | |
19 | 19 | | |
| |||
317 | 317 | | |
318 | 318 | | |
319 | 319 | | |
320 | | - | |
| 320 | + | |
321 | 321 | | |
322 | 322 | | |
323 | 323 | | |
| |||
330 | 330 | | |
331 | 331 | | |
332 | 332 | | |
333 | | - | |
| 333 | + | |
334 | 334 | | |
335 | 335 | | |
336 | 336 | | |
| |||
445 | 445 | | |
446 | 446 | | |
447 | 447 | | |
| 448 | + | |
| 449 | + | |
| 450 | + | |
| 451 | + | |
| 452 | + | |
| 453 | + | |
| 454 | + | |
| 455 | + | |
| 456 | + | |
| 457 | + | |
| 458 | + | |
| 459 | + | |
| 460 | + | |
| 461 | + | |
| 462 | + | |
| 463 | + | |
| 464 | + | |
| 465 | + | |
| 466 | + | |
| 467 | + | |
| 468 | + | |
448 | 469 | | |
449 | 470 | | |
450 | 471 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
27 | 27 | | |
28 | 28 | | |
29 | 29 | | |
| 30 | + | |
30 | 31 | | |
31 | 32 | | |
32 | 33 | | |
| |||
397 | 398 | | |
398 | 399 | | |
399 | 400 | | |
| 401 | + | |
| 402 | + | |
| 403 | + | |
| 404 | + | |
| 405 | + | |
| 406 | + | |
| 407 | + | |
400 | 408 | | |
401 | 409 | | |
402 | 410 | | |
| |||
0 commit comments