|
27 | 27 | DATA_GASPRICE_UPDATE_FRACTION = uint64(3338477) |
28 | 28 |
|
29 | 29 | BLOB_COMMITMENT_VERSION_KZG = byte(0x01) |
| 30 | + |
| 31 | + // Engine API errors |
| 32 | + INVALID_PARAMS_ERROR = pInt(-32602) |
| 33 | + UNSUPPORTED_FORK_ERROR = pInt(-38005) |
30 | 34 | ) |
31 | 35 |
|
32 | 36 | // Precalculate the first data gas cost increase |
@@ -510,48 +514,212 @@ var Tests = []test.SpecInterface{ |
510 | 514 | }, |
511 | 515 | }, |
512 | 516 | }, |
513 | | - // NewPayload Version Negative Tests |
| 517 | + |
| 518 | + // NewPayloadV3 Before Cancun, Negative Tests |
514 | 519 | &BlobsBaseSpec{ |
| 520 | + Spec: test.Spec{ |
| 521 | + Name: "NewPayloadV3 Before Cancun, Nil Data Fields, Nil Versioned Hashes", |
| 522 | + About: ` |
| 523 | + Test sending NewPayloadV3 Before Cancun with: |
| 524 | + - nil ExcessDataGas |
| 525 | + - nil DataGasUsed |
| 526 | + - nil Versioned Hashes Array |
| 527 | + `, |
| 528 | + }, |
515 | 529 |
|
| 530 | + CancunForkHeight: 2, |
| 531 | + |
| 532 | + TestSequence: TestSequence{ |
| 533 | + NewPayloads{ |
| 534 | + ExpectedIncludedBlobCount: 0, |
| 535 | + Version: 3, |
| 536 | + VersionedHashes: &VersionedHashes{ |
| 537 | + Blobs: nil, |
| 538 | + }, |
| 539 | + // On DEVNET 8: |
| 540 | + // ExpectedError: INVALID_PARAMS_ERROR, |
| 541 | + }, |
| 542 | + }, |
| 543 | + }, |
| 544 | + &BlobsBaseSpec{ |
516 | 545 | Spec: test.Spec{ |
517 | | - Name: "NewPayloadV2 After Cancun", |
| 546 | + Name: "NewPayloadV3 Before Cancun, Nil ExcessDataGas, 0x00 DataGasUsed, Nil Versioned Hashes", |
518 | 547 | About: ` |
519 | | - Test sending NewPayloadV2 after cancun fork, which |
520 | | - should result in error. |
| 548 | + Test sending NewPayloadV3 Before Cancun with: |
| 549 | + - nil ExcessDataGas |
| 550 | + - 0x00 DataGasUsed |
| 551 | + - nil Versioned Hashes Array |
521 | 552 | `, |
522 | 553 | }, |
523 | 554 |
|
524 | | - // We fork on genesis |
525 | | - CancunForkHeight: 0, |
| 555 | + CancunForkHeight: 2, |
526 | 556 |
|
527 | 557 | TestSequence: TestSequence{ |
528 | | - // Send multiple blob transactions with the same nonce. |
529 | 558 | NewPayloads{ |
530 | 559 | ExpectedIncludedBlobCount: 0, |
531 | | - Version: 2, |
532 | | - ExpectedError: pInt(-38005), |
| 560 | + Version: 3, |
| 561 | + PayloadCustomizer: &helper.CustomPayloadData{ |
| 562 | + DataGasUsed: pUint64(0), |
| 563 | + }, |
| 564 | + ExpectedError: INVALID_PARAMS_ERROR, |
533 | 565 | }, |
534 | 566 | }, |
535 | 567 | }, |
536 | 568 | &BlobsBaseSpec{ |
| 569 | + Spec: test.Spec{ |
| 570 | + Name: "NewPayloadV3 Before Cancun, 0x00 ExcessDataGas, Nil DataGasUsed, Nil Versioned Hashes", |
| 571 | + About: ` |
| 572 | + Test sending NewPayloadV3 Before Cancun with: |
| 573 | + - 0x00 ExcessDataGas |
| 574 | + - nil DataGasUsed |
| 575 | + - nil Versioned Hashes Array |
| 576 | + `, |
| 577 | + }, |
| 578 | + |
| 579 | + CancunForkHeight: 2, |
537 | 580 |
|
| 581 | + TestSequence: TestSequence{ |
| 582 | + NewPayloads{ |
| 583 | + ExpectedIncludedBlobCount: 0, |
| 584 | + Version: 3, |
| 585 | + PayloadCustomizer: &helper.CustomPayloadData{ |
| 586 | + ExcessDataGas: pUint64(0), |
| 587 | + }, |
| 588 | + ExpectedError: INVALID_PARAMS_ERROR, |
| 589 | + }, |
| 590 | + }, |
| 591 | + }, |
| 592 | + /* |
| 593 | + // Unspecified Outcome For Devnet 7, uncomment for Devnet 8 |
| 594 | + &BlobsBaseSpec{ |
| 595 | + Spec: test.Spec{ |
| 596 | + Name: "NewPayloadV3 Before Cancun, Nil Data Fields, Empty Array Versioned Hashes", |
| 597 | + About: ` |
| 598 | + Test sending NewPayloadV3 Before Cancun with: |
| 599 | + - nil ExcessDataGas |
| 600 | + - nil DataGasUsed |
| 601 | + - Empty Versioned Hashes Array |
| 602 | + `, |
| 603 | + }, |
| 604 | +
|
| 605 | + CancunForkHeight: 2, |
| 606 | +
|
| 607 | + TestSequence: TestSequence{ |
| 608 | + NewPayloads{ |
| 609 | + ExpectedIncludedBlobCount: 0, |
| 610 | + Version: 3, |
| 611 | + VersionedHashes: &VersionedHashes{ |
| 612 | + Blobs: []helper.BlobID{}, |
| 613 | + }, |
| 614 | + ExpectedError: INVALID_PARAMS_ERROR, |
| 615 | + }, |
| 616 | + }, |
| 617 | + }, |
| 618 | + */ |
| 619 | + &BlobsBaseSpec{ |
538 | 620 | Spec: test.Spec{ |
539 | | - Name: "NewPayloadV3 Before Cancun", |
| 621 | + Name: "NewPayloadV3 Before Cancun, 0x00 Data Fields, Empty Array Versioned Hashes", |
540 | 622 | About: ` |
541 | | - Test sending NewPayloadV3 before cancun fork, which |
542 | | - should result in error. |
| 623 | + Test sending NewPayloadV3 Before Cancun with: |
| 624 | + - 0x00 ExcessDataGas |
| 625 | + - 0x00 DataGasUsed |
| 626 | + - Empty Versioned Hashes Array |
543 | 627 | `, |
544 | 628 | }, |
545 | 629 |
|
546 | | - // We fork on genesis |
547 | 630 | CancunForkHeight: 2, |
548 | 631 |
|
549 | 632 | TestSequence: TestSequence{ |
550 | | - // Send multiple blob transactions with the same nonce. |
551 | 633 | NewPayloads{ |
552 | 634 | ExpectedIncludedBlobCount: 0, |
553 | 635 | Version: 3, |
554 | | - ExpectedError: pInt(-38005), |
| 636 | + VersionedHashes: &VersionedHashes{ |
| 637 | + Blobs: []helper.BlobID{}, |
| 638 | + }, |
| 639 | + PayloadCustomizer: &helper.CustomPayloadData{ |
| 640 | + ExcessDataGas: pUint64(0), |
| 641 | + DataGasUsed: pUint64(0), |
| 642 | + }, |
| 643 | + ExpectedError: INVALID_PARAMS_ERROR, |
| 644 | + // On DEVNET 8: |
| 645 | + // ExpectedError: UNSUPPORTED_FORK_ERROR, |
| 646 | + }, |
| 647 | + }, |
| 648 | + }, |
| 649 | + |
| 650 | + // NewPayloadV3 After Cancun, Negative Tests |
| 651 | + /* |
| 652 | + // Unspecified Outcome For Devnet 7, uncomment for Devnet 8 |
| 653 | + &BlobsBaseSpec{ |
| 654 | + Spec: test.Spec{ |
| 655 | + Name: "NewPayloadV3 After Cancun, 0x00 Data Fields, Nil Versioned Hashes", |
| 656 | + About: ` |
| 657 | + Test sending NewPayloadV3 After Cancun with: |
| 658 | + - 0x00 ExcessDataGas |
| 659 | + - 0x00 DataGasUsed |
| 660 | + - nil Versioned Hashes Array |
| 661 | + `, |
| 662 | + }, |
| 663 | +
|
| 664 | + CancunForkHeight: 1, |
| 665 | +
|
| 666 | + TestSequence: TestSequence{ |
| 667 | + NewPayloads{ |
| 668 | + ExpectedIncludedBlobCount: 0, |
| 669 | + Version: 3, |
| 670 | + VersionedHashes: &VersionedHashes{ |
| 671 | + Blobs: nil, |
| 672 | + }, |
| 673 | + ExpectedError: INVALID_PARAMS_ERROR, |
| 674 | + }, |
| 675 | + }, |
| 676 | + }, |
| 677 | + */ |
| 678 | + &BlobsBaseSpec{ |
| 679 | + Spec: test.Spec{ |
| 680 | + Name: "NewPayloadV3 After Cancun, Nil ExcessDataGas, 0x00 DataGasUsed, Empty Array Versioned Hashes", |
| 681 | + About: ` |
| 682 | + Test sending NewPayloadV3 After Cancun with: |
| 683 | + - nil ExcessDataGas |
| 684 | + - 0x00 DataGasUsed |
| 685 | + - Empty Versioned Hashes Array |
| 686 | + `, |
| 687 | + }, |
| 688 | + |
| 689 | + CancunForkHeight: 1, |
| 690 | + |
| 691 | + TestSequence: TestSequence{ |
| 692 | + NewPayloads{ |
| 693 | + ExpectedIncludedBlobCount: 0, |
| 694 | + Version: 3, |
| 695 | + PayloadCustomizer: &helper.CustomPayloadData{ |
| 696 | + RemoveExcessDataGas: true, |
| 697 | + }, |
| 698 | + ExpectedError: INVALID_PARAMS_ERROR, |
| 699 | + }, |
| 700 | + }, |
| 701 | + }, |
| 702 | + &BlobsBaseSpec{ |
| 703 | + Spec: test.Spec{ |
| 704 | + Name: "NewPayloadV3 After Cancun, 0x00 ExcessDataGas, Nil DataGasUsed, Empty Array Versioned Hashes", |
| 705 | + About: ` |
| 706 | + Test sending NewPayloadV3 After Cancun with: |
| 707 | + - 0x00 ExcessDataGas |
| 708 | + - nil DataGasUsed |
| 709 | + - Empty Versioned Hashes Array |
| 710 | + `, |
| 711 | + }, |
| 712 | + |
| 713 | + CancunForkHeight: 1, |
| 714 | + |
| 715 | + TestSequence: TestSequence{ |
| 716 | + NewPayloads{ |
| 717 | + ExpectedIncludedBlobCount: 0, |
| 718 | + Version: 3, |
| 719 | + PayloadCustomizer: &helper.CustomPayloadData{ |
| 720 | + RemoveDataGasUsed: true, |
| 721 | + }, |
| 722 | + ExpectedError: INVALID_PARAMS_ERROR, |
555 | 723 | }, |
556 | 724 | }, |
557 | 725 | }, |
|
0 commit comments