refactor(applying): unify approach for protocol params access (#432)

This commit is contained in:
Maico Leberle 2024-04-11 21:41:27 -03:00 committed by GitHub
parent df3291bef5
commit fb8b7402fe
45 changed files with 2056 additions and 1520 deletions

View file

@ -3,7 +3,7 @@ pub mod common;
use common::{cbor_to_bytes, minted_tx_payload_from_cbor, mk_utxo_for_byron_tx};
use pallas_applying::{
utils::{
ByronError, ByronProtParams, Environment, FeePolicy, MultiEraProtParams, ValidationError::*,
ByronError, ByronProtParams, Environment, MultiEraProtocolParameters, ValidationError::*,
},
validate, UTxOs,
};
@ -33,17 +33,27 @@ mod byron_tests {
let utxos: UTxOs = mk_utxo_for_byron_tx(
&mtxp.transaction,
&[(
String::from(include_str!("../../test_data/byron2.address")),
String::from("83581CDC7E4DD6A44886816DEC9A4B2021056A8FCAF500C09E316028F2985FA002"),
19999000000,
)],
);
let env: Environment = Environment {
prot_params: MultiEraProtParams::Byron(ByronProtParams {
fee_policy: FeePolicy {
summand: 155381,
multiplier: 44,
},
prot_params: MultiEraProtocolParameters::Byron(ByronProtParams {
script_version: 0,
slot_duration: 20000,
max_block_size: 2000000,
max_header_size: 2000000,
max_tx_size: 4096,
max_proposal_size: 700,
mpc_thd: 20000000000000,
heavy_del_thd: 300000000000,
update_vote_thd: 1000000000000,
update_proposal_thd: 100000000000000,
update_implicit: 10000,
soft_fork_rule: (900000000000000, 600000000000000, 50000000000000),
summand: 155381,
multiplier: 44,
unlock_stake_epoch: 18446744073709551615,
}),
prot_magic: 764824073,
block_slot: 6341,
@ -65,17 +75,27 @@ mod byron_tests {
let utxos: UTxOs = mk_utxo_for_byron_tx(
&mtxp.transaction,
&[(
String::from(include_str!("../../test_data/byron1.address")),
String::from("83581cff66e7549ee0706abe5ce63ba325f792f2c1145d918baf563db2b457a101581e581cca3e553c9c63c5927480e7434620200eb3a162ef0b6cf6f671ba925100"),
19999000000,
)],
);
let env: Environment = Environment {
prot_params: MultiEraProtParams::Byron(ByronProtParams {
fee_policy: FeePolicy {
summand: 155381,
multiplier: 44,
},
prot_params: MultiEraProtocolParameters::Byron(ByronProtParams {
script_version: 0,
slot_duration: 20000,
max_block_size: 2000000,
max_header_size: 2000000,
max_tx_size: 4096,
max_proposal_size: 700,
mpc_thd: 20000000000000,
heavy_del_thd: 300000000000,
update_vote_thd: 1000000000000,
update_proposal_thd: 100000000000000,
update_implicit: 10000,
soft_fork_rule: (900000000000000, 600000000000000, 50000000000000),
summand: 155381,
multiplier: 44,
unlock_stake_epoch: 18446744073709551615,
}),
prot_magic: 764824073,
block_slot: 3241381,
@ -95,7 +115,7 @@ mod byron_tests {
let utxos: UTxOs = mk_utxo_for_byron_tx(
&mtxp.transaction,
&[(
String::from(include_str!("../../test_data/byron1.address")),
String::from("83581cff66e7549ee0706abe5ce63ba325f792f2c1145d918baf563db2b457a101581e581cca3e553c9c63c5927480e7434620200eb3a162ef0b6cf6f671ba925100"),
19999000000,
)],
);
@ -110,12 +130,22 @@ mod byron_tests {
mtxp.transaction = Decode::decode(&mut Decoder::new(tx_buf.as_slice()), &mut ()).unwrap();
let metx: MultiEraTx = MultiEraTx::from_byron(&mtxp);
let env: Environment = Environment {
prot_params: MultiEraProtParams::Byron(ByronProtParams {
fee_policy: FeePolicy {
summand: 155381,
multiplier: 44,
},
prot_params: MultiEraProtocolParameters::Byron(ByronProtParams {
script_version: 0,
slot_duration: 20000,
max_block_size: 2000000,
max_header_size: 2000000,
max_tx_size: 4096,
max_proposal_size: 700,
mpc_thd: 20000000000000,
heavy_del_thd: 300000000000,
update_vote_thd: 1000000000000,
update_proposal_thd: 100000000000000,
update_implicit: 10000,
soft_fork_rule: (900000000000000, 600000000000000, 50000000000000),
summand: 155381,
multiplier: 44,
unlock_stake_epoch: 18446744073709551615,
}),
prot_magic: 764824073,
block_slot: 3241381,
@ -148,17 +178,27 @@ mod byron_tests {
let utxos: UTxOs = mk_utxo_for_byron_tx(
&mtxp.transaction,
&[(
String::from(include_str!("../../test_data/byron1.address")),
String::from("83581cff66e7549ee0706abe5ce63ba325f792f2c1145d918baf563db2b457a101581e581cca3e553c9c63c5927480e7434620200eb3a162ef0b6cf6f671ba925100"),
19999000000,
)],
);
let env: Environment = Environment {
prot_params: MultiEraProtParams::Byron(ByronProtParams {
fee_policy: FeePolicy {
summand: 155381,
multiplier: 44,
},
prot_params: MultiEraProtocolParameters::Byron(ByronProtParams {
script_version: 0,
slot_duration: 20000,
max_block_size: 2000000,
max_header_size: 2000000,
max_tx_size: 4096,
max_proposal_size: 700,
mpc_thd: 20000000000000,
heavy_del_thd: 300000000000,
update_vote_thd: 1000000000000,
update_proposal_thd: 100000000000000,
update_implicit: 10000,
soft_fork_rule: (900000000000000, 600000000000000, 50000000000000),
summand: 155381,
multiplier: 44,
unlock_stake_epoch: 18446744073709551615,
}),
prot_magic: 764824073,
block_slot: 3241381,
@ -181,12 +221,22 @@ mod byron_tests {
let metx: MultiEraTx = MultiEraTx::from_byron(&mtxp);
let utxos: UTxOs = UTxOs::new();
let env: Environment = Environment {
prot_params: MultiEraProtParams::Byron(ByronProtParams {
fee_policy: FeePolicy {
summand: 155381,
multiplier: 44,
},
prot_params: MultiEraProtocolParameters::Byron(ByronProtParams {
script_version: 0,
slot_duration: 20000,
max_block_size: 2000000,
max_header_size: 2000000,
max_tx_size: 4096,
max_proposal_size: 700,
mpc_thd: 20000000000000,
heavy_del_thd: 300000000000,
update_vote_thd: 1000000000000,
update_proposal_thd: 100000000000000,
update_implicit: 10000,
soft_fork_rule: (900000000000000, 600000000000000, 50000000000000),
summand: 155381,
multiplier: 44,
unlock_stake_epoch: 18446744073709551615,
}),
prot_magic: 764824073,
block_slot: 3241381,
@ -225,17 +275,27 @@ mod byron_tests {
let utxos: UTxOs = mk_utxo_for_byron_tx(
&mtxp.transaction,
&[(
String::from(include_str!("../../test_data/byron1.address")),
String::from("83581cff66e7549ee0706abe5ce63ba325f792f2c1145d918baf563db2b457a101581e581cca3e553c9c63c5927480e7434620200eb3a162ef0b6cf6f671ba925100"),
19999000000,
)],
);
let env: Environment = Environment {
prot_params: MultiEraProtParams::Byron(ByronProtParams {
fee_policy: FeePolicy {
summand: 155381,
multiplier: 44,
},
prot_params: MultiEraProtocolParameters::Byron(ByronProtParams {
script_version: 0,
slot_duration: 20000,
max_block_size: 2000000,
max_header_size: 2000000,
max_tx_size: 4096,
max_proposal_size: 700,
mpc_thd: 20000000000000,
heavy_del_thd: 300000000000,
update_vote_thd: 1000000000000,
update_proposal_thd: 100000000000000,
update_implicit: 10000,
soft_fork_rule: (900000000000000, 600000000000000, 50000000000000),
summand: 155381,
multiplier: 44,
unlock_stake_epoch: 18446744073709551615,
}),
prot_magic: 764824073,
block_slot: 3241381,
@ -259,17 +319,27 @@ mod byron_tests {
let utxos: UTxOs = mk_utxo_for_byron_tx(
&mtxp.transaction,
&[(
String::from(include_str!("../../test_data/byron1.address")),
String::from("83581cff66e7549ee0706abe5ce63ba325f792f2c1145d918baf563db2b457a101581e581cca3e553c9c63c5927480e7434620200eb3a162ef0b6cf6f671ba925100"),
19999000000,
)],
);
let env: Environment = Environment {
prot_params: MultiEraProtParams::Byron(ByronProtParams {
fee_policy: FeePolicy {
summand: 1000,
multiplier: 1000,
},
prot_params: MultiEraProtocolParameters::Byron(ByronProtParams {
script_version: 0,
slot_duration: 20000,
max_block_size: 2000000,
max_header_size: 2000000,
max_tx_size: 4096,
max_proposal_size: 700,
mpc_thd: 20000000000000,
heavy_del_thd: 300000000000,
update_vote_thd: 1000000000000,
update_proposal_thd: 100000000000000,
update_implicit: 10000,
soft_fork_rule: (900000000000000, 600000000000000, 50000000000000),
summand: 1000,
multiplier: 1000,
unlock_stake_epoch: 18446744073709551615,
}),
prot_magic: 764824073,
block_slot: 3241381,
@ -293,17 +363,27 @@ mod byron_tests {
let utxos: UTxOs = mk_utxo_for_byron_tx(
&mtxp.transaction,
&[(
String::from(include_str!("../../test_data/byron1.address")),
String::from("83581cff66e7549ee0706abe5ce63ba325f792f2c1145d918baf563db2b457a101581e581cca3e553c9c63c5927480e7434620200eb3a162ef0b6cf6f671ba925100"),
19999000000,
)],
);
let env: Environment = Environment {
prot_params: MultiEraProtParams::Byron(ByronProtParams {
fee_policy: FeePolicy {
summand: 155381,
multiplier: 44,
},
prot_params: MultiEraProtocolParameters::Byron(ByronProtParams {
script_version: 0,
slot_duration: 20000,
max_block_size: 2000000,
max_header_size: 2000000,
max_tx_size: 0,
max_proposal_size: 700,
mpc_thd: 20000000000000,
heavy_del_thd: 300000000000,
update_vote_thd: 1000000000000,
update_proposal_thd: 100000000000000,
update_implicit: 10000,
soft_fork_rule: (900000000000000, 600000000000000, 50000000000000),
summand: 155381,
multiplier: 44,
unlock_stake_epoch: 18446744073709551615,
}),
prot_magic: 764824073,
block_slot: 3241381,
@ -319,7 +399,7 @@ mod byron_tests {
}
#[test]
// The input to the transaction does not have a corresponding witness.
// The input to the transaction does not have a matching witness.
fn missing_witness() {
let cbor_bytes: Vec<u8> = cbor_to_bytes(include_str!("../../test_data/byron1.tx"));
let mut mtxp: MintedTxPayload = minted_tx_payload_from_cbor(&cbor_bytes);
@ -335,17 +415,27 @@ mod byron_tests {
let utxos: UTxOs = mk_utxo_for_byron_tx(
&mtxp.transaction,
&[(
String::from(include_str!("../../test_data/byron1.address")),
String::from("83581cff66e7549ee0706abe5ce63ba325f792f2c1145d918baf563db2b457a101581e581cca3e553c9c63c5927480e7434620200eb3a162ef0b6cf6f671ba925100"),
19999000000,
)],
);
let env: Environment = Environment {
prot_params: MultiEraProtParams::Byron(ByronProtParams {
fee_policy: FeePolicy {
summand: 155381,
multiplier: 44,
},
prot_params: MultiEraProtocolParameters::Byron(ByronProtParams {
script_version: 0,
slot_duration: 20000,
max_block_size: 2000000,
max_header_size: 2000000,
max_tx_size: 4096,
max_proposal_size: 700,
mpc_thd: 20000000000000,
heavy_del_thd: 300000000000,
update_vote_thd: 1000000000000,
update_proposal_thd: 100000000000000,
update_implicit: 10000,
soft_fork_rule: (900000000000000, 600000000000000, 50000000000000),
summand: 155381,
multiplier: 44,
unlock_stake_epoch: 18446744073709551615,
}),
prot_magic: 764824073,
block_slot: 3241381,
@ -386,17 +476,27 @@ mod byron_tests {
let utxos: UTxOs = mk_utxo_for_byron_tx(
&mtxp.transaction,
&[(
String::from(include_str!("../../test_data/byron1.address")),
String::from("83581cff66e7549ee0706abe5ce63ba325f792f2c1145d918baf563db2b457a101581e581cca3e553c9c63c5927480e7434620200eb3a162ef0b6cf6f671ba925100"),
19999000000,
)],
);
let env: Environment = Environment {
prot_params: MultiEraProtParams::Byron(ByronProtParams {
fee_policy: FeePolicy {
summand: 155381,
multiplier: 44,
},
prot_params: MultiEraProtocolParameters::Byron(ByronProtParams {
script_version: 0,
slot_duration: 20000,
max_block_size: 2000000,
max_header_size: 2000000,
max_tx_size: 4096,
max_proposal_size: 700,
mpc_thd: 20000000000000,
heavy_del_thd: 300000000000,
update_vote_thd: 1000000000000,
update_proposal_thd: 100000000000000,
update_implicit: 10000,
soft_fork_rule: (900000000000000, 600000000000000, 50000000000000),
summand: 155381,
multiplier: 44,
unlock_stake_epoch: 18446744073709551615,
}),
prot_magic: 764824073,
block_slot: 3241381,