Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Include Babbage checks #11

Open
alegadea opened this issue Apr 8, 2024 · 1 comment
Open

Include Babbage checks #11

alegadea opened this issue Apr 8, 2024 · 1 comment
Assignees

Comments

@alegadea
Copy link
Contributor

alegadea commented Apr 8, 2024

Related to #7

Using the dev/pallas-applying-public-API pallas branch.

The first step is to classify the checks based on the information they need. Some checks only require transactions, while others require a subset of the UTxO set.

@mikarasv mikarasv self-assigned this Apr 8, 2024
@mikarasv
Copy link
Contributor

mikarasv commented Apr 8, 2024

The validations from the babbage era are listed below, in a block structure. Blocks start with a statement that describes requirements of the validations within that block. Nested blocks require their requirements and the ones from containing blocks.
Some validations from pallas require a tx_body, but it is obtained from the transaction.
Some validations require specific context to validate, those validations (9th to 14th validations) were implemented but not added to the validations list. There are some validations that require context, but were added to the validations list, using hardcoded values (such as ones that need protocol params, network information and block slot).

- The following validation only requires the tx size and the protocol params
1. validate_babbage_tx_size(size, prot_pps) 

- The following validations require the tx:
2. validate_babbage_ins_not_empty(mtx) 
3. validate_babbage_minting(mtx) 
4. validate_babbage_well_formed(mtx) 
5. validate_babbage_auxiliary_data(mtx)

    - The following validations also require the protocol parameters
    6. validate_babbage_min_lovelace(mtx,prot_pps) 
    7. validate_babbage_output_val_size(mtx, prot_pps) 
    8. validate_babbage_tx_ex_units(mtx, prot_pps) 

        - The following validation also requires the tx utxos
        9. validate_babbage_fee(mtx, size, utxos, prot_pps) 

    - The following validations require the transaction's utxos
    10. validate_babbage_witness_set(mtx, utxos) 
    11. validate_babbage_all_ins_in_utxos(mtx, utxos)
    12. validate_babbage_preservation_of_value(mtx, utxos)

        - The following validations also require network information and the block slot
        13. validate_babbage_languages(mtx, utxos, network_magic, network_id, block_slot)
        14. validate_babbage_script_data_hash(mtx, utxos, network_magic, network_id, block_slot)

    - The following validation requires the tx and the block slot
    15. validate_babbage_tx_validity_interval(mtx, block_slot) 

    - The following validation requires the network id
    16. validate_babbage_network_id(mtx, network_id)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: No status
Development

No branches or pull requests

2 participants