diff --git a/crates/blockifier_test_utils/resources/feature_contracts/cairo0/block_info_test_contract.cairo b/crates/blockifier_test_utils/resources/feature_contracts/cairo0/block_info_test_contract.cairo new file mode 100644 index 00000000000..3b1c00273e0 --- /dev/null +++ b/crates/blockifier_test_utils/resources/feature_contracts/cairo0/block_info_test_contract.cairo @@ -0,0 +1,72 @@ +%lang starknet +from starkware.cairo.common.bool import FALSE, TRUE +from starkware.cairo.common.math import assert_not_equal, unsigned_div_rem +from starkware.starknet.common.syscalls import get_block_number, get_block_timestamp + +func test_block_info{syscall_ptr: felt*, range_check_ptr}(is_validate: felt) { + alloc_locals; + let (block_number) = get_block_number(); + let (block_timestamp) = get_block_timestamp(); + local syscall_ptr: felt* = syscall_ptr; + test_given_block_info( + block_number=block_number, block_timestamp=block_timestamp, is_validate=is_validate + ); + return (); +} + +func test_given_block_info{range_check_ptr}( + block_number: felt, block_timestamp: felt, is_validate: felt +) { + let (divided_block_number, _) = unsigned_div_rem(block_number, 100); + tempvar block_number_for_validate = divided_block_number * 100; + let (divided_block_timestamp, _) = unsigned_div_rem(block_timestamp, 3600); + tempvar block_timestamp_for_validate = divided_block_timestamp * 3600; + + if (is_validate == TRUE) { + assert block_number = block_number_for_validate; + assert block_timestamp = block_timestamp_for_validate; + return (); + } + + assert is_validate = FALSE; + // We assume that the block info members are not rounded in the test. + assert_not_equal(block_number, block_number_for_validate); + assert_not_equal(block_timestamp, block_timestamp_for_validate); + return (); +} + +@external +func __validate_declare__{syscall_ptr: felt*, range_check_ptr}(class_hash: felt) { + test_block_info(is_validate=TRUE); + return (); +} + +@external +func __validate_deploy__{syscall_ptr: felt*, range_check_ptr}( + class_hash: felt, contract_address_salt: felt, is_validate: felt +) { + test_block_info(is_validate=TRUE); + return (); +} + +@external +func __validate__{syscall_ptr: felt*, range_check_ptr}( + contract_address: felt, selector: felt, calldata_len: felt, calldata: felt* +) { + test_block_info(is_validate=TRUE); + return (); +} + +@external +func __execute__{syscall_ptr: felt*, range_check_ptr}( + contract_address, selector: felt, calldata_len: felt, calldata: felt* +) { + test_block_info(is_validate=FALSE); + return (); +} + +@constructor +func constructor{syscall_ptr: felt*, range_check_ptr}(is_validate: felt) { + test_block_info(is_validate=is_validate); + return (); +} diff --git a/crates/blockifier_test_utils/resources/feature_contracts/cairo0/compiled/block_info_test_contract_compiled.json b/crates/blockifier_test_utils/resources/feature_contracts/cairo0/compiled/block_info_test_contract_compiled.json new file mode 100644 index 00000000000..c6680bd5771 --- /dev/null +++ b/crates/blockifier_test_utils/resources/feature_contracts/cairo0/compiled/block_info_test_contract_compiled.json @@ -0,0 +1,2469 @@ +{ + "abi": [ + { + "inputs": [ + { + "name": "class_hash", + "type": "felt" + } + ], + "name": "__validate_declare__", + "outputs": [], + "type": "function" + }, + { + "inputs": [ + { + "name": "class_hash", + "type": "felt" + }, + { + "name": "contract_address_salt", + "type": "felt" + }, + { + "name": "is_validate", + "type": "felt" + } + ], + "name": "__validate_deploy__", + "outputs": [], + "type": "function" + }, + { + "inputs": [ + { + "name": "contract_address", + "type": "felt" + }, + { + "name": "selector", + "type": "felt" + }, + { + "name": "calldata_len", + "type": "felt" + }, + { + "name": "calldata", + "type": "felt*" + } + ], + "name": "__validate__", + "outputs": [], + "type": "function" + }, + { + "inputs": [ + { + "name": "contract_address", + "type": "felt" + }, + { + "name": "selector", + "type": "felt" + }, + { + "name": "calldata_len", + "type": "felt" + }, + { + "name": "calldata", + "type": "felt*" + } + ], + "name": "__execute__", + "outputs": [], + "type": "function" + }, + { + "inputs": [ + { + "name": "is_validate", + "type": "felt" + } + ], + "name": "constructor", + "outputs": [], + "type": "constructor" + } + ], + "entry_points_by_type": { + "CONSTRUCTOR": [ + { + "offset": 220, + "selector": "0x28ffe4ff0f226a9107253e17a904099aa4f63a02a5621de0576e5aa71bc5194" + } + ], + "EXTERNAL": [ + { + "offset": 187, + "selector": "0x15d40a3d6ca2ac30f4031e42be28da9b056fef9bb7357ac5e85627ee876e5ad" + }, + { + "offset": 153, + "selector": "0x162da33a4585851fe8d3af3c2a9c60b557814e221e0d4f30ff0b2189d9c7775" + }, + { + "offset": 105, + "selector": "0x289da278a8dc833409cabfdad1581e8e7d40e42dcaed693fa4008dcdb4963b3" + }, + { + "offset": 128, + "selector": "0x36fcbf06cd96843058359e1a75928beacfac10727dab22a3972f0af8aa92895" + } + ], + "L1_HANDLER": [] + }, + "program": { + "attributes": [], + "builtins": [ + "range_check" + ], + "compiler_version": "0.14.0.1", + "data": [ + "0x480680017fff8000", + "0x476574426c6f636b4e756d626572", + "0x400280007ffd7fff", + "0x482680017ffd8000", + "0x2", + "0x480280017ffd8000", + "0x208b7fff7fff7ffe", + "0x480680017fff8000", + "0x476574426c6f636b54696d657374616d70", + "0x400280007ffd7fff", + "0x482680017ffd8000", + "0x2", + "0x480280017ffd8000", + "0x208b7fff7fff7ffe", + "0x48297ffd80007ffc", + "0x20680017fff7fff", + "0x4", + "0x402780017ffc7ffc", + "0x1", + "0x208b7fff7fff7ffe", + "0x400380007ffc7ffd", + "0x482680017ffc8000", + "0x1", + "0x208b7fff7fff7ffe", + "0x480a7ffb7fff8000", + "0x48297ffc80007ffd", + "0x1104800180018000", + "0x800000000000010fffffffffffffffffffffffffffffffffffffffffffffffb", + "0x208b7fff7fff7ffe", + "0x482680017ffb8000", + "0x2", + "0x480280007ffb8000", + "0x482680017ffd8000", + "0x800000000000011000000000000000000000000000000000000000000000000", + "0x1104800180018000", + "0x800000000000010fffffffffffffffffffffffffffffffffffffffffffffff7", + "0x480280017ffb8000", + "0x48487ffd7fff8000", + "0x480280007ffb8000", + "0x40317fff7ffe7ffc", + "0x48127ffc7fff8000", + "0x480280017ffb8000", + "0x480280007ffb8000", + "0x208b7fff7fff7ffe", + "0x40780017fff7fff", + "0x1", + "0x480a7ffb7fff8000", + "0x1104800180018000", + "0x800000000000010ffffffffffffffffffffffffffffffffffffffffffffffd2", + "0x48127ffe7fff8000", + "0x1104800180018000", + "0x800000000000010ffffffffffffffffffffffffffffffffffffffffffffffd6", + "0x40137ffe7fff8000", + "0x480a7ffc7fff8000", + "0x48127ff87fff8000", + "0x48127ffd7fff8000", + "0x480a7ffd7fff8000", + "0x1104800180018000", + "0x5", + "0x480a80007fff8000", + "0x48127ffe7fff8000", + "0x208b7fff7fff7ffe", + "0x480a7ffa7fff8000", + "0x480a7ffb7fff8000", + "0x480680017fff8000", + "0x64", + "0x1104800180018000", + "0x800000000000010ffffffffffffffffffffffffffffffffffffffffffffffdc", + "0x484480017ffe8000", + "0x64", + "0x48127ffc7fff8000", + "0x480a7ffc7fff8000", + "0x480680017fff8000", + "0xe10", + "0x1104800180018000", + "0x800000000000010ffffffffffffffffffffffffffffffffffffffffffffffd4", + "0x484480017ffe8000", + "0xe10", + "0x482680017ffd8000", + "0x800000000000011000000000000000000000000000000000000000000000000", + "0x20680017fff7fff", + "0x6", + "0x40137fe87fff7ffb", + "0x40137ffe7fff7ffc", + "0x48127ffb7fff8000", + "0x208b7fff7fff7ffe", + "0x400780017fff7ffd", + "0x0", + "0x480a7ffb7fff8000", + "0x48127fe77fff8000", + "0x1104800180018000", + "0x800000000000010ffffffffffffffffffffffffffffffffffffffffffffffb5", + "0x480a7ffc7fff8000", + "0x48127ff87fff8000", + "0x1104800180018000", + "0x800000000000010ffffffffffffffffffffffffffffffffffffffffffffffb1", + "0x48127ff17fff8000", + "0x208b7fff7fff7ffe", + "0x480a7ffb7fff8000", + "0x480a7ffc7fff8000", + "0x480680017fff8000", + "0x1", + "0x1104800180018000", + "0x800000000000010ffffffffffffffffffffffffffffffffffffffffffffffc7", + "0x208b7fff7fff7ffe", + "0x482680017ffd8000", + "0x1", + "0x402a7ffd7ffc7fff", + "0x480280007ffb8000", + "0x480280017ffb8000", + "0x480280007ffd8000", + "0x1104800180018000", + "0x800000000000010fffffffffffffffffffffffffffffffffffffffffffffff4", + "0x40780017fff7fff", + "0x1", + "0x48127ffd7fff8000", + "0x48127ffd7fff8000", + "0x480680017fff8000", + "0x0", + "0x48127ffc7fff8000", + "0x208b7fff7fff7ffe", + "0x480a7ff97fff8000", + "0x480a7ffa7fff8000", + "0x480680017fff8000", + "0x1", + "0x1104800180018000", + "0x800000000000010ffffffffffffffffffffffffffffffffffffffffffffffb0", + "0x208b7fff7fff7ffe", + "0x482680017ffd8000", + "0x3", + "0x402a7ffd7ffc7fff", + "0x480280007ffb8000", + "0x480280017ffb8000", + "0x480280007ffd8000", + "0x480280017ffd8000", + "0x480280027ffd8000", + "0x1104800180018000", + "0x800000000000010fffffffffffffffffffffffffffffffffffffffffffffff2", + "0x40780017fff7fff", + "0x1", + "0x48127ffd7fff8000", + "0x48127ffd7fff8000", + "0x480680017fff8000", + "0x0", + "0x48127ffc7fff8000", + "0x208b7fff7fff7ffe", + "0x480a7ff87fff8000", + "0x480a7ff97fff8000", + "0x480680017fff8000", + "0x1", + "0x1104800180018000", + "0x800000000000010ffffffffffffffffffffffffffffffffffffffffffffff97", + "0x208b7fff7fff7ffe", + "0x480280017ffb8000", + "0x480280027ffd8000", + "0x400080007ffe7fff", + "0x482680017ffd8000", + "0x3", + "0x480280027ffd8000", + "0x48307fff7ffe8000", + "0x402a7ffd7ffc7fff", + "0x480280017ffb8000", + "0x480280007ffb8000", + "0x482480017ffe8000", + "0x1", + "0x480280007ffd8000", + "0x480280017ffd8000", + "0x480280027ffd8000", + "0x482680017ffd8000", + "0x3", + "0x1104800180018000", + "0x800000000000010ffffffffffffffffffffffffffffffffffffffffffffffe9", + "0x40780017fff7fff", + "0x1", + "0x48127ffd7fff8000", + "0x48127ffd7fff8000", + "0x480680017fff8000", + "0x0", + "0x48127ffc7fff8000", + "0x208b7fff7fff7ffe", + "0x480a7ff87fff8000", + "0x480a7ff97fff8000", + "0x480680017fff8000", + "0x0", + "0x1104800180018000", + "0x800000000000010ffffffffffffffffffffffffffffffffffffffffffffff75", + "0x208b7fff7fff7ffe", + "0x480280017ffb8000", + "0x480280027ffd8000", + "0x400080007ffe7fff", + "0x482680017ffd8000", + "0x3", + "0x480280027ffd8000", + "0x48307fff7ffe8000", + "0x402a7ffd7ffc7fff", + "0x480280017ffb8000", + "0x480280007ffb8000", + "0x482480017ffe8000", + "0x1", + "0x480280007ffd8000", + "0x480280017ffd8000", + "0x480280027ffd8000", + "0x482680017ffd8000", + "0x3", + "0x1104800180018000", + "0x800000000000010ffffffffffffffffffffffffffffffffffffffffffffffe9", + "0x40780017fff7fff", + "0x1", + "0x48127ffd7fff8000", + "0x48127ffd7fff8000", + "0x480680017fff8000", + "0x0", + "0x48127ffc7fff8000", + "0x208b7fff7fff7ffe", + "0x480a7ffb7fff8000", + "0x480a7ffc7fff8000", + "0x480a7ffd7fff8000", + "0x1104800180018000", + "0x800000000000010ffffffffffffffffffffffffffffffffffffffffffffff54", + "0x208b7fff7fff7ffe", + "0x482680017ffd8000", + "0x1", + "0x402a7ffd7ffc7fff", + "0x480280007ffb8000", + "0x480280017ffb8000", + "0x480280007ffd8000", + "0x1104800180018000", + "0x800000000000010fffffffffffffffffffffffffffffffffffffffffffffff5", + "0x40780017fff7fff", + "0x1", + "0x48127ffd7fff8000", + "0x48127ffd7fff8000", + "0x480680017fff8000", + "0x0", + "0x48127ffc7fff8000", + "0x208b7fff7fff7ffe" + ], + "debug_info": null, + "hints": { + "3": [ + { + "accessible_scopes": [ + "starkware.starknet.common.syscalls", + "starkware.starknet.common.syscalls.get_block_number" + ], + "code": "syscall_handler.get_block_number(segments=segments, syscall_ptr=ids.syscall_ptr)", + "flow_tracking_data": { + "ap_tracking": { + "group": 0, + "offset": 1 + }, + "reference_ids": { + "starkware.starknet.common.syscalls.get_block_number.syscall_ptr": 0 + } + } + } + ], + "10": [ + { + "accessible_scopes": [ + "starkware.starknet.common.syscalls", + "starkware.starknet.common.syscalls.get_block_timestamp" + ], + "code": "syscall_handler.get_block_timestamp(segments=segments, syscall_ptr=ids.syscall_ptr)", + "flow_tracking_data": { + "ap_tracking": { + "group": 1, + "offset": 1 + }, + "reference_ids": { + "starkware.starknet.common.syscalls.get_block_timestamp.syscall_ptr": 1 + } + } + } + ], + "14": [ + { + "accessible_scopes": [ + "starkware.cairo.common.math", + "starkware.cairo.common.math.assert_not_equal" + ], + "code": "from starkware.cairo.lang.vm.relocatable import RelocatableValue\nboth_ints = isinstance(ids.a, int) and isinstance(ids.b, int)\nboth_relocatable = (\n isinstance(ids.a, RelocatableValue) and isinstance(ids.b, RelocatableValue) and\n ids.a.segment_index == ids.b.segment_index)\nassert both_ints or both_relocatable, \\\n f'assert_not_equal failed: non-comparable values: {ids.a}, {ids.b}.'\nassert (ids.a - ids.b) % PRIME != 0, f'assert_not_equal failed: {ids.a} = {ids.b}.'", + "flow_tracking_data": { + "ap_tracking": { + "group": 2, + "offset": 0 + }, + "reference_ids": { + "starkware.cairo.common.math.assert_not_equal.a": 2, + "starkware.cairo.common.math.assert_not_equal.b": 3 + } + } + } + ], + "20": [ + { + "accessible_scopes": [ + "starkware.cairo.common.math", + "starkware.cairo.common.math.assert_nn" + ], + "code": "from starkware.cairo.common.math_utils import assert_integer\nassert_integer(ids.a)\nassert 0 <= ids.a % PRIME < range_check_builtin.bound, f'a = {ids.a} is out of range.'", + "flow_tracking_data": { + "ap_tracking": { + "group": 3, + "offset": 0 + }, + "reference_ids": { + "starkware.cairo.common.math.assert_nn.a": 4 + } + } + } + ], + "29": [ + { + "accessible_scopes": [ + "starkware.cairo.common.math", + "starkware.cairo.common.math.unsigned_div_rem" + ], + "code": "from starkware.cairo.common.math_utils import assert_integer\nassert_integer(ids.div)\nassert 0 < ids.div <= PRIME // range_check_builtin.bound, \\\n f'div={hex(ids.div)} is out of the valid range.'\nids.q, ids.r = divmod(ids.value, ids.div)", + "flow_tracking_data": { + "ap_tracking": { + "group": 5, + "offset": 0 + }, + "reference_ids": { + "starkware.cairo.common.math.unsigned_div_rem.div": 6, + "starkware.cairo.common.math.unsigned_div_rem.q": 8, + "starkware.cairo.common.math.unsigned_div_rem.r": 7, + "starkware.cairo.common.math.unsigned_div_rem.value": 5 + } + } + } + ], + "113": [ + { + "accessible_scopes": [ + "__main__", + "__main__", + "__wrappers__", + "__wrappers__.__validate_declare__" + ], + "code": "memory[ap] = segments.add()", + "flow_tracking_data": { + "ap_tracking": { + "group": 12, + "offset": 0 + }, + "reference_ids": {} + } + } + ], + "138": [ + { + "accessible_scopes": [ + "__main__", + "__main__", + "__wrappers__", + "__wrappers__.__validate_deploy__" + ], + "code": "memory[ap] = segments.add()", + "flow_tracking_data": { + "ap_tracking": { + "group": 16, + "offset": 0 + }, + "reference_ids": {} + } + } + ], + "172": [ + { + "accessible_scopes": [ + "__main__", + "__main__", + "__wrappers__", + "__wrappers__.__validate__" + ], + "code": "memory[ap] = segments.add()", + "flow_tracking_data": { + "ap_tracking": { + "group": 20, + "offset": 0 + }, + "reference_ids": {} + } + } + ], + "206": [ + { + "accessible_scopes": [ + "__main__", + "__main__", + "__wrappers__", + "__wrappers__.__execute__" + ], + "code": "memory[ap] = segments.add()", + "flow_tracking_data": { + "ap_tracking": { + "group": 24, + "offset": 0 + }, + "reference_ids": {} + } + } + ], + "228": [ + { + "accessible_scopes": [ + "__main__", + "__main__", + "__wrappers__", + "__wrappers__.constructor" + ], + "code": "memory[ap] = segments.add()", + "flow_tracking_data": { + "ap_tracking": { + "group": 28, + "offset": 0 + }, + "reference_ids": {} + } + } + ] + }, + "identifiers": { + "__main__.FALSE": { + "destination": "starkware.cairo.common.bool.FALSE", + "type": "alias" + }, + "__main__.TRUE": { + "destination": "starkware.cairo.common.bool.TRUE", + "type": "alias" + }, + "__main__.__execute__": { + "decorators": [ + "external" + ], + "pc": 180, + "type": "function" + }, + "__main__.__execute__.Args": { + "full_name": "__main__.__execute__.Args", + "members": { + "calldata": { + "cairo_type": "felt*", + "offset": 3 + }, + "calldata_len": { + "cairo_type": "felt", + "offset": 2 + }, + "contract_address": { + "cairo_type": "felt", + "offset": 0 + }, + "selector": { + "cairo_type": "felt", + "offset": 1 + } + }, + "size": 4, + "type": "struct" + }, + "__main__.__execute__.ImplicitArgs": { + "full_name": "__main__.__execute__.ImplicitArgs", + "members": { + "range_check_ptr": { + "cairo_type": "felt", + "offset": 1 + }, + "syscall_ptr": { + "cairo_type": "felt*", + "offset": 0 + } + }, + "size": 2, + "type": "struct" + }, + "__main__.__execute__.Return": { + "cairo_type": "()", + "type": "type_definition" + }, + "__main__.__execute__.SIZEOF_LOCALS": { + "type": "const", + "value": 0 + }, + "__main__.__validate__": { + "decorators": [ + "external" + ], + "pc": 146, + "type": "function" + }, + "__main__.__validate__.Args": { + "full_name": "__main__.__validate__.Args", + "members": { + "calldata": { + "cairo_type": "felt*", + "offset": 3 + }, + "calldata_len": { + "cairo_type": "felt", + "offset": 2 + }, + "contract_address": { + "cairo_type": "felt", + "offset": 0 + }, + "selector": { + "cairo_type": "felt", + "offset": 1 + } + }, + "size": 4, + "type": "struct" + }, + "__main__.__validate__.ImplicitArgs": { + "full_name": "__main__.__validate__.ImplicitArgs", + "members": { + "range_check_ptr": { + "cairo_type": "felt", + "offset": 1 + }, + "syscall_ptr": { + "cairo_type": "felt*", + "offset": 0 + } + }, + "size": 2, + "type": "struct" + }, + "__main__.__validate__.Return": { + "cairo_type": "()", + "type": "type_definition" + }, + "__main__.__validate__.SIZEOF_LOCALS": { + "type": "const", + "value": 0 + }, + "__main__.__validate_declare__": { + "decorators": [ + "external" + ], + "pc": 98, + "type": "function" + }, + "__main__.__validate_declare__.Args": { + "full_name": "__main__.__validate_declare__.Args", + "members": { + "class_hash": { + "cairo_type": "felt", + "offset": 0 + } + }, + "size": 1, + "type": "struct" + }, + "__main__.__validate_declare__.ImplicitArgs": { + "full_name": "__main__.__validate_declare__.ImplicitArgs", + "members": { + "range_check_ptr": { + "cairo_type": "felt", + "offset": 1 + }, + "syscall_ptr": { + "cairo_type": "felt*", + "offset": 0 + } + }, + "size": 2, + "type": "struct" + }, + "__main__.__validate_declare__.Return": { + "cairo_type": "()", + "type": "type_definition" + }, + "__main__.__validate_declare__.SIZEOF_LOCALS": { + "type": "const", + "value": 0 + }, + "__main__.__validate_deploy__": { + "decorators": [ + "external" + ], + "pc": 121, + "type": "function" + }, + "__main__.__validate_deploy__.Args": { + "full_name": "__main__.__validate_deploy__.Args", + "members": { + "class_hash": { + "cairo_type": "felt", + "offset": 0 + }, + "contract_address_salt": { + "cairo_type": "felt", + "offset": 1 + }, + "is_validate": { + "cairo_type": "felt", + "offset": 2 + } + }, + "size": 3, + "type": "struct" + }, + "__main__.__validate_deploy__.ImplicitArgs": { + "full_name": "__main__.__validate_deploy__.ImplicitArgs", + "members": { + "range_check_ptr": { + "cairo_type": "felt", + "offset": 1 + }, + "syscall_ptr": { + "cairo_type": "felt*", + "offset": 0 + } + }, + "size": 2, + "type": "struct" + }, + "__main__.__validate_deploy__.Return": { + "cairo_type": "()", + "type": "type_definition" + }, + "__main__.__validate_deploy__.SIZEOF_LOCALS": { + "type": "const", + "value": 0 + }, + "__main__.assert_not_equal": { + "destination": "starkware.cairo.common.math.assert_not_equal", + "type": "alias" + }, + "__main__.constructor": { + "decorators": [ + "constructor" + ], + "pc": 214, + "type": "function" + }, + "__main__.constructor.Args": { + "full_name": "__main__.constructor.Args", + "members": { + "is_validate": { + "cairo_type": "felt", + "offset": 0 + } + }, + "size": 1, + "type": "struct" + }, + "__main__.constructor.ImplicitArgs": { + "full_name": "__main__.constructor.ImplicitArgs", + "members": { + "range_check_ptr": { + "cairo_type": "felt", + "offset": 1 + }, + "syscall_ptr": { + "cairo_type": "felt*", + "offset": 0 + } + }, + "size": 2, + "type": "struct" + }, + "__main__.constructor.Return": { + "cairo_type": "()", + "type": "type_definition" + }, + "__main__.constructor.SIZEOF_LOCALS": { + "type": "const", + "value": 0 + }, + "__main__.get_block_number": { + "destination": "starkware.starknet.common.syscalls.get_block_number", + "type": "alias" + }, + "__main__.get_block_timestamp": { + "destination": "starkware.starknet.common.syscalls.get_block_timestamp", + "type": "alias" + }, + "__main__.test_block_info": { + "decorators": [], + "pc": 44, + "type": "function" + }, + "__main__.test_block_info.Args": { + "full_name": "__main__.test_block_info.Args", + "members": { + "is_validate": { + "cairo_type": "felt", + "offset": 0 + } + }, + "size": 1, + "type": "struct" + }, + "__main__.test_block_info.ImplicitArgs": { + "full_name": "__main__.test_block_info.ImplicitArgs", + "members": { + "range_check_ptr": { + "cairo_type": "felt", + "offset": 1 + }, + "syscall_ptr": { + "cairo_type": "felt*", + "offset": 0 + } + }, + "size": 2, + "type": "struct" + }, + "__main__.test_block_info.Return": { + "cairo_type": "()", + "type": "type_definition" + }, + "__main__.test_block_info.SIZEOF_LOCALS": { + "type": "const", + "value": 1 + }, + "__main__.test_given_block_info": { + "decorators": [], + "pc": 62, + "type": "function" + }, + "__main__.test_given_block_info.Args": { + "full_name": "__main__.test_given_block_info.Args", + "members": { + "block_number": { + "cairo_type": "felt", + "offset": 0 + }, + "block_timestamp": { + "cairo_type": "felt", + "offset": 1 + }, + "is_validate": { + "cairo_type": "felt", + "offset": 2 + } + }, + "size": 3, + "type": "struct" + }, + "__main__.test_given_block_info.ImplicitArgs": { + "full_name": "__main__.test_given_block_info.ImplicitArgs", + "members": { + "range_check_ptr": { + "cairo_type": "felt", + "offset": 0 + } + }, + "size": 1, + "type": "struct" + }, + "__main__.test_given_block_info.Return": { + "cairo_type": "()", + "type": "type_definition" + }, + "__main__.test_given_block_info.SIZEOF_LOCALS": { + "type": "const", + "value": 0 + }, + "__main__.unsigned_div_rem": { + "destination": "starkware.cairo.common.math.unsigned_div_rem", + "type": "alias" + }, + "__wrappers__.__execute__": { + "decorators": [ + "external" + ], + "pc": 187, + "type": "function" + }, + "__wrappers__.__execute__.Args": { + "full_name": "__wrappers__.__execute__.Args", + "members": {}, + "size": 0, + "type": "struct" + }, + "__wrappers__.__execute__.ImplicitArgs": { + "full_name": "__wrappers__.__execute__.ImplicitArgs", + "members": {}, + "size": 0, + "type": "struct" + }, + "__wrappers__.__execute__.Return": { + "cairo_type": "(syscall_ptr: felt*, range_check_ptr: felt, size: felt, retdata: felt*)", + "type": "type_definition" + }, + "__wrappers__.__execute__.SIZEOF_LOCALS": { + "type": "const", + "value": 0 + }, + "__wrappers__.__execute__.__wrapped_func": { + "destination": "__main__.__execute__", + "type": "alias" + }, + "__wrappers__.__execute___encode_return.memcpy": { + "destination": "starkware.cairo.common.memcpy.memcpy", + "type": "alias" + }, + "__wrappers__.__validate__": { + "decorators": [ + "external" + ], + "pc": 153, + "type": "function" + }, + "__wrappers__.__validate__.Args": { + "full_name": "__wrappers__.__validate__.Args", + "members": {}, + "size": 0, + "type": "struct" + }, + "__wrappers__.__validate__.ImplicitArgs": { + "full_name": "__wrappers__.__validate__.ImplicitArgs", + "members": {}, + "size": 0, + "type": "struct" + }, + "__wrappers__.__validate__.Return": { + "cairo_type": "(syscall_ptr: felt*, range_check_ptr: felt, size: felt, retdata: felt*)", + "type": "type_definition" + }, + "__wrappers__.__validate__.SIZEOF_LOCALS": { + "type": "const", + "value": 0 + }, + "__wrappers__.__validate__.__wrapped_func": { + "destination": "__main__.__validate__", + "type": "alias" + }, + "__wrappers__.__validate___encode_return.memcpy": { + "destination": "starkware.cairo.common.memcpy.memcpy", + "type": "alias" + }, + "__wrappers__.__validate_declare__": { + "decorators": [ + "external" + ], + "pc": 105, + "type": "function" + }, + "__wrappers__.__validate_declare__.Args": { + "full_name": "__wrappers__.__validate_declare__.Args", + "members": {}, + "size": 0, + "type": "struct" + }, + "__wrappers__.__validate_declare__.ImplicitArgs": { + "full_name": "__wrappers__.__validate_declare__.ImplicitArgs", + "members": {}, + "size": 0, + "type": "struct" + }, + "__wrappers__.__validate_declare__.Return": { + "cairo_type": "(syscall_ptr: felt*, range_check_ptr: felt, size: felt, retdata: felt*)", + "type": "type_definition" + }, + "__wrappers__.__validate_declare__.SIZEOF_LOCALS": { + "type": "const", + "value": 0 + }, + "__wrappers__.__validate_declare__.__wrapped_func": { + "destination": "__main__.__validate_declare__", + "type": "alias" + }, + "__wrappers__.__validate_declare___encode_return.memcpy": { + "destination": "starkware.cairo.common.memcpy.memcpy", + "type": "alias" + }, + "__wrappers__.__validate_deploy__": { + "decorators": [ + "external" + ], + "pc": 128, + "type": "function" + }, + "__wrappers__.__validate_deploy__.Args": { + "full_name": "__wrappers__.__validate_deploy__.Args", + "members": {}, + "size": 0, + "type": "struct" + }, + "__wrappers__.__validate_deploy__.ImplicitArgs": { + "full_name": "__wrappers__.__validate_deploy__.ImplicitArgs", + "members": {}, + "size": 0, + "type": "struct" + }, + "__wrappers__.__validate_deploy__.Return": { + "cairo_type": "(syscall_ptr: felt*, range_check_ptr: felt, size: felt, retdata: felt*)", + "type": "type_definition" + }, + "__wrappers__.__validate_deploy__.SIZEOF_LOCALS": { + "type": "const", + "value": 0 + }, + "__wrappers__.__validate_deploy__.__wrapped_func": { + "destination": "__main__.__validate_deploy__", + "type": "alias" + }, + "__wrappers__.__validate_deploy___encode_return.memcpy": { + "destination": "starkware.cairo.common.memcpy.memcpy", + "type": "alias" + }, + "__wrappers__.constructor": { + "decorators": [ + "constructor" + ], + "pc": 220, + "type": "function" + }, + "__wrappers__.constructor.Args": { + "full_name": "__wrappers__.constructor.Args", + "members": {}, + "size": 0, + "type": "struct" + }, + "__wrappers__.constructor.ImplicitArgs": { + "full_name": "__wrappers__.constructor.ImplicitArgs", + "members": {}, + "size": 0, + "type": "struct" + }, + "__wrappers__.constructor.Return": { + "cairo_type": "(syscall_ptr: felt*, range_check_ptr: felt, size: felt, retdata: felt*)", + "type": "type_definition" + }, + "__wrappers__.constructor.SIZEOF_LOCALS": { + "type": "const", + "value": 0 + }, + "__wrappers__.constructor.__wrapped_func": { + "destination": "__main__.constructor", + "type": "alias" + }, + "__wrappers__.constructor_encode_return.memcpy": { + "destination": "starkware.cairo.common.memcpy.memcpy", + "type": "alias" + }, + "starkware.cairo.common.bool.FALSE": { + "type": "const", + "value": 0 + }, + "starkware.cairo.common.bool.TRUE": { + "type": "const", + "value": 1 + }, + "starkware.cairo.common.cairo_builtins.BitwiseBuiltin": { + "full_name": "starkware.cairo.common.cairo_builtins.BitwiseBuiltin", + "members": { + "x": { + "cairo_type": "felt", + "offset": 0 + }, + "x_and_y": { + "cairo_type": "felt", + "offset": 2 + }, + "x_or_y": { + "cairo_type": "felt", + "offset": 4 + }, + "x_xor_y": { + "cairo_type": "felt", + "offset": 3 + }, + "y": { + "cairo_type": "felt", + "offset": 1 + } + }, + "size": 5, + "type": "struct" + }, + "starkware.cairo.common.cairo_builtins.EcOpBuiltin": { + "full_name": "starkware.cairo.common.cairo_builtins.EcOpBuiltin", + "members": { + "m": { + "cairo_type": "felt", + "offset": 4 + }, + "p": { + "cairo_type": "starkware.cairo.common.ec_point.EcPoint", + "offset": 0 + }, + "q": { + "cairo_type": "starkware.cairo.common.ec_point.EcPoint", + "offset": 2 + }, + "r": { + "cairo_type": "starkware.cairo.common.ec_point.EcPoint", + "offset": 5 + } + }, + "size": 7, + "type": "struct" + }, + "starkware.cairo.common.cairo_builtins.EcPoint": { + "destination": "starkware.cairo.common.ec_point.EcPoint", + "type": "alias" + }, + "starkware.cairo.common.cairo_builtins.HashBuiltin": { + "full_name": "starkware.cairo.common.cairo_builtins.HashBuiltin", + "members": { + "result": { + "cairo_type": "felt", + "offset": 2 + }, + "x": { + "cairo_type": "felt", + "offset": 0 + }, + "y": { + "cairo_type": "felt", + "offset": 1 + } + }, + "size": 3, + "type": "struct" + }, + "starkware.cairo.common.cairo_builtins.KeccakBuiltin": { + "full_name": "starkware.cairo.common.cairo_builtins.KeccakBuiltin", + "members": { + "input": { + "cairo_type": "starkware.cairo.common.keccak_state.KeccakBuiltinState", + "offset": 0 + }, + "output": { + "cairo_type": "starkware.cairo.common.keccak_state.KeccakBuiltinState", + "offset": 8 + } + }, + "size": 16, + "type": "struct" + }, + "starkware.cairo.common.cairo_builtins.KeccakBuiltinState": { + "destination": "starkware.cairo.common.keccak_state.KeccakBuiltinState", + "type": "alias" + }, + "starkware.cairo.common.cairo_builtins.ModBuiltin": { + "full_name": "starkware.cairo.common.cairo_builtins.ModBuiltin", + "members": { + "n": { + "cairo_type": "felt", + "offset": 6 + }, + "offsets_ptr": { + "cairo_type": "felt*", + "offset": 5 + }, + "p": { + "cairo_type": "starkware.cairo.common.cairo_builtins.UInt384", + "offset": 0 + }, + "values_ptr": { + "cairo_type": "starkware.cairo.common.cairo_builtins.UInt384*", + "offset": 4 + } + }, + "size": 7, + "type": "struct" + }, + "starkware.cairo.common.cairo_builtins.PoseidonBuiltin": { + "full_name": "starkware.cairo.common.cairo_builtins.PoseidonBuiltin", + "members": { + "input": { + "cairo_type": "starkware.cairo.common.poseidon_state.PoseidonBuiltinState", + "offset": 0 + }, + "output": { + "cairo_type": "starkware.cairo.common.poseidon_state.PoseidonBuiltinState", + "offset": 3 + } + }, + "size": 6, + "type": "struct" + }, + "starkware.cairo.common.cairo_builtins.PoseidonBuiltinState": { + "destination": "starkware.cairo.common.poseidon_state.PoseidonBuiltinState", + "type": "alias" + }, + "starkware.cairo.common.cairo_builtins.SignatureBuiltin": { + "full_name": "starkware.cairo.common.cairo_builtins.SignatureBuiltin", + "members": { + "message": { + "cairo_type": "felt", + "offset": 1 + }, + "pub_key": { + "cairo_type": "felt", + "offset": 0 + } + }, + "size": 2, + "type": "struct" + }, + "starkware.cairo.common.cairo_builtins.UInt384": { + "full_name": "starkware.cairo.common.cairo_builtins.UInt384", + "members": { + "d0": { + "cairo_type": "felt", + "offset": 0 + }, + "d1": { + "cairo_type": "felt", + "offset": 1 + }, + "d2": { + "cairo_type": "felt", + "offset": 2 + }, + "d3": { + "cairo_type": "felt", + "offset": 3 + } + }, + "size": 4, + "type": "struct" + }, + "starkware.cairo.common.dict_access.DictAccess": { + "full_name": "starkware.cairo.common.dict_access.DictAccess", + "members": { + "key": { + "cairo_type": "felt", + "offset": 0 + }, + "new_value": { + "cairo_type": "felt", + "offset": 2 + }, + "prev_value": { + "cairo_type": "felt", + "offset": 1 + } + }, + "size": 3, + "type": "struct" + }, + "starkware.cairo.common.ec_point.EcPoint": { + "full_name": "starkware.cairo.common.ec_point.EcPoint", + "members": { + "x": { + "cairo_type": "felt", + "offset": 0 + }, + "y": { + "cairo_type": "felt", + "offset": 1 + } + }, + "size": 2, + "type": "struct" + }, + "starkware.cairo.common.hash.HashBuiltin": { + "destination": "starkware.cairo.common.cairo_builtins.HashBuiltin", + "type": "alias" + }, + "starkware.cairo.common.keccak_state.KeccakBuiltinState": { + "full_name": "starkware.cairo.common.keccak_state.KeccakBuiltinState", + "members": { + "s0": { + "cairo_type": "felt", + "offset": 0 + }, + "s1": { + "cairo_type": "felt", + "offset": 1 + }, + "s2": { + "cairo_type": "felt", + "offset": 2 + }, + "s3": { + "cairo_type": "felt", + "offset": 3 + }, + "s4": { + "cairo_type": "felt", + "offset": 4 + }, + "s5": { + "cairo_type": "felt", + "offset": 5 + }, + "s6": { + "cairo_type": "felt", + "offset": 6 + }, + "s7": { + "cairo_type": "felt", + "offset": 7 + } + }, + "size": 8, + "type": "struct" + }, + "starkware.cairo.common.math.FALSE": { + "destination": "starkware.cairo.common.bool.FALSE", + "type": "alias" + }, + "starkware.cairo.common.math.TRUE": { + "destination": "starkware.cairo.common.bool.TRUE", + "type": "alias" + }, + "starkware.cairo.common.math.assert_le": { + "decorators": [], + "pc": 24, + "type": "function" + }, + "starkware.cairo.common.math.assert_le.Args": { + "full_name": "starkware.cairo.common.math.assert_le.Args", + "members": { + "a": { + "cairo_type": "felt", + "offset": 0 + }, + "b": { + "cairo_type": "felt", + "offset": 1 + } + }, + "size": 2, + "type": "struct" + }, + "starkware.cairo.common.math.assert_le.ImplicitArgs": { + "full_name": "starkware.cairo.common.math.assert_le.ImplicitArgs", + "members": { + "range_check_ptr": { + "cairo_type": "felt", + "offset": 0 + } + }, + "size": 1, + "type": "struct" + }, + "starkware.cairo.common.math.assert_le.Return": { + "cairo_type": "()", + "type": "type_definition" + }, + "starkware.cairo.common.math.assert_le.SIZEOF_LOCALS": { + "type": "const", + "value": 0 + }, + "starkware.cairo.common.math.assert_nn": { + "decorators": [], + "pc": 20, + "type": "function" + }, + "starkware.cairo.common.math.assert_nn.Args": { + "full_name": "starkware.cairo.common.math.assert_nn.Args", + "members": { + "a": { + "cairo_type": "felt", + "offset": 0 + } + }, + "size": 1, + "type": "struct" + }, + "starkware.cairo.common.math.assert_nn.ImplicitArgs": { + "full_name": "starkware.cairo.common.math.assert_nn.ImplicitArgs", + "members": { + "range_check_ptr": { + "cairo_type": "felt", + "offset": 0 + } + }, + "size": 1, + "type": "struct" + }, + "starkware.cairo.common.math.assert_nn.Return": { + "cairo_type": "()", + "type": "type_definition" + }, + "starkware.cairo.common.math.assert_nn.SIZEOF_LOCALS": { + "type": "const", + "value": 0 + }, + "starkware.cairo.common.math.assert_nn.a": { + "cairo_type": "felt", + "full_name": "starkware.cairo.common.math.assert_nn.a", + "references": [ + { + "ap_tracking_data": { + "group": 3, + "offset": 0 + }, + "pc": 20, + "value": "[cast(fp + (-3), felt*)]" + } + ], + "type": "reference" + }, + "starkware.cairo.common.math.assert_not_equal": { + "decorators": [], + "pc": 14, + "type": "function" + }, + "starkware.cairo.common.math.assert_not_equal.Args": { + "full_name": "starkware.cairo.common.math.assert_not_equal.Args", + "members": { + "a": { + "cairo_type": "felt", + "offset": 0 + }, + "b": { + "cairo_type": "felt", + "offset": 1 + } + }, + "size": 2, + "type": "struct" + }, + "starkware.cairo.common.math.assert_not_equal.ImplicitArgs": { + "full_name": "starkware.cairo.common.math.assert_not_equal.ImplicitArgs", + "members": {}, + "size": 0, + "type": "struct" + }, + "starkware.cairo.common.math.assert_not_equal.Return": { + "cairo_type": "()", + "type": "type_definition" + }, + "starkware.cairo.common.math.assert_not_equal.SIZEOF_LOCALS": { + "type": "const", + "value": 0 + }, + "starkware.cairo.common.math.assert_not_equal.a": { + "cairo_type": "felt", + "full_name": "starkware.cairo.common.math.assert_not_equal.a", + "references": [ + { + "ap_tracking_data": { + "group": 2, + "offset": 0 + }, + "pc": 14, + "value": "[cast(fp + (-4), felt*)]" + } + ], + "type": "reference" + }, + "starkware.cairo.common.math.assert_not_equal.b": { + "cairo_type": "felt", + "full_name": "starkware.cairo.common.math.assert_not_equal.b", + "references": [ + { + "ap_tracking_data": { + "group": 2, + "offset": 0 + }, + "pc": 14, + "value": "[cast(fp + (-3), felt*)]" + } + ], + "type": "reference" + }, + "starkware.cairo.common.math.unsigned_div_rem": { + "decorators": [], + "pc": 29, + "type": "function" + }, + "starkware.cairo.common.math.unsigned_div_rem.Args": { + "full_name": "starkware.cairo.common.math.unsigned_div_rem.Args", + "members": { + "div": { + "cairo_type": "felt", + "offset": 1 + }, + "value": { + "cairo_type": "felt", + "offset": 0 + } + }, + "size": 2, + "type": "struct" + }, + "starkware.cairo.common.math.unsigned_div_rem.ImplicitArgs": { + "full_name": "starkware.cairo.common.math.unsigned_div_rem.ImplicitArgs", + "members": { + "range_check_ptr": { + "cairo_type": "felt", + "offset": 0 + } + }, + "size": 1, + "type": "struct" + }, + "starkware.cairo.common.math.unsigned_div_rem.Return": { + "cairo_type": "(q: felt, r: felt)", + "type": "type_definition" + }, + "starkware.cairo.common.math.unsigned_div_rem.SIZEOF_LOCALS": { + "type": "const", + "value": 0 + }, + "starkware.cairo.common.math.unsigned_div_rem.div": { + "cairo_type": "felt", + "full_name": "starkware.cairo.common.math.unsigned_div_rem.div", + "references": [ + { + "ap_tracking_data": { + "group": 5, + "offset": 0 + }, + "pc": 29, + "value": "[cast(fp + (-3), felt*)]" + } + ], + "type": "reference" + }, + "starkware.cairo.common.math.unsigned_div_rem.q": { + "cairo_type": "felt", + "full_name": "starkware.cairo.common.math.unsigned_div_rem.q", + "references": [ + { + "ap_tracking_data": { + "group": 5, + "offset": 0 + }, + "pc": 29, + "value": "[cast([fp + (-5)] + 1, felt*)]" + } + ], + "type": "reference" + }, + "starkware.cairo.common.math.unsigned_div_rem.r": { + "cairo_type": "felt", + "full_name": "starkware.cairo.common.math.unsigned_div_rem.r", + "references": [ + { + "ap_tracking_data": { + "group": 5, + "offset": 0 + }, + "pc": 29, + "value": "[cast([fp + (-5)], felt*)]" + } + ], + "type": "reference" + }, + "starkware.cairo.common.math.unsigned_div_rem.value": { + "cairo_type": "felt", + "full_name": "starkware.cairo.common.math.unsigned_div_rem.value", + "references": [ + { + "ap_tracking_data": { + "group": 5, + "offset": 0 + }, + "pc": 29, + "value": "[cast(fp + (-4), felt*)]" + } + ], + "type": "reference" + }, + "starkware.cairo.common.poseidon_state.PoseidonBuiltinState": { + "full_name": "starkware.cairo.common.poseidon_state.PoseidonBuiltinState", + "members": { + "s0": { + "cairo_type": "felt", + "offset": 0 + }, + "s1": { + "cairo_type": "felt", + "offset": 1 + }, + "s2": { + "cairo_type": "felt", + "offset": 2 + } + }, + "size": 3, + "type": "struct" + }, + "starkware.starknet.common.storage.ADDR_BOUND": { + "type": "const", + "value": -106710729501573572985208420194530329073740042555888586719489 + }, + "starkware.starknet.common.storage.MAX_STORAGE_ITEM_SIZE": { + "type": "const", + "value": 256 + }, + "starkware.starknet.common.storage.assert_250_bit": { + "destination": "starkware.cairo.common.math.assert_250_bit", + "type": "alias" + }, + "starkware.starknet.common.syscalls.CALL_CONTRACT_SELECTOR": { + "type": "const", + "value": 20853273475220472486191784820 + }, + "starkware.starknet.common.syscalls.CallContract": { + "full_name": "starkware.starknet.common.syscalls.CallContract", + "members": { + "request": { + "cairo_type": "starkware.starknet.common.syscalls.CallContractRequest", + "offset": 0 + }, + "response": { + "cairo_type": "starkware.starknet.common.syscalls.CallContractResponse", + "offset": 5 + } + }, + "size": 7, + "type": "struct" + }, + "starkware.starknet.common.syscalls.CallContractRequest": { + "full_name": "starkware.starknet.common.syscalls.CallContractRequest", + "members": { + "calldata": { + "cairo_type": "felt*", + "offset": 4 + }, + "calldata_size": { + "cairo_type": "felt", + "offset": 3 + }, + "contract_address": { + "cairo_type": "felt", + "offset": 1 + }, + "function_selector": { + "cairo_type": "felt", + "offset": 2 + }, + "selector": { + "cairo_type": "felt", + "offset": 0 + } + }, + "size": 5, + "type": "struct" + }, + "starkware.starknet.common.syscalls.CallContractResponse": { + "full_name": "starkware.starknet.common.syscalls.CallContractResponse", + "members": { + "retdata": { + "cairo_type": "felt*", + "offset": 1 + }, + "retdata_size": { + "cairo_type": "felt", + "offset": 0 + } + }, + "size": 2, + "type": "struct" + }, + "starkware.starknet.common.syscalls.DELEGATE_CALL_SELECTOR": { + "type": "const", + "value": 21167594061783206823196716140 + }, + "starkware.starknet.common.syscalls.DELEGATE_L1_HANDLER_SELECTOR": { + "type": "const", + "value": 23274015802972845247556842986379118667122 + }, + "starkware.starknet.common.syscalls.DEPLOY_SELECTOR": { + "type": "const", + "value": 75202468540281 + }, + "starkware.starknet.common.syscalls.Deploy": { + "full_name": "starkware.starknet.common.syscalls.Deploy", + "members": { + "request": { + "cairo_type": "starkware.starknet.common.syscalls.DeployRequest", + "offset": 0 + }, + "response": { + "cairo_type": "starkware.starknet.common.syscalls.DeployResponse", + "offset": 6 + } + }, + "size": 9, + "type": "struct" + }, + "starkware.starknet.common.syscalls.DeployRequest": { + "full_name": "starkware.starknet.common.syscalls.DeployRequest", + "members": { + "class_hash": { + "cairo_type": "felt", + "offset": 1 + }, + "constructor_calldata": { + "cairo_type": "felt*", + "offset": 4 + }, + "constructor_calldata_size": { + "cairo_type": "felt", + "offset": 3 + }, + "contract_address_salt": { + "cairo_type": "felt", + "offset": 2 + }, + "deploy_from_zero": { + "cairo_type": "felt", + "offset": 5 + }, + "selector": { + "cairo_type": "felt", + "offset": 0 + } + }, + "size": 6, + "type": "struct" + }, + "starkware.starknet.common.syscalls.DeployResponse": { + "full_name": "starkware.starknet.common.syscalls.DeployResponse", + "members": { + "constructor_retdata": { + "cairo_type": "felt*", + "offset": 2 + }, + "constructor_retdata_size": { + "cairo_type": "felt", + "offset": 1 + }, + "contract_address": { + "cairo_type": "felt", + "offset": 0 + } + }, + "size": 3, + "type": "struct" + }, + "starkware.starknet.common.syscalls.DictAccess": { + "destination": "starkware.cairo.common.dict_access.DictAccess", + "type": "alias" + }, + "starkware.starknet.common.syscalls.EMIT_EVENT_SELECTOR": { + "type": "const", + "value": 1280709301550335749748 + }, + "starkware.starknet.common.syscalls.EmitEvent": { + "full_name": "starkware.starknet.common.syscalls.EmitEvent", + "members": { + "data": { + "cairo_type": "felt*", + "offset": 4 + }, + "data_len": { + "cairo_type": "felt", + "offset": 3 + }, + "keys": { + "cairo_type": "felt*", + "offset": 2 + }, + "keys_len": { + "cairo_type": "felt", + "offset": 1 + }, + "selector": { + "cairo_type": "felt", + "offset": 0 + } + }, + "size": 5, + "type": "struct" + }, + "starkware.starknet.common.syscalls.GET_BLOCK_NUMBER_SELECTOR": { + "type": "const", + "value": 1448089106835523001438702345020786 + }, + "starkware.starknet.common.syscalls.GET_BLOCK_TIMESTAMP_SELECTOR": { + "type": "const", + "value": 24294903732626645868215235778792757751152 + }, + "starkware.starknet.common.syscalls.GET_CALLER_ADDRESS_SELECTOR": { + "type": "const", + "value": 94901967781393078444254803017658102643 + }, + "starkware.starknet.common.syscalls.GET_CONTRACT_ADDRESS_SELECTOR": { + "type": "const", + "value": 6219495360805491471215297013070624192820083 + }, + "starkware.starknet.common.syscalls.GET_SEQUENCER_ADDRESS_SELECTOR": { + "type": "const", + "value": 1592190833581991703053805829594610833820054387 + }, + "starkware.starknet.common.syscalls.GET_TX_INFO_SELECTOR": { + "type": "const", + "value": 1317029390204112103023 + }, + "starkware.starknet.common.syscalls.GET_TX_SIGNATURE_SELECTOR": { + "type": "const", + "value": 1448089128652340074717162277007973 + }, + "starkware.starknet.common.syscalls.GetBlockNumber": { + "full_name": "starkware.starknet.common.syscalls.GetBlockNumber", + "members": { + "request": { + "cairo_type": "starkware.starknet.common.syscalls.GetBlockNumberRequest", + "offset": 0 + }, + "response": { + "cairo_type": "starkware.starknet.common.syscalls.GetBlockNumberResponse", + "offset": 1 + } + }, + "size": 2, + "type": "struct" + }, + "starkware.starknet.common.syscalls.GetBlockNumberRequest": { + "full_name": "starkware.starknet.common.syscalls.GetBlockNumberRequest", + "members": { + "selector": { + "cairo_type": "felt", + "offset": 0 + } + }, + "size": 1, + "type": "struct" + }, + "starkware.starknet.common.syscalls.GetBlockNumberResponse": { + "full_name": "starkware.starknet.common.syscalls.GetBlockNumberResponse", + "members": { + "block_number": { + "cairo_type": "felt", + "offset": 0 + } + }, + "size": 1, + "type": "struct" + }, + "starkware.starknet.common.syscalls.GetBlockTimestamp": { + "full_name": "starkware.starknet.common.syscalls.GetBlockTimestamp", + "members": { + "request": { + "cairo_type": "starkware.starknet.common.syscalls.GetBlockTimestampRequest", + "offset": 0 + }, + "response": { + "cairo_type": "starkware.starknet.common.syscalls.GetBlockTimestampResponse", + "offset": 1 + } + }, + "size": 2, + "type": "struct" + }, + "starkware.starknet.common.syscalls.GetBlockTimestampRequest": { + "full_name": "starkware.starknet.common.syscalls.GetBlockTimestampRequest", + "members": { + "selector": { + "cairo_type": "felt", + "offset": 0 + } + }, + "size": 1, + "type": "struct" + }, + "starkware.starknet.common.syscalls.GetBlockTimestampResponse": { + "full_name": "starkware.starknet.common.syscalls.GetBlockTimestampResponse", + "members": { + "block_timestamp": { + "cairo_type": "felt", + "offset": 0 + } + }, + "size": 1, + "type": "struct" + }, + "starkware.starknet.common.syscalls.GetCallerAddress": { + "full_name": "starkware.starknet.common.syscalls.GetCallerAddress", + "members": { + "request": { + "cairo_type": "starkware.starknet.common.syscalls.GetCallerAddressRequest", + "offset": 0 + }, + "response": { + "cairo_type": "starkware.starknet.common.syscalls.GetCallerAddressResponse", + "offset": 1 + } + }, + "size": 2, + "type": "struct" + }, + "starkware.starknet.common.syscalls.GetCallerAddressRequest": { + "full_name": "starkware.starknet.common.syscalls.GetCallerAddressRequest", + "members": { + "selector": { + "cairo_type": "felt", + "offset": 0 + } + }, + "size": 1, + "type": "struct" + }, + "starkware.starknet.common.syscalls.GetCallerAddressResponse": { + "full_name": "starkware.starknet.common.syscalls.GetCallerAddressResponse", + "members": { + "caller_address": { + "cairo_type": "felt", + "offset": 0 + } + }, + "size": 1, + "type": "struct" + }, + "starkware.starknet.common.syscalls.GetContractAddress": { + "full_name": "starkware.starknet.common.syscalls.GetContractAddress", + "members": { + "request": { + "cairo_type": "starkware.starknet.common.syscalls.GetContractAddressRequest", + "offset": 0 + }, + "response": { + "cairo_type": "starkware.starknet.common.syscalls.GetContractAddressResponse", + "offset": 1 + } + }, + "size": 2, + "type": "struct" + }, + "starkware.starknet.common.syscalls.GetContractAddressRequest": { + "full_name": "starkware.starknet.common.syscalls.GetContractAddressRequest", + "members": { + "selector": { + "cairo_type": "felt", + "offset": 0 + } + }, + "size": 1, + "type": "struct" + }, + "starkware.starknet.common.syscalls.GetContractAddressResponse": { + "full_name": "starkware.starknet.common.syscalls.GetContractAddressResponse", + "members": { + "contract_address": { + "cairo_type": "felt", + "offset": 0 + } + }, + "size": 1, + "type": "struct" + }, + "starkware.starknet.common.syscalls.GetSequencerAddress": { + "full_name": "starkware.starknet.common.syscalls.GetSequencerAddress", + "members": { + "request": { + "cairo_type": "starkware.starknet.common.syscalls.GetSequencerAddressRequest", + "offset": 0 + }, + "response": { + "cairo_type": "starkware.starknet.common.syscalls.GetSequencerAddressResponse", + "offset": 1 + } + }, + "size": 2, + "type": "struct" + }, + "starkware.starknet.common.syscalls.GetSequencerAddressRequest": { + "full_name": "starkware.starknet.common.syscalls.GetSequencerAddressRequest", + "members": { + "selector": { + "cairo_type": "felt", + "offset": 0 + } + }, + "size": 1, + "type": "struct" + }, + "starkware.starknet.common.syscalls.GetSequencerAddressResponse": { + "full_name": "starkware.starknet.common.syscalls.GetSequencerAddressResponse", + "members": { + "sequencer_address": { + "cairo_type": "felt", + "offset": 0 + } + }, + "size": 1, + "type": "struct" + }, + "starkware.starknet.common.syscalls.GetTxInfo": { + "full_name": "starkware.starknet.common.syscalls.GetTxInfo", + "members": { + "request": { + "cairo_type": "starkware.starknet.common.syscalls.GetTxInfoRequest", + "offset": 0 + }, + "response": { + "cairo_type": "starkware.starknet.common.syscalls.GetTxInfoResponse", + "offset": 1 + } + }, + "size": 2, + "type": "struct" + }, + "starkware.starknet.common.syscalls.GetTxInfoRequest": { + "full_name": "starkware.starknet.common.syscalls.GetTxInfoRequest", + "members": { + "selector": { + "cairo_type": "felt", + "offset": 0 + } + }, + "size": 1, + "type": "struct" + }, + "starkware.starknet.common.syscalls.GetTxInfoResponse": { + "full_name": "starkware.starknet.common.syscalls.GetTxInfoResponse", + "members": { + "tx_info": { + "cairo_type": "starkware.starknet.common.syscalls.TxInfo*", + "offset": 0 + } + }, + "size": 1, + "type": "struct" + }, + "starkware.starknet.common.syscalls.GetTxSignature": { + "full_name": "starkware.starknet.common.syscalls.GetTxSignature", + "members": { + "request": { + "cairo_type": "starkware.starknet.common.syscalls.GetTxSignatureRequest", + "offset": 0 + }, + "response": { + "cairo_type": "starkware.starknet.common.syscalls.GetTxSignatureResponse", + "offset": 1 + } + }, + "size": 3, + "type": "struct" + }, + "starkware.starknet.common.syscalls.GetTxSignatureRequest": { + "full_name": "starkware.starknet.common.syscalls.GetTxSignatureRequest", + "members": { + "selector": { + "cairo_type": "felt", + "offset": 0 + } + }, + "size": 1, + "type": "struct" + }, + "starkware.starknet.common.syscalls.GetTxSignatureResponse": { + "full_name": "starkware.starknet.common.syscalls.GetTxSignatureResponse", + "members": { + "signature": { + "cairo_type": "felt*", + "offset": 1 + }, + "signature_len": { + "cairo_type": "felt", + "offset": 0 + } + }, + "size": 2, + "type": "struct" + }, + "starkware.starknet.common.syscalls.LIBRARY_CALL_L1_HANDLER_SELECTOR": { + "type": "const", + "value": 436233452754198157705746250789557519228244616562 + }, + "starkware.starknet.common.syscalls.LIBRARY_CALL_SELECTOR": { + "type": "const", + "value": 92376026794327011772951660 + }, + "starkware.starknet.common.syscalls.LibraryCall": { + "full_name": "starkware.starknet.common.syscalls.LibraryCall", + "members": { + "request": { + "cairo_type": "starkware.starknet.common.syscalls.LibraryCallRequest", + "offset": 0 + }, + "response": { + "cairo_type": "starkware.starknet.common.syscalls.CallContractResponse", + "offset": 5 + } + }, + "size": 7, + "type": "struct" + }, + "starkware.starknet.common.syscalls.LibraryCallRequest": { + "full_name": "starkware.starknet.common.syscalls.LibraryCallRequest", + "members": { + "calldata": { + "cairo_type": "felt*", + "offset": 4 + }, + "calldata_size": { + "cairo_type": "felt", + "offset": 3 + }, + "class_hash": { + "cairo_type": "felt", + "offset": 1 + }, + "function_selector": { + "cairo_type": "felt", + "offset": 2 + }, + "selector": { + "cairo_type": "felt", + "offset": 0 + } + }, + "size": 5, + "type": "struct" + }, + "starkware.starknet.common.syscalls.REPLACE_CLASS_SELECTOR": { + "type": "const", + "value": 25500403217443378527601783667 + }, + "starkware.starknet.common.syscalls.ReplaceClass": { + "full_name": "starkware.starknet.common.syscalls.ReplaceClass", + "members": { + "class_hash": { + "cairo_type": "felt", + "offset": 1 + }, + "selector": { + "cairo_type": "felt", + "offset": 0 + } + }, + "size": 2, + "type": "struct" + }, + "starkware.starknet.common.syscalls.SEND_MESSAGE_TO_L1_SELECTOR": { + "type": "const", + "value": 433017908768303439907196859243777073 + }, + "starkware.starknet.common.syscalls.STORAGE_READ_SELECTOR": { + "type": "const", + "value": 100890693370601760042082660 + }, + "starkware.starknet.common.syscalls.STORAGE_WRITE_SELECTOR": { + "type": "const", + "value": 25828017502874050592466629733 + }, + "starkware.starknet.common.syscalls.SendMessageToL1SysCall": { + "full_name": "starkware.starknet.common.syscalls.SendMessageToL1SysCall", + "members": { + "payload_ptr": { + "cairo_type": "felt*", + "offset": 3 + }, + "payload_size": { + "cairo_type": "felt", + "offset": 2 + }, + "selector": { + "cairo_type": "felt", + "offset": 0 + }, + "to_address": { + "cairo_type": "felt", + "offset": 1 + } + }, + "size": 4, + "type": "struct" + }, + "starkware.starknet.common.syscalls.StorageRead": { + "full_name": "starkware.starknet.common.syscalls.StorageRead", + "members": { + "request": { + "cairo_type": "starkware.starknet.common.syscalls.StorageReadRequest", + "offset": 0 + }, + "response": { + "cairo_type": "starkware.starknet.common.syscalls.StorageReadResponse", + "offset": 2 + } + }, + "size": 3, + "type": "struct" + }, + "starkware.starknet.common.syscalls.StorageReadRequest": { + "full_name": "starkware.starknet.common.syscalls.StorageReadRequest", + "members": { + "address": { + "cairo_type": "felt", + "offset": 1 + }, + "selector": { + "cairo_type": "felt", + "offset": 0 + } + }, + "size": 2, + "type": "struct" + }, + "starkware.starknet.common.syscalls.StorageReadResponse": { + "full_name": "starkware.starknet.common.syscalls.StorageReadResponse", + "members": { + "value": { + "cairo_type": "felt", + "offset": 0 + } + }, + "size": 1, + "type": "struct" + }, + "starkware.starknet.common.syscalls.StorageWrite": { + "full_name": "starkware.starknet.common.syscalls.StorageWrite", + "members": { + "address": { + "cairo_type": "felt", + "offset": 1 + }, + "selector": { + "cairo_type": "felt", + "offset": 0 + }, + "value": { + "cairo_type": "felt", + "offset": 2 + } + }, + "size": 3, + "type": "struct" + }, + "starkware.starknet.common.syscalls.TxInfo": { + "full_name": "starkware.starknet.common.syscalls.TxInfo", + "members": { + "account_contract_address": { + "cairo_type": "felt", + "offset": 1 + }, + "chain_id": { + "cairo_type": "felt", + "offset": 6 + }, + "max_fee": { + "cairo_type": "felt", + "offset": 2 + }, + "nonce": { + "cairo_type": "felt", + "offset": 7 + }, + "signature": { + "cairo_type": "felt*", + "offset": 4 + }, + "signature_len": { + "cairo_type": "felt", + "offset": 3 + }, + "transaction_hash": { + "cairo_type": "felt", + "offset": 5 + }, + "version": { + "cairo_type": "felt", + "offset": 0 + } + }, + "size": 8, + "type": "struct" + }, + "starkware.starknet.common.syscalls.get_block_number": { + "decorators": [], + "pc": 0, + "type": "function" + }, + "starkware.starknet.common.syscalls.get_block_number.Args": { + "full_name": "starkware.starknet.common.syscalls.get_block_number.Args", + "members": {}, + "size": 0, + "type": "struct" + }, + "starkware.starknet.common.syscalls.get_block_number.ImplicitArgs": { + "full_name": "starkware.starknet.common.syscalls.get_block_number.ImplicitArgs", + "members": { + "syscall_ptr": { + "cairo_type": "felt*", + "offset": 0 + } + }, + "size": 1, + "type": "struct" + }, + "starkware.starknet.common.syscalls.get_block_number.Return": { + "cairo_type": "(block_number: felt)", + "type": "type_definition" + }, + "starkware.starknet.common.syscalls.get_block_number.SIZEOF_LOCALS": { + "type": "const", + "value": 0 + }, + "starkware.starknet.common.syscalls.get_block_number.syscall_ptr": { + "cairo_type": "felt*", + "full_name": "starkware.starknet.common.syscalls.get_block_number.syscall_ptr", + "references": [ + { + "ap_tracking_data": { + "group": 0, + "offset": 0 + }, + "pc": 0, + "value": "[cast(fp + (-3), felt**)]" + }, + { + "ap_tracking_data": { + "group": 0, + "offset": 1 + }, + "pc": 3, + "value": "cast([fp + (-3)] + 2, felt*)" + } + ], + "type": "reference" + }, + "starkware.starknet.common.syscalls.get_block_timestamp": { + "decorators": [], + "pc": 7, + "type": "function" + }, + "starkware.starknet.common.syscalls.get_block_timestamp.Args": { + "full_name": "starkware.starknet.common.syscalls.get_block_timestamp.Args", + "members": {}, + "size": 0, + "type": "struct" + }, + "starkware.starknet.common.syscalls.get_block_timestamp.ImplicitArgs": { + "full_name": "starkware.starknet.common.syscalls.get_block_timestamp.ImplicitArgs", + "members": { + "syscall_ptr": { + "cairo_type": "felt*", + "offset": 0 + } + }, + "size": 1, + "type": "struct" + }, + "starkware.starknet.common.syscalls.get_block_timestamp.Return": { + "cairo_type": "(block_timestamp: felt)", + "type": "type_definition" + }, + "starkware.starknet.common.syscalls.get_block_timestamp.SIZEOF_LOCALS": { + "type": "const", + "value": 0 + }, + "starkware.starknet.common.syscalls.get_block_timestamp.syscall_ptr": { + "cairo_type": "felt*", + "full_name": "starkware.starknet.common.syscalls.get_block_timestamp.syscall_ptr", + "references": [ + { + "ap_tracking_data": { + "group": 1, + "offset": 0 + }, + "pc": 7, + "value": "[cast(fp + (-3), felt**)]" + }, + { + "ap_tracking_data": { + "group": 1, + "offset": 1 + }, + "pc": 10, + "value": "cast([fp + (-3)] + 2, felt*)" + } + ], + "type": "reference" + } + }, + "main_scope": "__main__", + "prime": "0x800000000000011000000000000000000000000000000000000000000000001", + "reference_manager": { + "references": [ + { + "ap_tracking_data": { + "group": 0, + "offset": 0 + }, + "pc": 0, + "value": "[cast(fp + (-3), felt**)]" + }, + { + "ap_tracking_data": { + "group": 1, + "offset": 0 + }, + "pc": 7, + "value": "[cast(fp + (-3), felt**)]" + }, + { + "ap_tracking_data": { + "group": 2, + "offset": 0 + }, + "pc": 14, + "value": "[cast(fp + (-4), felt*)]" + }, + { + "ap_tracking_data": { + "group": 2, + "offset": 0 + }, + "pc": 14, + "value": "[cast(fp + (-3), felt*)]" + }, + { + "ap_tracking_data": { + "group": 3, + "offset": 0 + }, + "pc": 20, + "value": "[cast(fp + (-3), felt*)]" + }, + { + "ap_tracking_data": { + "group": 5, + "offset": 0 + }, + "pc": 29, + "value": "[cast(fp + (-4), felt*)]" + }, + { + "ap_tracking_data": { + "group": 5, + "offset": 0 + }, + "pc": 29, + "value": "[cast(fp + (-3), felt*)]" + }, + { + "ap_tracking_data": { + "group": 5, + "offset": 0 + }, + "pc": 29, + "value": "[cast([fp + (-5)], felt*)]" + }, + { + "ap_tracking_data": { + "group": 5, + "offset": 0 + }, + "pc": 29, + "value": "[cast([fp + (-5)] + 1, felt*)]" + } + ] + } + } +} diff --git a/crates/blockifier_test_utils/resources/feature_contracts/cairo1/block_info_test_contract.cairo b/crates/blockifier_test_utils/resources/feature_contracts/cairo1/block_info_test_contract.cairo new file mode 100644 index 00000000000..7b5abbb169f --- /dev/null +++ b/crates/blockifier_test_utils/resources/feature_contracts/cairo1/block_info_test_contract.cairo @@ -0,0 +1,96 @@ +#[starknet::contract(account)] +mod Account { + use array::ArrayTrait; + use array::SpanTrait; + use box::BoxTrait; + use starknet::{ + ContractAddress, + info::SyscallResultTrait, + get_block_number, + get_block_timestamp, + }; + use zeroable::{IsZeroResult, NonZeroIntoImpl, Zeroable}; + + // Round down the block number and timestamp when queried inside `__validate__`. + const VALIDATE_BLOCK_NUMBER_ROUNDING: u64 = 100; + const VALIDATE_TIMESTAMP_ROUNDING: u64 = 3600; + + #[storage] + struct Storage { + } + + #[constructor] + fn constructor(ref self: ContractState, is_validate_: bool) { + test_block_info(is_validate: is_validate_); + } + + #[external(v0)] + fn __validate_deploy__( + self: @ContractState, + class_hash: felt252, + contract_address_salt: felt252, + is_validate_: bool + ) -> felt252 { + test_block_info(is_validate: true) + } + + #[external(v0)] + fn __validate_declare__(self: @ContractState, class_hash: felt252) -> felt252 { + test_block_info(is_validate: true) + } + + #[external(v0)] + fn __validate__( + self: @ContractState, + contract_address: ContractAddress, + selector: felt252, + calldata: Array + ) -> felt252 { + test_block_info(is_validate: true) + } + + #[external(v0)] + #[raw_output] + fn __execute__( + self: @ContractState, + contract_address: ContractAddress, + selector: felt252, + calldata: Array + ) -> Span { + array![test_block_info(is_validate: false)].span() + } + + + fn test_block_info(is_validate: bool) -> felt252 { + let block_number = get_block_number(); + let block_timestamp = get_block_timestamp(); + test_given_block_info( + block_number, block_timestamp, is_validate + ) + } + + fn test_given_block_info ( + block_number: u64, block_timestamp: u64, is_validate: bool + ) -> felt252 { + // Verify the block number and timestamp. + assert (VALIDATE_BLOCK_NUMBER_ROUNDING != 0, 'INVALID_ROUNDING'); + let (divided_block_number, _) = DivRem::div_rem( + block_number, VALIDATE_BLOCK_NUMBER_ROUNDING.try_into().unwrap() + ); + let block_number_for_validate = divided_block_number * VALIDATE_BLOCK_NUMBER_ROUNDING; + let (divided_block_timestamp, _) = DivRem::div_rem( + block_timestamp, VALIDATE_TIMESTAMP_ROUNDING.try_into().unwrap() + ); + let block_timestamp_for_validate = ( + divided_block_timestamp * VALIDATE_TIMESTAMP_ROUNDING + ); + + if is_validate { + assert (block_number == block_number_for_validate, 'INVALID_BLOCK_NUMBER'); + assert (block_timestamp == block_timestamp_for_validate, 'INVALID_BLOCK_TIMESTAMP'); + return starknet::VALIDATED; + } + assert (!is_validate, 'INVALID_IS_VALIDATE'); + starknet::VALIDATED + } +} diff --git a/crates/blockifier_test_utils/resources/feature_contracts/cairo1/compiled/block_info_test_contract.casm.json b/crates/blockifier_test_utils/resources/feature_contracts/cairo1/compiled/block_info_test_contract.casm.json new file mode 100644 index 00000000000..720ac98db6c --- /dev/null +++ b/crates/blockifier_test_utils/resources/feature_contracts/cairo1/compiled/block_info_test_contract.casm.json @@ -0,0 +1,2309 @@ +{ + "prime": "0x800000000000011000000000000000000000000000000000000000000000001", + "compiler_version": "2.12.3", + "bytecode": [ + "0xa0680017fff8000", + "0x7", + "0x482680017ffa8000", + "0x100000000000000000000000000000000", + "0x400280007ff97fff", + "0x10780017fff7fff", + "0xb5", + "0x4825800180007ffa", + "0x0", + "0x400280007ff97fff", + "0x48297ffc80007ffd", + "0x20680017fff7fff", + "0x4", + "0x10780017fff7fff", + "0xa2", + "0x482680017ffc8000", + "0x1", + "0x480a7ffd7fff8000", + "0x48307ffe80007fff", + "0x20680017fff7fff", + "0x4", + "0x10780017fff7fff", + "0x8f", + "0x482480017ffd8000", + "0x1", + "0x48127ffd7fff8000", + "0x48307ffe80007fff", + "0x20680017fff7fff", + "0x4", + "0x10780017fff7fff", + "0x7c", + "0x480080007ffd8000", + "0x20680017fff7fff", + "0x6", + "0x482480017ff78000", + "0x1360", + "0x10780017fff7fff", + "0x4", + "0x482480017ff78000", + "0x13c4", + "0x482480017ffb8000", + "0x1", + "0x48127ffb7fff8000", + "0x48307ffe80007fff", + "0x20680017fff7fff", + "0x4", + "0x10780017fff7fff", + "0xd", + "0x1104800180018000", + "0x397", + "0x482680017ff98000", + "0x1", + "0x48127ff37fff8000", + "0x480a7ffb7fff8000", + "0x480680017fff8000", + "0x1", + "0x48127ffa7fff8000", + "0x48127ffa7fff8000", + "0x208b7fff7fff7ffe", + "0x1104800180018000", + "0x50a", + "0x482480017fff8000", + "0x509", + "0x480080007fff8000", + "0xa0680017fff8000", + "0x9", + "0x4824800180007ff7", + "0x6568", + "0x482480017fff8000", + "0x100000000000000000000000000000000", + "0x400280017ff97fff", + "0x10780017fff7fff", + "0x4d", + "0x4824800180007ff7", + "0x6568", + "0x400280017ff97fff", + "0x480680017fff8000", + "0x476574457865637574696f6e496e666f", + "0x400280007ffb7fff", + "0x400280017ffb7ffe", + "0x480280037ffb8000", + "0x20680017fff7fff", + "0x39", + "0x480280027ffb8000", + "0x480680017fff8000", + "0x476574457865637574696f6e496e666f", + "0x400280057ffb7fff", + "0x400280067ffb7ffe", + "0x480280087ffb8000", + "0x20680017fff7fff", + "0x27", + "0x480280047ffb8000", + "0x480080007fff8000", + "0x480280097ffb8000", + "0x480080007fff8000", + "0x482680017ff98000", + "0x2", + "0x480080007ffc8000", + "0x480080017ffd8000", + "0x480680017fff8000", + "0x1", + "0x1104800180018000", + "0x367", + "0x20680017fff7ffd", + "0x10", + "0x480280077ffb8000", + "0x40780017fff7fff", + "0x1", + "0x400080007fff7ffd", + "0x48127ffa7fff8000", + "0x48127ffd7fff8000", + "0x482680017ffb8000", + "0xa", + "0x480680017fff8000", + "0x0", + "0x48127ffb7fff8000", + "0x482480017ffa8000", + "0x1", + "0x208b7fff7fff7ffe", + "0x48127ffc7fff8000", + "0x480280077ffb8000", + "0x482680017ffb8000", + "0xa", + "0x480680017fff8000", + "0x1", + "0x48127ffa7fff8000", + "0x48127ffa7fff8000", + "0x208b7fff7fff7ffe", + "0x482680017ff98000", + "0x2", + "0x480280077ffb8000", + "0x482680017ffb8000", + "0xb", + "0x480680017fff8000", + "0x1", + "0x480280097ffb8000", + "0x4802800a7ffb8000", + "0x208b7fff7fff7ffe", + "0x482680017ff98000", + "0x2", + "0x480280027ffb8000", + "0x482680017ffb8000", + "0x6", + "0x480680017fff8000", + "0x1", + "0x480280047ffb8000", + "0x480280057ffb8000", + "0x208b7fff7fff7ffe", + "0x482680017ff98000", + "0x2", + "0x48127ff47fff8000", + "0x10780017fff7fff", + "0x27", + "0x1104800180018000", + "0x3ad", + "0x482680017ff98000", + "0x1", + "0x48127fef7fff8000", + "0x480a7ffb7fff8000", + "0x480680017fff8000", + "0x1", + "0x48127ffa7fff8000", + "0x48127ffa7fff8000", + "0x208b7fff7fff7ffe", + "0x1104800180018000", + "0x3a7", + "0x482680017ff98000", + "0x1", + "0x48127ff27fff8000", + "0x480a7ffb7fff8000", + "0x480680017fff8000", + "0x1", + "0x48127ffa7fff8000", + "0x48127ffa7fff8000", + "0x208b7fff7fff7ffe", + "0x1104800180018000", + "0x3a1", + "0x482680017ff98000", + "0x1", + "0x48127ff57fff8000", + "0x480a7ffb7fff8000", + "0x480680017fff8000", + "0x1", + "0x48127ffa7fff8000", + "0x48127ffa7fff8000", + "0x208b7fff7fff7ffe", + "0x482680017ff98000", + "0x1", + "0x482680017ffa8000", + "0x1e96", + "0x1104800180018000", + "0x397", + "0x48127ff67fff8000", + "0x48127ff67fff8000", + "0x480a7ffb7fff8000", + "0x480680017fff8000", + "0x1", + "0x48127ffa7fff8000", + "0x48127ffa7fff8000", + "0x208b7fff7fff7ffe", + "0xa0680017fff8000", + "0x7", + "0x482680017ffa8000", + "0x100000000000000000000000000000000", + "0x400280007ff97fff", + "0x10780017fff7fff", + "0x87", + "0x4825800180007ffa", + "0x0", + "0x400280007ff97fff", + "0x48297ffc80007ffd", + "0x20680017fff7fff", + "0x4", + "0x10780017fff7fff", + "0x74", + "0x482680017ffc8000", + "0x1", + "0x480a7ffd7fff8000", + "0x48307ffe80007fff", + "0x20680017fff7fff", + "0x4", + "0x10780017fff7fff", + "0xd", + "0x1104800180018000", + "0x2e8", + "0x482680017ff98000", + "0x1", + "0x48127ff27fff8000", + "0x480a7ffb7fff8000", + "0x480680017fff8000", + "0x1", + "0x48127ffa7fff8000", + "0x48127ffa7fff8000", + "0x208b7fff7fff7ffe", + "0x1104800180018000", + "0x45b", + "0x482480017fff8000", + "0x45a", + "0x480080007fff8000", + "0xa0680017fff8000", + "0x9", + "0x4824800180007ff6", + "0x4d58", + "0x482480017fff8000", + "0x100000000000000000000000000000000", + "0x400280017ff97fff", + "0x10780017fff7fff", + "0x4d", + "0x4824800180007ff6", + "0x4d58", + "0x400280017ff97fff", + "0x480680017fff8000", + "0x476574457865637574696f6e496e666f", + "0x400280007ffb7fff", + "0x400280017ffb7ffe", + "0x480280037ffb8000", + "0x20680017fff7fff", + "0x39", + "0x480280027ffb8000", + "0x480680017fff8000", + "0x476574457865637574696f6e496e666f", + "0x400280057ffb7fff", + "0x400280067ffb7ffe", + "0x480280087ffb8000", + "0x20680017fff7fff", + "0x27", + "0x480280047ffb8000", + "0x480080007fff8000", + "0x480280097ffb8000", + "0x480080007fff8000", + "0x482680017ff98000", + "0x2", + "0x480080007ffc8000", + "0x480080017ffd8000", + "0x480680017fff8000", + "0x1", + "0x1104800180018000", + "0x2b8", + "0x20680017fff7ffd", + "0x10", + "0x480280077ffb8000", + "0x40780017fff7fff", + "0x1", + "0x400080007fff7ffd", + "0x48127ffa7fff8000", + "0x48127ffd7fff8000", + "0x482680017ffb8000", + "0xa", + "0x480680017fff8000", + "0x0", + "0x48127ffb7fff8000", + "0x482480017ffa8000", + "0x1", + "0x208b7fff7fff7ffe", + "0x48127ffc7fff8000", + "0x480280077ffb8000", + "0x482680017ffb8000", + "0xa", + "0x480680017fff8000", + "0x1", + "0x48127ffa7fff8000", + "0x48127ffa7fff8000", + "0x208b7fff7fff7ffe", + "0x482680017ff98000", + "0x2", + "0x480280077ffb8000", + "0x482680017ffb8000", + "0xb", + "0x480680017fff8000", + "0x1", + "0x480280097ffb8000", + "0x4802800a7ffb8000", + "0x208b7fff7fff7ffe", + "0x482680017ff98000", + "0x2", + "0x480280027ffb8000", + "0x482680017ffb8000", + "0x6", + "0x480680017fff8000", + "0x1", + "0x480280047ffb8000", + "0x480280057ffb8000", + "0x208b7fff7fff7ffe", + "0x482680017ff98000", + "0x2", + "0x482480017ff38000", + "0x1810", + "0x10780017fff7fff", + "0x11", + "0x1104800180018000", + "0x307", + "0x482680017ff98000", + "0x1", + "0x48127ff57fff8000", + "0x480a7ffb7fff8000", + "0x480680017fff8000", + "0x1", + "0x48127ffa7fff8000", + "0x48127ffa7fff8000", + "0x208b7fff7fff7ffe", + "0x482680017ff98000", + "0x1", + "0x482680017ffa8000", + "0x1e96", + "0x1104800180018000", + "0x2fd", + "0x48127ff67fff8000", + "0x48127ff67fff8000", + "0x480a7ffb7fff8000", + "0x480680017fff8000", + "0x1", + "0x48127ffa7fff8000", + "0x48127ffa7fff8000", + "0x208b7fff7fff7ffe", + "0xa0680017fff8000", + "0x7", + "0x482680017ffa8000", + "0x100000000000000000000000000000000", + "0x400280007ff97fff", + "0x10780017fff7fff", + "0xea", + "0x4825800180007ffa", + "0x0", + "0x400280007ff97fff", + "0x48297ffc80007ffd", + "0x20680017fff7fff", + "0x4", + "0x10780017fff7fff", + "0xd4", + "0x480280007ffc8000", + "0xa0680017fff8004", + "0xe", + "0x4824800180047ffe", + "0x800000000000000000000000000000000000000000000000000000000000000", + "0x484480017ffe8000", + "0x110000000000000000", + "0x48307ffe7fff8002", + "0x480280017ff97ffc", + "0x480280027ff97ffc", + "0x402480017ffb7ffd", + "0xffffffffffffffeeffffffffffffffff", + "0x400280037ff97ffd", + "0x10780017fff7fff", + "0xbf", + "0x484480017fff8001", + "0x8000000000000000000000000000000", + "0x48307fff80007ffd", + "0x480280017ff97ffd", + "0x480280027ff97ffd", + "0x402480017ffc7ffe", + "0xf8000000000000000000000000000000", + "0x400280037ff97ffe", + "0x482680017ffc8000", + "0x1", + "0x480a7ffd7fff8000", + "0x48307ffe80007fff", + "0x20680017fff7fff", + "0x4", + "0x10780017fff7fff", + "0xa4", + "0x482480017ffd8000", + "0x1", + "0x48127ffd7fff8000", + "0x48307ffe80007fff", + "0x20680017fff7fff", + "0x4", + "0x10780017fff7fff", + "0x8e", + "0x40780017fff7fff", + "0x1", + "0x482680017ff98000", + "0x4", + "0x48127ff07fff8000", + "0x482480017ffa8000", + "0x1", + "0x48127ffa7fff8000", + "0x48127ffb7fff8000", + "0x48127ffa7fff8000", + "0x480080007ff68000", + "0x1104800180018000", + "0x2b7", + "0x20680017fff7ffa", + "0x77", + "0x20680017fff7ffd", + "0x70", + "0x48307ffb80007ffc", + "0x20680017fff7fff", + "0x4", + "0x10780017fff7fff", + "0xc", + "0x1104800180018000", + "0x219", + "0x48127fef7fff8000", + "0x48127fef7fff8000", + "0x480a7ffb7fff8000", + "0x480680017fff8000", + "0x1", + "0x48127ffa7fff8000", + "0x48127ffa7fff8000", + "0x208b7fff7fff7ffe", + "0x1104800180018000", + "0x38d", + "0x482480017fff8000", + "0x38c", + "0x480080007fff8000", + "0xa0680017fff8000", + "0x9", + "0x4824800180007ff3", + "0x60cc", + "0x482480017fff8000", + "0x100000000000000000000000000000000", + "0x400080007ff07fff", + "0x10780017fff7fff", + "0x4d", + "0x4824800180007ff3", + "0x60cc", + "0x400080007ff17fff", + "0x480680017fff8000", + "0x476574457865637574696f6e496e666f", + "0x400280007ffb7fff", + "0x400280017ffb7ffe", + "0x480280037ffb8000", + "0x20680017fff7fff", + "0x39", + "0x480280027ffb8000", + "0x480680017fff8000", + "0x476574457865637574696f6e496e666f", + "0x400280057ffb7fff", + "0x400280067ffb7ffe", + "0x480280087ffb8000", + "0x20680017fff7fff", + "0x27", + "0x480280047ffb8000", + "0x480080007fff8000", + "0x480280097ffb8000", + "0x480080007fff8000", + "0x482480017fe88000", + "0x1", + "0x480080007ffc8000", + "0x480080017ffd8000", + "0x480680017fff8000", + "0x1", + "0x1104800180018000", + "0x1ea", + "0x20680017fff7ffd", + "0x10", + "0x480280077ffb8000", + "0x40780017fff7fff", + "0x1", + "0x400080007fff7ffd", + "0x48127ffa7fff8000", + "0x48127ffd7fff8000", + "0x482680017ffb8000", + "0xa", + "0x480680017fff8000", + "0x0", + "0x48127ffb7fff8000", + "0x482480017ffa8000", + "0x1", + "0x208b7fff7fff7ffe", + "0x48127ffc7fff8000", + "0x480280077ffb8000", + "0x482680017ffb8000", + "0xa", + "0x480680017fff8000", + "0x1", + "0x48127ffa7fff8000", + "0x48127ffa7fff8000", + "0x208b7fff7fff7ffe", + "0x482480017fec8000", + "0x1", + "0x480280077ffb8000", + "0x482680017ffb8000", + "0xb", + "0x480680017fff8000", + "0x1", + "0x480280097ffb8000", + "0x4802800a7ffb8000", + "0x208b7fff7fff7ffe", + "0x482480017fef8000", + "0x1", + "0x480280027ffb8000", + "0x482680017ffb8000", + "0x6", + "0x480680017fff8000", + "0x1", + "0x480280047ffb8000", + "0x480280057ffb8000", + "0x208b7fff7fff7ffe", + "0x482480017ff08000", + "0x1", + "0x482480017ff08000", + "0x49c", + "0x10780017fff7fff", + "0x40", + "0x48127ff87fff8000", + "0x482480017ff88000", + "0x992", + "0x10780017fff7fff", + "0xe", + "0x48127ff87fff8000", + "0x48127ff87fff8000", + "0x480a7ffb7fff8000", + "0x480680017fff8000", + "0x1", + "0x48127ffa7fff8000", + "0x48127ffa7fff8000", + "0x208b7fff7fff7ffe", + "0x482680017ff98000", + "0x4", + "0x482480017ff18000", + "0x16bc", + "0x1104800180018000", + "0x21e", + "0x48127ff67fff8000", + "0x48127ff67fff8000", + "0x480a7ffb7fff8000", + "0x480680017fff8000", + "0x1", + "0x48127ffa7fff8000", + "0x48127ffa7fff8000", + "0x208b7fff7fff7ffe", + "0x1104800180018000", + "0x219", + "0x482680017ff98000", + "0x4", + "0x48127fec7fff8000", + "0x480a7ffb7fff8000", + "0x480680017fff8000", + "0x1", + "0x48127ffa7fff8000", + "0x48127ffa7fff8000", + "0x208b7fff7fff7ffe", + "0x482680017ff98000", + "0x4", + "0x482480017ff68000", + "0x1914", + "0x10780017fff7fff", + "0x6", + "0x482680017ff98000", + "0x1", + "0x482480017ffd8000", + "0x1dce", + "0x1104800180018000", + "0x209", + "0x48127ff67fff8000", + "0x48127ff67fff8000", + "0x480a7ffb7fff8000", + "0x480680017fff8000", + "0x1", + "0x48127ffa7fff8000", + "0x48127ffa7fff8000", + "0x208b7fff7fff7ffe", + "0x482680017ff98000", + "0x1", + "0x482680017ffa8000", + "0x1e96", + "0x1104800180018000", + "0x200", + "0x48127ff67fff8000", + "0x48127ff67fff8000", + "0x480a7ffb7fff8000", + "0x480680017fff8000", + "0x1", + "0x48127ffa7fff8000", + "0x48127ffa7fff8000", + "0x208b7fff7fff7ffe", + "0x40780017fff7fff", + "0x2", + "0xa0680017fff8000", + "0x7", + "0x482680017ffa8000", + "0x100000000000000000000000000000000", + "0x400280007ff97fff", + "0x10780017fff7fff", + "0xae", + "0x4825800180007ffa", + "0x0", + "0x400280007ff97fff", + "0x48297ffc80007ffd", + "0x20680017fff7fff", + "0x4", + "0x10780017fff7fff", + "0x98", + "0x400380007ffc8000", + "0xa0680017fff8004", + "0xe", + "0x4825800180048000", + "0x800000000000000000000000000000000000000000000000000000000000000", + "0x484480017ffe8000", + "0x110000000000000000", + "0x48307ffe7fff8002", + "0x480280017ff97ffc", + "0x480280027ff97ffc", + "0x402480017ffb7ffd", + "0xffffffffffffffeeffffffffffffffff", + "0x400280037ff97ffd", + "0x10780017fff7fff", + "0x83", + "0x484480017fff8001", + "0x8000000000000000000000000000000", + "0x48317fff80008000", + "0x480280017ff97ffd", + "0x480280027ff97ffd", + "0x402480017ffc7ffe", + "0xf8000000000000000000000000000000", + "0x400280037ff97ffe", + "0x482680017ffc8000", + "0x1", + "0x480a7ffd7fff8000", + "0x48307ffe80007fff", + "0x20680017fff7fff", + "0x4", + "0x10780017fff7fff", + "0x68", + "0x482480017ffd8000", + "0x1", + "0x48127ffd7fff8000", + "0x40137ffb7fff8001", + "0x48307ffe80007fff", + "0x20680017fff7fff", + "0x4", + "0x10780017fff7fff", + "0x51", + "0x40780017fff7fff", + "0x1", + "0x482680017ff98000", + "0x4", + "0x48127ff17fff8000", + "0x482480017ffa8000", + "0x1", + "0x48127ffa7fff8000", + "0x48127ffb7fff8000", + "0x48127ffa7fff8000", + "0x480080007ff68000", + "0x1104800180018000", + "0x1b7", + "0x20680017fff7ffa", + "0x3a", + "0x20680017fff7ffd", + "0x33", + "0x48307ffb80007ffc", + "0x20680017fff7fff", + "0x4", + "0x10780017fff7fff", + "0xc", + "0x1104800180018000", + "0x119", + "0x48127fef7fff8000", + "0x48127fef7fff8000", + "0x480a7ffb7fff8000", + "0x480680017fff8000", + "0x1", + "0x48127ffa7fff8000", + "0x48127ffa7fff8000", + "0x208b7fff7fff7ffe", + "0x1104800180018000", + "0x28d", + "0x482480017fff8000", + "0x28c", + "0x480080007fff8000", + "0xa0680017fff8000", + "0x9", + "0x4824800180007ff3", + "0x6004", + "0x482480017fff8000", + "0x100000000000000000000000000000000", + "0x400080007ff07fff", + "0x10780017fff7fff", + "0x10", + "0x4824800180007ff3", + "0x6004", + "0x400080007ff17fff", + "0x482480017ff18000", + "0x1", + "0x48127ffe7fff8000", + "0x480a7ffb7fff8000", + "0x480a80007fff8000", + "0x4802800080018000", + "0x48127ff27fff8000", + "0x48127ff27fff8000", + "0x1104800180018000", + "0x1d6", + "0x208b7fff7fff7ffe", + "0x482480017ff08000", + "0x1", + "0x482480017ff08000", + "0x3d4", + "0x10780017fff7fff", + "0x40", + "0x48127ff87fff8000", + "0x482480017ff88000", + "0x8ca", + "0x10780017fff7fff", + "0xe", + "0x48127ff87fff8000", + "0x48127ff87fff8000", + "0x480a7ffb7fff8000", + "0x480680017fff8000", + "0x1", + "0x48127ffa7fff8000", + "0x48127ffa7fff8000", + "0x208b7fff7fff7ffe", + "0x482680017ff98000", + "0x4", + "0x482480017ff28000", + "0x15f4", + "0x1104800180018000", + "0x15b", + "0x48127ff67fff8000", + "0x48127ff67fff8000", + "0x480a7ffb7fff8000", + "0x480680017fff8000", + "0x1", + "0x48127ffa7fff8000", + "0x48127ffa7fff8000", + "0x208b7fff7fff7ffe", + "0x1104800180018000", + "0x156", + "0x482680017ff98000", + "0x4", + "0x48127fed7fff8000", + "0x480a7ffb7fff8000", + "0x480680017fff8000", + "0x1", + "0x48127ffa7fff8000", + "0x48127ffa7fff8000", + "0x208b7fff7fff7ffe", + "0x482680017ff98000", + "0x4", + "0x482480017ff78000", + "0x18a6", + "0x10780017fff7fff", + "0x6", + "0x482680017ff98000", + "0x1", + "0x482480017ffd8000", + "0x1d56", + "0x1104800180018000", + "0x146", + "0x48127ff67fff8000", + "0x48127ff67fff8000", + "0x480a7ffb7fff8000", + "0x480680017fff8000", + "0x1", + "0x48127ffa7fff8000", + "0x48127ffa7fff8000", + "0x208b7fff7fff7ffe", + "0x482680017ff98000", + "0x1", + "0x482680017ffa8000", + "0x1e1e", + "0x1104800180018000", + "0x13d", + "0x48127ff67fff8000", + "0x48127ff67fff8000", + "0x480a7ffb7fff8000", + "0x480680017fff8000", + "0x1", + "0x48127ffa7fff8000", + "0x48127ffa7fff8000", + "0x208b7fff7fff7ffe", + "0xa0680017fff8000", + "0x7", + "0x482680017ffa8000", + "0x100000000000000000000000000000000", + "0x400280007ff97fff", + "0x10780017fff7fff", + "0x92", + "0x4825800180007ffa", + "0x0", + "0x400280007ff97fff", + "0x48297ffc80007ffd", + "0x20680017fff7fff", + "0x4", + "0x10780017fff7fff", + "0x7f", + "0x480280007ffc8000", + "0x20680017fff7fff", + "0x8", + "0x482480017ffd8000", + "0x161c", + "0x480680017fff8000", + "0x1", + "0x10780017fff7fff", + "0x6", + "0x482480017ffd8000", + "0x1680", + "0x480680017fff8000", + "0x0", + "0x482680017ffc8000", + "0x1", + "0x480a7ffd7fff8000", + "0x48307ffe80007fff", + "0x20680017fff7fff", + "0x4", + "0x10780017fff7fff", + "0xd", + "0x1104800180018000", + "0x81", + "0x482680017ff98000", + "0x1", + "0x48127ff27fff8000", + "0x480a7ffb7fff8000", + "0x480680017fff8000", + "0x1", + "0x48127ffa7fff8000", + "0x48127ffa7fff8000", + "0x208b7fff7fff7ffe", + "0x1104800180018000", + "0x1f4", + "0x482480017fff8000", + "0x1f3", + "0x480080007fff8000", + "0xa0680017fff8000", + "0x9", + "0x4824800180007ff6", + "0x6568", + "0x482480017fff8000", + "0x100000000000000000000000000000000", + "0x400280017ff97fff", + "0x10780017fff7fff", + "0x4c", + "0x4824800180007ff6", + "0x6568", + "0x400280017ff97fff", + "0x480680017fff8000", + "0x476574457865637574696f6e496e666f", + "0x400280007ffb7fff", + "0x400280017ffb7ffe", + "0x480280037ffb8000", + "0x20680017fff7fff", + "0x38", + "0x480280027ffb8000", + "0x480680017fff8000", + "0x476574457865637574696f6e496e666f", + "0x400280057ffb7fff", + "0x400280067ffb7ffe", + "0x480280087ffb8000", + "0x20680017fff7fff", + "0x26", + "0x480680017fff8000", + "0x1", + "0x480280047ffb8000", + "0x480080007fff8000", + "0x480280097ffb8000", + "0x480080007fff8000", + "0x482680017ff98000", + "0x2", + "0x480080007ffc8000", + "0x480080017ffd8000", + "0x48307fe980007ff8", + "0x1104800180018000", + "0x50", + "0x20680017fff7ffd", + "0xe", + "0x480280077ffb8000", + "0x40780017fff7fff", + "0x1", + "0x48127ffa7fff8000", + "0x48127ffd7fff8000", + "0x482680017ffb8000", + "0xa", + "0x480680017fff8000", + "0x0", + "0x48127ffb7fff8000", + "0x48127ffa7fff8000", + "0x208b7fff7fff7ffe", + "0x48127ffc7fff8000", + "0x480280077ffb8000", + "0x482680017ffb8000", + "0xa", + "0x480680017fff8000", + "0x1", + "0x48127ffa7fff8000", + "0x48127ffa7fff8000", + "0x208b7fff7fff7ffe", + "0x482680017ff98000", + "0x2", + "0x480280077ffb8000", + "0x482680017ffb8000", + "0xb", + "0x480680017fff8000", + "0x1", + "0x480280097ffb8000", + "0x4802800a7ffb8000", + "0x208b7fff7fff7ffe", + "0x482680017ff98000", + "0x2", + "0x480280027ffb8000", + "0x482680017ffb8000", + "0x6", + "0x480680017fff8000", + "0x1", + "0x480280047ffb8000", + "0x480280057ffb8000", + "0x208b7fff7fff7ffe", + "0x482680017ff98000", + "0x2", + "0x48127ff37fff8000", + "0x10780017fff7fff", + "0x11", + "0x1104800180018000", + "0xa2", + "0x482680017ff98000", + "0x1", + "0x48127ff57fff8000", + "0x480a7ffb7fff8000", + "0x480680017fff8000", + "0x1", + "0x48127ffa7fff8000", + "0x48127ffa7fff8000", + "0x208b7fff7fff7ffe", + "0x482680017ff98000", + "0x1", + "0x482680017ffa8000", + "0x1e96", + "0x1104800180018000", + "0x98", + "0x48127ff67fff8000", + "0x48127ff67fff8000", + "0x480a7ffb7fff8000", + "0x480680017fff8000", + "0x1", + "0x48127ffa7fff8000", + "0x48127ffa7fff8000", + "0x208b7fff7fff7ffe", + "0x480680017fff8000", + "0x496e70757420746f6f206c6f6e6720666f7220617267756d656e7473", + "0x1104800180018000", + "0x161", + "0x208b7fff7fff7ffe", + "0x480680017fff8000", + "0x64", + "0x480280007ffa8004", + "0x4824800180037fff", + "0x1", + "0x48307ffe7fff7ffd", + "0x480280017ffa7ffe", + "0x480280027ffa7fff", + "0x40507ffe7ffa7ffd", + "0x40317fff7ffd7ffb", + "0x484480017ffe8000", + "0x64", + "0xa0680017fff8000", + "0x7", + "0x4824800180007ffe", + "0x10000000000000000", + "0x400280037ffa7fff", + "0x10780017fff7fff", + "0x5d", + "0x482480017ffe8000", + "0xffffffffffffffff0000000000000000", + "0x400280037ffa7fff", + "0x480680017fff8000", + "0xe10", + "0x480280047ffa8004", + "0x4824800180037fff", + "0x1", + "0x48307ffe7fff7ffd", + "0x480280057ffa7ffe", + "0x480280067ffa7fff", + "0x40507ffe7ffa7ffd", + "0x40317fff7ffd7ffc", + "0x484480017ffe8000", + "0xe10", + "0xa0680017fff8000", + "0x7", + "0x4824800180007ffe", + "0x10000000000000000", + "0x400280077ffa7fff", + "0x10780017fff7fff", + "0x41", + "0x482480017ffe8000", + "0xffffffffffffffff0000000000000000", + "0x400280077ffa7fff", + "0x20780017fff7ffd", + "0x13", + "0x40780017fff7fff", + "0x2", + "0x20780017fff7ffd", + "0x6", + "0x40780017fff7fff", + "0x8", + "0x10780017fff7fff", + "0x2b", + "0x1104800180018000", + "0x12f", + "0x482680017ffa8000", + "0x8", + "0x480680017fff8000", + "0x1", + "0x48127ffc7fff8000", + "0x48127ffc7fff8000", + "0x208b7fff7fff7ffe", + "0x48317ff480007ffb", + "0x20680017fff7fff", + "0x4", + "0x10780017fff7fff", + "0xd", + "0x40780017fff7fff", + "0x1", + "0x1104800180018000", + "0x124", + "0x482680017ffa8000", + "0x8", + "0x480680017fff8000", + "0x1", + "0x48127ffc7fff8000", + "0x48127ffc7fff8000", + "0x208b7fff7fff7ffe", + "0x48317ffc80007ffc", + "0x20680017fff7fff", + "0x4", + "0x10780017fff7fff", + "0xb", + "0x1104800180018000", + "0x11b", + "0x482680017ffa8000", + "0x8", + "0x480680017fff8000", + "0x1", + "0x48127ffc7fff8000", + "0x48127ffc7fff8000", + "0x208b7fff7fff7ffe", + "0x40780017fff7fff", + "0x8", + "0x482680017ffa8000", + "0x8", + "0x480680017fff8000", + "0x0", + "0x480680017fff8000", + "0x0", + "0x480680017fff8000", + "0x56414c4944", + "0x208b7fff7fff7ffe", + "0x40780017fff7fff", + "0x1", + "0x482680017ffa8000", + "0x8", + "0x10780017fff7fff", + "0x6", + "0x40780017fff7fff", + "0xa", + "0x482680017ffa8000", + "0x4", + "0x1104800180018000", + "0x102", + "0x48127ff77fff8000", + "0x480680017fff8000", + "0x1", + "0x48127ffc7fff8000", + "0x48127ffc7fff8000", + "0x208b7fff7fff7ffe", + "0x480680017fff8000", + "0x4661696c656420746f20646573657269616c697a6520706172616d202333", + "0x1104800180018000", + "0xe2", + "0x208b7fff7fff7ffe", + "0x480680017fff8000", + "0x4661696c656420746f20646573657269616c697a6520706172616d202332", + "0x1104800180018000", + "0xdd", + "0x208b7fff7fff7ffe", + "0x480680017fff8000", + "0x4661696c656420746f20646573657269616c697a6520706172616d202331", + "0x1104800180018000", + "0xd8", + "0x208b7fff7fff7ffe", + "0x480680017fff8000", + "0x4f7574206f6620676173", + "0x1104800180018000", + "0xd3", + "0x208b7fff7fff7ffe", + "0xa0680017fff8000", + "0x7", + "0x482680017ff88000", + "0xfffffffffffffffffffffffffffff916", + "0x400280007ff77fff", + "0x10780017fff7fff", + "0x38", + "0x4825800180007ff8", + "0x6ea", + "0x400280007ff77fff", + "0x20780017fff7ffd", + "0xf", + "0x482680017ff78000", + "0x1", + "0x482480017ffe8000", + "0xa6e", + "0x480680017fff8000", + "0x0", + "0x480a7ff97fff8000", + "0x480a7ffa7fff8000", + "0x480680017fff8000", + "0x0", + "0x480a7ffb7fff8000", + "0x480a7ffc7fff8000", + "0x208b7fff7fff7ffe", + "0x48297ff980007ffa", + "0x20680017fff7fff", + "0x4", + "0x10780017fff7fff", + "0x12", + "0x480280007ff98000", + "0x400280007ffc7fff", + "0x482680017ff78000", + "0x1", + "0x48127ffc7fff8000", + "0x482680017ff98000", + "0x1", + "0x480a7ffa7fff8000", + "0x480a7ffb7fff8000", + "0x482680017ffc8000", + "0x1", + "0x4825800180007ffd", + "0x1", + "0x1104800180018000", + "0x800000000000010ffffffffffffffffffffffffffffffffffffffffffffffd6", + "0x208b7fff7fff7ffe", + "0x482680017ff78000", + "0x1", + "0x482480017ffd8000", + "0x942", + "0x480680017fff8000", + "0x0", + "0x480a7ff97fff8000", + "0x480a7ffa7fff8000", + "0x480680017fff8000", + "0x1", + "0x480680017fff8000", + "0x0", + "0x480680017fff8000", + "0x0", + "0x208b7fff7fff7ffe", + "0x1104800180018000", + "0x800000000000010ffffffffffffffffffffffffffffffffffffffffffffffbf", + "0x482680017ff78000", + "0x1", + "0x480a7ff87fff8000", + "0x480680017fff8000", + "0x1", + "0x480680017fff8000", + "0x0", + "0x480680017fff8000", + "0x0", + "0x480680017fff8000", + "0x0", + "0x48127ff87fff8000", + "0x48127ff87fff8000", + "0x208b7fff7fff7ffe", + "0x480680017fff8000", + "0x476574457865637574696f6e496e666f", + "0x400280007ff97fff", + "0x400380017ff97ff8", + "0x480280037ff98000", + "0x20680017fff7fff", + "0x73", + "0x480280027ff98000", + "0x480680017fff8000", + "0x476574457865637574696f6e496e666f", + "0x400280057ff97fff", + "0x400280067ff97ffe", + "0x480280087ff98000", + "0x20680017fff7fff", + "0x60", + "0x480280047ff98000", + "0x480080007fff8000", + "0x480080007fff8000", + "0x480680017fff8000", + "0x64", + "0x480280007ff78004", + "0x4824800180037fff", + "0x1", + "0x48307ffe7fff7ffd", + "0x480280017ff77ffe", + "0x480280027ff77fff", + "0x40507ffe7ffa7ffd", + "0x40307fff7ffd7ff9", + "0x484480017ffe8000", + "0x64", + "0xa0680017fff8000", + "0x7", + "0x4824800180007ffe", + "0x10000000000000000", + "0x400280037ff77fff", + "0x10780017fff7fff", + "0x38", + "0x482480017ffe8000", + "0xffffffffffffffff0000000000000000", + "0x400280037ff77fff", + "0x480280097ff98000", + "0x480080007fff8000", + "0x480080017fff8000", + "0x480680017fff8000", + "0xe10", + "0x480280047ff78004", + "0x4824800180037fff", + "0x1", + "0x48307ffe7fff7ffd", + "0x480280057ff77ffe", + "0x480280067ff77fff", + "0x40507ffe7ffa7ffd", + "0x40307fff7ffd7ff9", + "0x484480017ffe8000", + "0xe10", + "0xa0680017fff8000", + "0x7", + "0x4824800180007ffe", + "0x10000000000000000", + "0x400280077ff77fff", + "0x10780017fff7fff", + "0x19", + "0x482480017ffe8000", + "0xffffffffffffffff0000000000000000", + "0x400280077ff77fff", + "0x40780017fff7fff", + "0x8", + "0x480280077ff98000", + "0x40780017fff7fff", + "0x1", + "0x480680017fff8000", + "0x56414c4944", + "0x400080007ffe7fff", + "0x482680017ff78000", + "0x8", + "0x482480017ffc8000", + "0x334", + "0x482680017ff98000", + "0xa", + "0x480680017fff8000", + "0x0", + "0x48127ffa7fff8000", + "0x482480017ff98000", + "0x1", + "0x208b7fff7fff7ffe", + "0x480280077ff98000", + "0x482680017ff78000", + "0x8", + "0x48127ffe7fff8000", + "0x10780017fff7fff", + "0x9", + "0x40780017fff7fff", + "0xc", + "0x480280077ff98000", + "0x482680017ff78000", + "0x4", + "0x482480017ffe8000", + "0x67c", + "0x1104800180018000", + "0x37", + "0x48127ff67fff8000", + "0x48127ff67fff8000", + "0x482680017ff98000", + "0xa", + "0x480680017fff8000", + "0x1", + "0x48127ffa7fff8000", + "0x48127ffa7fff8000", + "0x208b7fff7fff7ffe", + "0x40780017fff7fff", + "0x23", + "0x480a7ff77fff8000", + "0x480280077ff98000", + "0x482680017ff98000", + "0xb", + "0x480680017fff8000", + "0x1", + "0x480280097ff98000", + "0x4802800a7ff98000", + "0x208b7fff7fff7ffe", + "0x40780017fff7fff", + "0x26", + "0x480a7ff77fff8000", + "0x480280027ff98000", + "0x482680017ff98000", + "0x6", + "0x480680017fff8000", + "0x1", + "0x480280047ff98000", + "0x480280057ff98000", + "0x208b7fff7fff7ffe", + "0x40780017fff7fff", + "0x1", + "0x400180007fff7ffd", + "0x48127fff7fff8000", + "0x482480017ffe8000", + "0x1", + "0x208b7fff7fff7ffe", + "0x480680017fff8000", + "0x494e56414c49445f49535f56414c4944415445", + "0x1104800180018000", + "0x800000000000010fffffffffffffffffffffffffffffffffffffffffffffff8", + "0x208b7fff7fff7ffe", + "0x480680017fff8000", + "0x494e56414c49445f424c4f434b5f4e554d424552", + "0x1104800180018000", + "0x800000000000010fffffffffffffffffffffffffffffffffffffffffffffff3", + "0x208b7fff7fff7ffe", + "0x480680017fff8000", + "0x494e56414c49445f424c4f434b5f54494d455354414d50", + "0x1104800180018000", + "0x800000000000010ffffffffffffffffffffffffffffffffffffffffffffffee", + "0x208b7fff7fff7ffe", + "0x480680017fff8000", + "0x7536345f6d756c204f766572666c6f77", + "0x1104800180018000", + "0x800000000000010ffffffffffffffffffffffffffffffffffffffffffffffe9", + "0x208b7fff7fff7ffe" + ], + "bytecode_segment_lengths": [ + 200, + 154, + 253, + 195, + 165, + 5, + 122, + 5, + 5, + 5, + 5, + 77, + 131, + 7, + 5, + 5, + 5, + 5 + ], + "hints": [ + [ + 0, + [ + { + "TestLessThanOrEqual": { + "lhs": { + "Immediate": "0x0" + }, + "rhs": { + "Deref": { + "register": "FP", + "offset": -6 + } + }, + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 64, + [ + { + "TestLessThanOrEqual": { + "lhs": { + "Immediate": "0x6568" + }, + "rhs": { + "Deref": { + "register": "AP", + "offset": -8 + } + }, + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 80, + [ + { + "SystemCall": { + "system": { + "Deref": { + "register": "FP", + "offset": -5 + } + } + } + } + ] + ], + [ + 88, + [ + { + "SystemCall": { + "system": { + "BinOp": { + "op": "Add", + "a": { + "register": "FP", + "offset": -5 + }, + "b": { + "Immediate": "0x5" + } + } + } + } + } + ] + ], + [ + 106, + [ + { + "AllocSegment": { + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 200, + [ + { + "TestLessThanOrEqual": { + "lhs": { + "Immediate": "0x0" + }, + "rhs": { + "Deref": { + "register": "FP", + "offset": -6 + } + }, + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 239, + [ + { + "TestLessThanOrEqual": { + "lhs": { + "Immediate": "0x4d58" + }, + "rhs": { + "Deref": { + "register": "AP", + "offset": -9 + } + }, + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 255, + [ + { + "SystemCall": { + "system": { + "Deref": { + "register": "FP", + "offset": -5 + } + } + } + } + ] + ], + [ + 263, + [ + { + "SystemCall": { + "system": { + "BinOp": { + "op": "Add", + "a": { + "register": "FP", + "offset": -5 + }, + "b": { + "Immediate": "0x5" + } + } + } + } + } + ] + ], + [ + 281, + [ + { + "AllocSegment": { + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 354, + [ + { + "TestLessThanOrEqual": { + "lhs": { + "Immediate": "0x0" + }, + "rhs": { + "Deref": { + "register": "FP", + "offset": -6 + } + }, + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 370, + [ + { + "TestLessThan": { + "lhs": { + "Deref": { + "register": "AP", + "offset": -1 + } + }, + "rhs": { + "Immediate": "0x800000000000000000000000000000000000000000000000000000000000000" + }, + "dst": { + "register": "AP", + "offset": 4 + } + } + } + ] + ], + [ + 374, + [ + { + "LinearSplit": { + "value": { + "Deref": { + "register": "AP", + "offset": 3 + } + }, + "scalar": { + "Immediate": "0x110000000000000000" + }, + "max_x": { + "Immediate": "0xffffffffffffffffffffffffffffffff" + }, + "x": { + "register": "AP", + "offset": -2 + }, + "y": { + "register": "AP", + "offset": -1 + } + } + } + ] + ], + [ + 384, + [ + { + "LinearSplit": { + "value": { + "Deref": { + "register": "AP", + "offset": -2 + } + }, + "scalar": { + "Immediate": "0x8000000000000000000000000000000" + }, + "max_x": { + "Immediate": "0xffffffffffffffffffffffffffffffff" + }, + "x": { + "register": "AP", + "offset": -1 + }, + "y": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 408, + [ + { + "AllocSegment": { + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 445, + [ + { + "TestLessThanOrEqual": { + "lhs": { + "Immediate": "0x60cc" + }, + "rhs": { + "Deref": { + "register": "AP", + "offset": -12 + } + }, + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 461, + [ + { + "SystemCall": { + "system": { + "Deref": { + "register": "FP", + "offset": -5 + } + } + } + } + ] + ], + [ + 469, + [ + { + "SystemCall": { + "system": { + "BinOp": { + "op": "Add", + "a": { + "register": "FP", + "offset": -5 + }, + "b": { + "Immediate": "0x5" + } + } + } + } + } + ] + ], + [ + 487, + [ + { + "AllocSegment": { + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 609, + [ + { + "TestLessThanOrEqual": { + "lhs": { + "Immediate": "0x0" + }, + "rhs": { + "Deref": { + "register": "FP", + "offset": -6 + } + }, + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 625, + [ + { + "TestLessThan": { + "lhs": { + "Deref": { + "register": "FP", + "offset": 0 + } + }, + "rhs": { + "Immediate": "0x800000000000000000000000000000000000000000000000000000000000000" + }, + "dst": { + "register": "AP", + "offset": 4 + } + } + } + ] + ], + [ + 629, + [ + { + "LinearSplit": { + "value": { + "Deref": { + "register": "AP", + "offset": 3 + } + }, + "scalar": { + "Immediate": "0x110000000000000000" + }, + "max_x": { + "Immediate": "0xffffffffffffffffffffffffffffffff" + }, + "x": { + "register": "AP", + "offset": -2 + }, + "y": { + "register": "AP", + "offset": -1 + } + } + } + ] + ], + [ + 639, + [ + { + "LinearSplit": { + "value": { + "Deref": { + "register": "FP", + "offset": 0 + } + }, + "scalar": { + "Immediate": "0x8000000000000000000000000000000" + }, + "max_x": { + "Immediate": "0xffffffffffffffffffffffffffffffff" + }, + "x": { + "register": "AP", + "offset": -1 + }, + "y": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 664, + [ + { + "AllocSegment": { + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 701, + [ + { + "TestLessThanOrEqual": { + "lhs": { + "Immediate": "0x6004" + }, + "rhs": { + "Deref": { + "register": "AP", + "offset": -12 + } + }, + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 802, + [ + { + "TestLessThanOrEqual": { + "lhs": { + "Immediate": "0x0" + }, + "rhs": { + "Deref": { + "register": "FP", + "offset": -6 + } + }, + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 854, + [ + { + "TestLessThanOrEqual": { + "lhs": { + "Immediate": "0x6568" + }, + "rhs": { + "Deref": { + "register": "AP", + "offset": -9 + } + }, + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 870, + [ + { + "SystemCall": { + "system": { + "Deref": { + "register": "FP", + "offset": -5 + } + } + } + } + ] + ], + [ + 878, + [ + { + "SystemCall": { + "system": { + "BinOp": { + "op": "Add", + "a": { + "register": "FP", + "offset": -5 + }, + "b": { + "Immediate": "0x5" + } + } + } + } + } + ] + ], + [ + 897, + [ + { + "AllocSegment": { + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 974, + [ + { + "DivMod": { + "lhs": { + "Deref": { + "register": "FP", + "offset": -5 + } + }, + "rhs": { + "Deref": { + "register": "AP", + "offset": -1 + } + }, + "quotient": { + "register": "AP", + "offset": 3 + }, + "remainder": { + "register": "AP", + "offset": 4 + } + } + } + ] + ], + [ + 984, + [ + { + "TestLessThan": { + "lhs": { + "Deref": { + "register": "AP", + "offset": -1 + } + }, + "rhs": { + "Immediate": "0x10000000000000000" + }, + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 996, + [ + { + "DivMod": { + "lhs": { + "Deref": { + "register": "FP", + "offset": -4 + } + }, + "rhs": { + "Deref": { + "register": "AP", + "offset": -1 + } + }, + "quotient": { + "register": "AP", + "offset": 3 + }, + "remainder": { + "register": "AP", + "offset": 4 + } + } + } + ] + ], + [ + 1006, + [ + { + "TestLessThan": { + "lhs": { + "Deref": { + "register": "AP", + "offset": -1 + } + }, + "rhs": { + "Immediate": "0x10000000000000000" + }, + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 1114, + [ + { + "TestLessThanOrEqual": { + "lhs": { + "Immediate": "0x6ea" + }, + "rhs": { + "Deref": { + "register": "FP", + "offset": -8 + } + }, + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 1195, + [ + { + "SystemCall": { + "system": { + "Deref": { + "register": "FP", + "offset": -7 + } + } + } + } + ] + ], + [ + 1203, + [ + { + "SystemCall": { + "system": { + "BinOp": { + "op": "Add", + "a": { + "register": "FP", + "offset": -7 + }, + "b": { + "Immediate": "0x5" + } + } + } + } + } + ] + ], + [ + 1211, + [ + { + "DivMod": { + "lhs": { + "Deref": { + "register": "AP", + "offset": -2 + } + }, + "rhs": { + "Deref": { + "register": "AP", + "offset": -1 + } + }, + "quotient": { + "register": "AP", + "offset": 3 + }, + "remainder": { + "register": "AP", + "offset": 4 + } + } + } + ] + ], + [ + 1221, + [ + { + "TestLessThan": { + "lhs": { + "Deref": { + "register": "AP", + "offset": -1 + } + }, + "rhs": { + "Immediate": "0x10000000000000000" + }, + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 1236, + [ + { + "DivMod": { + "lhs": { + "Deref": { + "register": "AP", + "offset": -2 + } + }, + "rhs": { + "Deref": { + "register": "AP", + "offset": -1 + } + }, + "quotient": { + "register": "AP", + "offset": 3 + }, + "remainder": { + "register": "AP", + "offset": 4 + } + } + } + ] + ], + [ + 1246, + [ + { + "TestLessThan": { + "lhs": { + "Deref": { + "register": "AP", + "offset": -1 + } + }, + "rhs": { + "Immediate": "0x10000000000000000" + }, + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 1259, + [ + { + "AllocSegment": { + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ], + [ + 1322, + [ + { + "AllocSegment": { + "dst": { + "register": "AP", + "offset": 0 + } + } + } + ] + ] + ], + "entry_points_by_type": { + "EXTERNAL": [ + { + "selector": "0x15d40a3d6ca2ac30f4031e42be28da9b056fef9bb7357ac5e85627ee876e5ad", + "offset": 607, + "builtins": [ + "range_check" + ] + }, + { + "selector": "0x162da33a4585851fe8d3af3c2a9c60b557814e221e0d4f30ff0b2189d9c7775", + "offset": 354, + "builtins": [ + "range_check" + ] + }, + { + "selector": "0x289da278a8dc833409cabfdad1581e8e7d40e42dcaed693fa4008dcdb4963b3", + "offset": 200, + "builtins": [ + "range_check" + ] + }, + { + "selector": "0x36fcbf06cd96843058359e1a75928beacfac10727dab22a3972f0af8aa92895", + "offset": 0, + "builtins": [ + "range_check" + ] + } + ], + "L1_HANDLER": [], + "CONSTRUCTOR": [ + { + "selector": "0x28ffe4ff0f226a9107253e17a904099aa4f63a02a5621de0576e5aa71bc5194", + "offset": 802, + "builtins": [ + "range_check" + ] + } + ] + } +} diff --git a/crates/blockifier_test_utils/resources/feature_contracts/cairo1/sierra/block_info_test_contract.sierra.json b/crates/blockifier_test_utils/resources/feature_contracts/cairo1/sierra/block_info_test_contract.sierra.json new file mode 100644 index 00000000000..a8bd741fa3b --- /dev/null +++ b/crates/blockifier_test_utils/resources/feature_contracts/cairo1/sierra/block_info_test_contract.sierra.json @@ -0,0 +1,840 @@ +{ + "sierra_program": [ + "0x1", + "0x7", + "0x0", + "0x2", + "0xc", + "0x3", + "0x131", + "0xcf", + "0x36", + "0x52616e6765436865636b", + "0x800000000000000100000000000000000000000000000000", + "0x436f6e7374", + "0x800000000000000000000000000000000000000000000002", + "0x1", + "0x16", + "0x2", + "0x7536345f6d756c204f766572666c6f77", + "0x494e56414c49445f424c4f434b5f54494d455354414d50", + "0x494e56414c49445f424c4f434b5f4e554d424552", + "0x494e56414c49445f49535f56414c4944415445", + "0x4f7574206f6620676173", + "0x4661696c656420746f20646573657269616c697a6520706172616d202331", + "0x4661696c656420746f20646573657269616c697a6520706172616d202332", + "0x4661696c656420746f20646573657269616c697a6520706172616d202333", + "0x56414c4944", + "0x10", + "0xe10", + "0x11", + "0xb", + "0x75313238", + "0x800000000000000700000000000000000000000000000000", + "0x64", + "0xe", + "0x753634", + "0x4e6f6e5a65726f", + "0x800000000000000700000000000000000000000000000001", + "0x496e70757420746f6f206c6f6e6720666f7220617267756d656e7473", + "0x537472756374", + "0x800000000000000f00000000000000000000000000000001", + "0x0", + "0x3df2d6663ac7cbb107adbb1de7af7b96b30a83d59625cc8539fb03727094eca", + "0x426f78", + "0x556e696e697469616c697a6564", + "0x800000000000000200000000000000000000000000000001", + "0x14", + "0x66656c74323532", + "0x4172726179", + "0x800000000000000300000000000000000000000000000001", + "0x2ee1e2b1b89f8c495f200e4956278a4d47395fe262f27b52e5865c9524c08c3", + "0x456e756d", + "0x800000000000000300000000000000000000000000000003", + "0x17b6ecc31946835b0d9d92c2dd7a9c14f29af0371571ae74a1b228828b2242", + "0x18", + "0x19", + "0x536e617073686f74", + "0x800000000000000700000000000000000000000000000002", + "0x1baeba72e79e9db2587cf44fedb2f3700b2075a5e8e39a562584862c4b71f62", + "0x1b", + "0x1c", + "0x1a", + "0x16a4c8d7c05909052238a862d8cc3e7975bf05a07b3a69c6b28951083a6d672", + "0x1e", + "0x34f9bd7c6cb2dd4263175964ad75f1ff1461ddc332fbfb274e0fb2a5d7ab968", + "0x1d", + "0x1f", + "0x10203be321c62a7bd4c060d69539c1fbe065baa9e253c74d2cc48be163e259", + "0x22", + "0x436f6e747261637441646472657373", + "0x800000000000000700000000000000000000000000000004", + "0x3808c701a5d13e100ab11b6c02f91f752ecae7e420d21b56c90ec0a475cc7e5", + "0x24", + "0x2c", + "0x25", + "0x2d", + "0x28", + "0x1597b831feeb60c71f259624b79cf66995ea4f7e383403583674ab9c33b9cec", + "0x29", + "0x753332", + "0x80000000000000070000000000000000000000000000000e", + "0x348a62b7a38c0673e61e888d83a3ac1bf334ee7361a8514593d3d9532ed8b39", + "0xd", + "0x2a", + "0x2b", + "0x3342418ef16b3e2799b906b1e4e89dbb9b111332dd44f72458ce44f9895b508", + "0x800000000000000700000000000000000000000000000006", + "0x7d4d99e9ed8d285b5c61b493cedb63976bc3d9da867933d829f49ce838b5e7", + "0x27", + "0x26", + "0x800000000000000700000000000000000000000000000003", + "0x3288d594b9a45d15bb2fcb7903f06cdb06b27f0ba88186ec4cfaa98307cb972", + "0x2e", + "0x4275696c74696e436f737473", + "0x53797374656d", + "0x9931c641b913035ae674b400b61a51476d506bbe8bba2ff8a6272790aba9e6", + "0x21", + "0x4761734275696c74696e", + "0x7f", + "0x7265766f6b655f61705f747261636b696e67", + "0x77697468647261775f676173", + "0x6272616e63685f616c69676e", + "0x7374727563745f6465636f6e737472756374", + "0x61727261795f736e617073686f745f706f705f66726f6e74", + "0x64726f70", + "0x73746f72655f74656d70", + "0x756e626f78", + "0x72656e616d65", + "0x656e61626c655f61705f747261636b696e67", + "0x66656c743235325f69735f7a65726f", + "0x72656465706f7369745f676173", + "0x35", + "0x6a756d70", + "0x34", + "0x64697361626c655f61705f747261636b696e67", + "0x66756e6374696f6e5f63616c6c", + "0x3", + "0x5", + "0x656e756d5f696e6974", + "0x33", + "0x32", + "0x6765745f6275696c74696e5f636f737473", + "0x31", + "0x77697468647261775f6761735f616c6c", + "0x6765745f657865637574696f6e5f696e666f5f76325f73797363616c6c", + "0x7374727563745f636f6e737472756374", + "0x2f", + "0x30", + "0x6", + "0x656e756d5f6d61746368", + "0x23", + "0x61727261795f6e6577", + "0x61727261795f617070656e64", + "0x736e617073686f745f74616b65", + "0x7", + "0x8", + "0x9", + "0xa", + "0x21adb5788e32c84f69a1863d85ef9394b7bf761a0ce1190f826984e5075c371", + "0x20", + "0x616c6c6f635f6c6f63616c", + "0x66696e616c697a655f6c6f63616c73", + "0x73746f72655f6c6f63616c", + "0x13", + "0xc", + "0x15", + "0x17", + "0x626f6f6c5f6e6f745f696d706c", + "0x636f6e73745f61735f696d6d656469617465", + "0x12", + "0xf", + "0x647570", + "0x7536345f736166655f6469766d6f64", + "0x7536345f776964655f6d756c", + "0x646f776e63617374", + "0x7536345f6571", + "0x66656c743235325f737562", + "0x4", + "0x463", + "0xffffffffffffffff", + "0xa2", + "0x99", + "0x90", + "0x87", + "0x82", + "0x79", + "0x6f", + "0x37", + "0x38", + "0x39", + "0x3a", + "0x3b", + "0x3c", + "0x3d", + "0x3e", + "0x3f", + "0x40", + "0x41", + "0x42", + "0x43", + "0x44", + "0x45", + "0x46", + "0x47", + "0x48", + "0x49", + "0x4a", + "0x4b", + "0x4c", + "0x4d", + "0x4e", + "0x4f", + "0x50", + "0x51", + "0x52", + "0x53", + "0x54", + "0x55", + "0x56", + "0x57", + "0x58", + "0x59", + "0x5a", + "0x5b", + "0x5c", + "0x5d", + "0x5e", + "0xa7", + "0x5f", + "0x60", + "0x61", + "0x62", + "0x63", + "0x65", + "0x66", + "0x67", + "0x128", + "0x11f", + "0xc1", + "0x11a", + "0x111", + "0x107", + "0xfc", + "0x12d", + "0x1f6", + "0x1ea", + "0x1e4", + "0x1db", + "0x1cf", + "0x1c8", + "0x1c1", + "0x163", + "0x1bc", + "0x1b3", + "0x1a9", + "0x19e", + "0x68", + "0x69", + "0x6a", + "0x6b", + "0x1fb", + "0x6c", + "0x6d", + "0x6e", + "0x1d4", + "0x70", + "0x71", + "0x72", + "0x73", + "0x74", + "0x75", + "0x76", + "0x77", + "0x1ef", + "0x78", + "0x7a", + "0x7b", + "0x7c", + "0x7d", + "0x291", + "0x283", + "0x27c", + "0x271", + "0x263", + "0x25a", + "0x251", + "0x235", + "0x249", + "0x298", + "0x26a", + "0x28a", + "0x32f", + "0x326", + "0x2b1", + "0x2b8", + "0x2c6", + "0x320", + "0x316", + "0x30b", + "0x300", + "0x334", + "0x388", + "0x381", + "0x366", + "0x35f", + "0x37b", + "0x372", + "0x37a", + "0x38d", + "0x3d2", + "0x3b1", + "0x3c5", + "0x444", + "0x43a", + "0x429", + "0x423", + "0x42f", + "0x7e", + "0xae", + "0x134", + "0x202", + "0x29f", + "0x33b", + "0x33f", + "0x392", + "0x396", + "0x39a", + "0x39e", + "0x3a2", + "0x3dc", + "0x44d", + "0x453", + "0x457", + "0x45b", + "0x45f", + "0x25db", + "0x2c0e0602810060a038180a04018240e06028100608038180a04018080200", + "0x1408030701c0c050200c1a070301408030601c0c050200c0a07030140803", + "0x440a04018582a140284c0a04018480e11028100610038180a040183c0e06", + "0x1436211007c3c1d0e01c0c050200c22050d8682c190c01426050200c2e07", + "0xb40a2c028ac3e2a148a03e1e0e8180a27130180a23110584a240288c4406", + "0x14501f15074681f0f074660519014501f1507462051807c5e1d16014362e", + "0xe43e2a148180a280f8bc3a32028a03e2f0e8e00a37028d83e2a148b00a35", + "0x144e262001436211f81436211f0142205088147a1f1e0742c3b1c0147405", + "0x180a32029200a3e028180a470f9183a16229100a430f8bc3a420286c5c41", + "0x749005088140c052587c781d190149405250146405240149205030140c05", + "0x58a6520286c422d028b40a510f9405206028f80a3e0293c0a4e029343e4c", + "0xc80a052e07cb61f2d07cb2580115c0c050d86870052b014aa1f150a40454", + "0x18c0c050297c3e62030140a61030140a60188140a5f120140a5e030140a5d", + "0x1b40a07361acd405348c40a052f07cd06702814bc1f331940a052f87cc81f", + "0x140a730f9c83e71380140a5f0f9bcda050297cdc050297c3e050297c0a07", + "0xf80a052f13c0a052f1480a052e1480a05301d40a052f8140e740281cd82d", + "0x140a5f088140a5f088140a5e200140a5c200140a60270140a5f030140a5e", + "0x14bc2c02814f60602814f40602814f23a02814b87802814ee7635014d274", + "0x140a731a8140a5e1c0140a5c0f81cda05039b0ac05029cc6405029cc5805", + "0x14d23202814bc7e35014d27d35014d27c35014d27502814bc3802814e635", + "0x140a771b8140a5c408140a770a1a80a69160140a5f190140a5f0fa00fe6a", + "0x2140a05398900a05420180a054207d062402815040602815042d02814bc33", + "0x140e6c440140a5e438140a5e431a80a691f0140a5f428140a5e428140a7b", + "0x151a8c02815144835014d28b02815143a02814bc1f449d00a052f07c0e74", + "0x140a8a08814900503a4090050297c3e8f0c0140a8a0fa3826050297c2205", + "0x1e00a052f8140e780281cd81835014d27402814ee74028151a14028151486", + "0x1a80a690f81cf005039b07405029ccfe0502a28226a029a5186a029a43e91", + "0x7c0e330281cd806028151a7602815147c02815147d02815147e028151413", + "0x1b00a07198140e6c0fa48d60502a2902050297c3e07408140e6c1b8140a73", + "0x7d280502815140702815146a02815149302815143802814be0503a040a07", + "0x1a83e1f4a8143e070f9f0ec074b1ad26074a81c0a1f038143e1f4a8143e1f", + "0x14d61f0fa540a1f0387c28054b9fcfc074a81cfa054987cfa054a814d405", + "0x7c0e1f0c01530484301d2a073f015261f3f0152a053f014ec1f0fa540a7f", + "0x4518074a81d0c054987d0c054a8150c053b07c3e95029200a6b0f87d2a05", + "0x1f83e8502a540a8b029f43e8b02a540a11029f03e1f4a8143e070f84c0a99", + "0x2540a1f0387c48054407d2a0742814281f428152a0542814fe1f0fa540a1f", + "0x143e070f87c62050f8603e0602a540a87029203e8702a540a6b02a183e1f", + "0x1d83e0602a540a88029203e8802a540a6b02a183e1f4a81448054607c3e95", + "0x7c221f0fa540a1f0387c6605210b458074a81d18054987d18054a8151805", + "0x150a1f188152a050fa2c3e1f4a8145a053587c3e95028b00a130f87d2a05", + "0x2540a0702a1c3e0602a540a06029203e9302a540a93028903e3202a540a31", + "0x2540a1f0887c3e950287c0e1f1901c0c934981464054a81464050307c0e05", + "0x24cd42d0f8dc0a95028dc0a2c0f8dc0a950287d101f0fa540a330284c3e1f", + "0x1e0746a4a81c0e38038cc3e1f4a8143e070f95902074d0e06a074a81c6e06", + "0x2540e781d01c661f1d0152a051d014901f0fa540a1f0387c9c4f201a9363e", + "0x14a4051907ca4054a8143e310f87d2a050f81c3e411f928d49c24910846a", + "0x1c0d695029d40a380f9d40a95028f80a350f8f80a95028f80a370f9d00a95", + "0xe83e1f4a814ce052b07c3e95029b40a560f87d2a0537015021f3299cda6e", + "0x2540a00029003e0002a540a70028f83e7002a540a70029e03e1f4a814ca05", + "0x7c92054a81492051b87c3e9502a7c0a560f87d2a054f0149e1f4fa793a6a", + "0x7c3e9502a880a810fa9548a351284d69502a800a380fa800a95029240a35", + "0x152a0550814f01f0fa540aa5028e83e1f4a81548052b07c3e9502a8c0a56", + "0x7c3e9502a9c0a4f0faa550a7352540aa6029003ea602a540aa1028f83ea1", + "0x1550052707d3a054a8153a052707c6a054a8146a051207c3e9502aa40a56", + "0x2ac0a490faad54074a814e8a84e8d526440f9d00a95029d00a420faa00a95", + "0x2540a4202a183e4202a540a42029203e1f4a8143e070fab40a17560152a07", + "0x7d62054a8155eb0039043eb002a540a1f1f87d5e054a81558052507d5c05", + "0x2d00a700fad00a9502acc0a750f87d2a0559014e81f59ac80e9502ac40a52", + "0x152a0557014901f550152a0555014481f5b0152a055a814dc1f5a8152a05", + "0x143e070fad888ae5524c0ab602a540ab6028183e4402a540a4402a1c3eae", + "0x3eb902a540a1f3287c3e9502adc0a670fae16e074a8155a053687c3e95", + "0x1080a480faa80a9502aa80a240faec0a9502ae80a850fae80a9502ae17207", + "0x7d7644212a926055d8152a055d8140c1f220152a05220150e1f210152a05", + "0x152a0520af00e000faf00a950287cca1f0fa540a3e02a743e1f4a8143e07", + "0x21c3e4a02a540a4a029203e3502a540a35028903ebe02a540abd02a143ebd", + "0x7c3e950287c0e1f5f0fc9435498157c054a8157c050307c7e054a8147e05", + "0xd40a240fb040a9502b000a850fb000a95029397e070007d7e054a8143e65", + "0x152a05608140c1f278152a05278150e1f200152a0520014901f1a8152a05", + "0x2540a81028903ec202a540a5602a183e1f4a8143e070fb049e401aa4c0ac1", + "0x1426050987c3e950287c0e1f0fb140a1f0c07d88054a81584052407d8605", + "0x1203e9302a540a93028903ec702a540ac602a143ec602a540a1f4f07c3e95", + "0x1cd693498158e054a8158e050307c0e054a8140e054387cd6054a814d605", + "0x2540ac802a143ec802a540a1f4f87c3e95028600a130f87d2a050f81c3ec7", + "0x7c0e054a8140e054387cd6054a814d6052407d26054a81526051207d9205", + "0x7c3e95028500a130f87d2a050f81c3ec9039ad269302b240a9502b240a06", + "0x14d6052407d26054a81526051207c2e054a81594054287d94054a8143ea0", + "0x1c3e17039ad26930285c0a950285c0a060f81c0a950281c0a870f9ac0a95", + "0x30c0a95029d80a240fb2c0a95029f00a860f87d2a0535015421f0fa540a1f", + "0x30c0a240fb340a9502b300a850fb300a950287d441f620152a0565814901f", + "0x152a05668140c1f038152a05038150e1f620152a0562014901f618152a05", + "0x1f0ec07671ad26074a81c0a1f038143e1f4a8143e1f0fb340ec461a4c0acd", + "0x7c2805679fcfc074a81cfa054987cfa054a814d4053507c3e950287c0e1f", + "0x1d2a073f015261f3f0152a053f014ec1f0fa540a7f029ac3e1f4a8143e07", + "0x22c3e1f4a81490053587c3e9502a180a130f87d2a050f81c3e1802b409086", + "0x2540a6b029203e9302a540a93028903e1102a540a8c02a143e8c02a540a1f", + "0x7c0e1f0881cd6934981422054a81422050307c0e054a8140e054387cd605", + "0xb43e1302a540a13028b03e1302a540a1f4407c3e95028600a130f87d2a05", + "0x1a92a0703a140e330f87d2a050f81c3e871201da2854581d2a07099ad266a", + "0x2200c071987c0c054a8140c052407c3e950287c0e1f188cc5a6a690b11006", + "0x14641f1d0152a050f8c43e1f4a8143e070f95902383534c6a37191a92a07", + "0x2540a3e028e03e3e02a540a2c028d43e2c02a540a2c028dc3e7802a540a3a", + "0x7d2a0521014ac1f0fa540a4e029583e1f4a8149e054087c88422713c806b", + "0x1240a400f9240a95029000a3e0f9000a95029000a780f87d2a0522014741f", + "0x152a051a8146e1f0fa540a41029583e1f4a8147e052787c823f251a92a05", + "0x2540a7502a043e6d371c0ea7435a540a52028e03e5202a540a35028d43e35", + "0x14e8053c07c3e95029b40a3a0f87d2a0537014ac1f0fa540a70029583e1f", + "0x2540a650293c3e9d00194d4950299c0a400f99c0a95029d00a3e0f9d00a95", + "0x149c1f250152a05250149c1f458152a0545814481f0fa540a9d029583e1f", + "0x1243e9f4f01d2a053c000948b499103e7802a540a78029083e0002a540a00", + "0xc80a860f8c80a95028c80a480f87d2a050f81c3ea102b5140054a81d3e05", + "0x152a0551a900e410fa900a950287c7e1f518152a0550014941f510152a05", + "0x1c03ea802a540aa7029d43e1f4a8154c053a07d4ea603a540aa5029483ea5", + "0x1544052407d3c054a8153c051207d54054a81552053707d52054a8155005", + "0x1c3eaa1ba893c9302aa80a9502aa80a060f8dc0a95028dc0a870fa880a95", + "0x2b40a950287cca1f0fa540aab0299c3eac5581d2a0550814da1f0fa540a1f", + "0x1203e9e02a540a9e028903eaf02a540aae02a143eae02a540aac5681c001f", + "0xdc649e498155e054a8155e050307c6e054a8146e054387c64054a8146405", + "0x14acb0038003eb002a540a1f3287c3e95028b00a9d0f87d2a050f81c3eaf", + "0xe00a95028e00a480fa2c0a9502a2c0a240fac80a9502ac40a850fac40a95", + "0x2540a1f0387d64811c22d2605590152a05590140c1f408152a05408150e1f", + "0x903eb502a540ab402a143eb402a540a315981c001f598152a050f9943e1f", + "0x156a050307c66054a81466054387c5a054a8145a052407d16054a8151605", + "0x900a240fad80a9502a1c0a860f87d2a050f81c3eb5198b5169302ad40a95", + "0x14261f0fa540a1f0387c3ed50287c301f5c0152a055b014901f5b8152a05", + "0x24c0a9502a4c0a240fae80a9502ae40a850fae40a950287d401f0fa540a14", + "0x24d26055d0152a055d0140c1f038152a05038150e1f358152a0535814901f", + "0x14481f5d8152a053e0150c1f0fa540a6a02a843e1f4a8143e070fae80e6b", + "0x152a055e0150a1f5e0152a050fa883eb802a540abb029203eb702a540a76", + "0x183e0702a540a0702a1c3eb802a540ab8029203eb702a540ab7028903ebd", + "0x24c0e95038143e070287c3e950287c3e1f5e81d70b7498157a054a8157a05", + "0x1f80e95039f40a930f9f40a95029a80a6a0f87d2a050f81c3e7c3b01dac6b", + "0x7c90054a8150c053e87d0c054a814fe053e07c3e950287c0e1f0a015ae7f", + "0x7c3e950287c0e1f08815b08c0c01d2a072424c0ea30f9200a95029200a7f", + "0x7d0a056ca2c26074a81cfc054987cfc054a814fc053b07c3e9502a300a56", + "0x1d2a0709815261f098152a0509814ec1f0fa540a8b029ac3e1f4a8143e07", + "0xb00a9502a200a7d0fa200a9502a1c0a7c0f87d2a050f81c3e0602b690e24", + "0x1ac0a480f8600a95028600a240f8cc0a95028900a750f8b40a950287c7e1f", + "0x152a0516014fe1f168152a05168154a1f198152a0519815481f358152a05", + "0x7c70056d8d40a95038dc0aa70f8dc6431352540a2c168ccd61835a983e2c", + "0x1c3e7802b7074054a81cac055487cac8103a540a3502aa03e1f4a8143e07", + "0x1000e95038f80a930f8f80a9502a040a6a0f87d2a051d014e81f0fa540a1f", + "0x7d161f0fa540a4f029ac3e1f4a81480050987c3e950287c0e1f27015ba4f", + "0x152a0519014901f188152a0518814481f220152a05210150a1f210152a05", + "0x143e070f9100e3218a4c0a4402a540a44028183e0702a540a0702a1c3e32", + "0x1a85a1f248152a0524814581f248152a050fa203e1f4a8149c050987c3e95", + "0x1d0d4950381c7e071987c3e950287c0e1f291040ede1f9280e95039246431", + "0x1cea74038cc3e7402a540a74029203e1f4a8143e070f99cda6e3537ce075", + "0x2840a320fa840a950287c621f0fa540a1f0387d409f4f1a9c09d00194d495", + "0x1ad2a0551814701f518152a05380146a1f380152a05380146e1f510152a05", + "0x7c3e9502a9c0a560f87d2a0553014ac1f0fa540aa502a043ea853a994aa4", + "0x1552052007d52054a81548051f07d48054a81548053c07c3e9502aa00a3a", + "0x2740a9502a740a370f87d2a0556014ac1f0fa540aab0293c3eac55aa8d495", + "0x7d2a0557815021f592c560af571ad2a0556814701f568152a054e8146a1f", + "0x2540aae029e03e1f4a81564051d07c3e9502ac40a560f87d2a0558014ac1f", + "0x7d2a055a0149e1f5b2d5686a4a81566052007d66054a8155c051f07d5c05", + "0x2d40a4e0faa80a9502aa80a4e0f9280a95029280a240f87d2a055b014ac1f", + "0x14921f5c2dc0e9502a896aaa2524c881f510152a0551014841f5a8152a05", + "0x14ca054307cca054a814ca052407c3e950287c0e1f5d015c2b902a540eb8", + "0x2f80a9502af17a072087d7a054a8143e3f0faf00a9502ae40a4a0faec0a95", + "0x14e01f608152a0560014ea1f0fa540abf029d03ec05f81d2a055f014a41f", + "0x2540abb029203eb702a540ab7028903ec302a540ac2029b83ec202a540ac1", + "0x7c0e1f6180176b74981586054a81586050307c00054a81400054387d7605", + "0x7d8e054a8143e650f87d2a0562014ce1f633100e9502ae80a6d0f87d2a05", + "0x14901f5b8152a055b814481f648152a05640150a1f640152a056331c0e00", + "0x32400655ba4c0ac902a540ac9028183e0002a540a0002a1c3e6502a540a65", + "0x2540aa06501c001f650152a050f9943e1f4a814e0054e87c3e950287c0e1f", + "0x7d3c054a8153c052407c94054a81494051207d96054a8142e054287c2e05", + "0x7d2a050f81c3ecb4fa78949302b2c0a9502b2c0a060fa7c0a9502a7c0a87", + "0x14481f710152a05668150a1f668152a0533b300e000fb300a950287cca1f", + "0x2540ae2028183e6d02a540a6d02a1c3e6e02a540a6e029203e4a02a540a4a", + "0x1482051207dc6054a814a4054307c3e950287c0e1f711b4dc4a49815c405", + "0x1e00aaa0f87d2a050f81c3e1f730143e180fb940a9502b8c0a480fb900a95", + "0x7dd0054a81462051207dce054a81464054307c3e9502a040aa10f87d2a05", + "0x2700a95028e00a850f87d2a050f81c3e1f750143e180fba40a9502b9c0a48", + "0x140c1f038152a05038150e1f190152a0519014901f188152a0518814481f", + "0x150c1f0fa540a060284c3e1f4a8143e070fa700e3218a4c0a9c02a540a9c", + "0x152a050fa783ee902a540aeb029203ee802a540a18028903eeb02a540a6b", + "0x21c3ee902a540ae9029203ee802a540ae8028903eed02a540aec02a143eec", + "0x7c3e950287c0e1f7681dd2e849815da054a815da050307c0e054a8140e05", + "0x2540a18028903eef02a540aee02a143eee02a540a1f4f87c3e9502a140a13", + "0x15de054a815de050307c0e054a8140e054387cd6054a814d6052407c3005", + "0x7de0054a814d6054307c3e95029f80a130f87d2a050f81c3eef039ac3093", + "0x7d2a050f81c3e1f798143e180fbc80a9502bc00a480fbc40a95028440a24", + "0x3d00a480fbc40a9502a4c0a240fbd00a95029ac0a860f87d2a050a014261f", + "0x3c40a9502bc40a240fbd40a9502a6c0a850fa6c0a950287d401f790152a05", + "0x3c526057a8152a057a8140c1f038152a05038150e1f790152a0579014901f", + "0x14481f7b0152a053e0150c1f0fa540a6a02a843e1f4a8143e070fbd40ef2", + "0x152a057b8150a1f7b8152a050fa883ee502a540af6029203ee402a540a76", + "0x183e0702a540a0702a1c3ee502a540ae5029203ee402a540ae4028903ef8", + "0x7cf8054a8143eac0f9ac0a950287d561f7c01dcae449815f0054a815f005", + "0x1c3e143f81df27e3e81d2a070287c0e050f87d2a050f87c3e1f4a8143ead", + "0x7c0e1f46015f4182401d2a0743015261f430152a0535014d41f0fa540a1f", + "0x152a0549814fa1f498152a05499ac0eae0fa4c0a95028600a7c0f87d2a05", + "0x152a0524014ec1f0fa540a1f0387d0a057da2c26074a81c227d03a8c3e11", + "0x900a95028900a760f87d2a050f81c3e8702bf0ec2403a540e4802a4c3e48", + "0x7d2a050f81c3e2c02bf5100603a540e2402a4c3e7602a540a763e01d5e1f", + "0x180a750f8c40a950287c7e1f198152a0516814fa1f168152a0544014f81f", + "0x152a0519015481f3f0152a053f014901f098152a0509814481f190152a05", + "0x2540a33188c8fc1335a983e3302a540a33029fc3e3102a540a3102a943e32", + "0x2540a8102aa03e1f4a8143e070f9580afe408152a071c0154e1f1c0d46e6a", + "0x152a051d014d41f0fa540a1f0387c80057f8f80a95039e00aa90f9e07407", + "0x7c3e95029380a130f87d2a050f81c3e4402c00844e03a540e4f02a4c3e4f", + "0x7d2a0545814ac1f0fa540a76029ac3e1f4a8147c053a07c3e95029080a6b", + "0xd40a480f8dc0a95028dc0a240f9280a95029240a850f9240a950287d161f", + "0x7c94071a8dd2605250152a05250140c1f038152a05038150e1f1a8152a05", + "0xfc0a95028fc0a2c0f8fc0a950287d101f0fa540a440284c3e1f4a8143e07", + "0x2540a5202a183e1f4a8143e070f9d4e8078094882074a81c7e351b9a85a1f", + "0x2c43e6702a540a1f5807cda054a814dc053e87cdc054a814ec053e07ce005", + "0x14e0052407c82054a81482051207c3e95029940ab20f800ca074a814ce05", + "0x1b40a95029b40a7f0fa2c0a9502a2c0ab30f81c0a950281c0a870f9c00a95", + "0x24c0aa04fa793a934a8147c6d458000e70209f1681f1f0152a051f0154a1f", + "0x14ac1f0fa540a76029ac3e1f4a8147c053a07c3e950287c0e1f5027d3c9d", + "0x152a0550814901f510152a053a014481f508152a053a8150c1f0fa540a8b", + "0x7d2a051d015421f0fa540a4002aa83e1f4a8143e070f87e04050f8603ea3", + "0x146e051207d48054a8146a054307c3e9502a2c0a560f87d2a053b014d61f", + "0x22c0a560f87d2a050f81c3e1f818143e180fa980a9502a900a480fa940a95", + "0x7c6e054a8146e051207d4e054a814ac054287c3e95029d80a6b0f87d2a05", + "0xd46e9302a9c0a9502a9c0a060f81c0a950281c0a870f8d40a95028d40a48", + "0x14ec053587c3e9502a2c0a560f87d2a0516014261f0fa540a1f0387d4e07", + "0x7d4c054a81550052407d4a054a81426051207d50054a814fc054307c3e95", + "0x154c052407d4a054a8154a051207d54054a81552054287d52054a8143e9e", + "0x1c3eaa03a994a9302aa80a9502aa80a060f81c0a950281c0a870fa980a95", + "0x27c3e1f4a814f8055a87c3e9502a2c0a560f87d2a0543814261f0fa540a1f", + "0x2540a7e029203e1302a540a13028903eac02a540aab02a143eab02a540a1f", + "0x7c0e1f5601cfc134981558054a81558050307c0e054a8140e054387cfc05", + "0x903ead02a540a7e02a183e1f4a81490050987c3e95029f00ab50f87d2a05", + "0x7c3e950287c0e1f0fc100a1f0c07d5e054a8155a052407d5c054a8150a05", + "0x152a053f0150c1f0fa540a6b02ad83e1f4a814f8055a87c3e9502a300a13", + "0x150a1f588152a050fa803eaf02a540ab0029203eae02a540a7d028903eb0", + "0x2540a0702a1c3eaf02a540aaf029203eae02a540aae028903eb202a540ab1", + "0x14f8055a87c3e950287c0e1f5901d5eae4981564054a81564050307c0e05", + "0x14481f598152a050a0150c1f0fa540a6a02a843e1f4a814d6055b07c3e95", + "0x152a055a0150a1f5a0152a050fa883ea302a540ab3029203ea202a540a7f", + "0x183e0702a540a0702a1c3ea302a540aa3029203ea202a540aa2028903eb5", + "0x24c0e95038143e070287c3e950287c3e1f5a81d46a2498156a054a8156a05", + "0x1f80e95039f40a930f9f40a95029a80a6a0f87d2a050f81c3e7c3b01e0a6b", + "0x7c90054a8150c053e87d0c054a814fe053e07c3e950287c0e1f0a0160c7f", + "0x143e070f8600b070fa540e48028503e4802a540a48029fc3e1f4a8143e7e", + "0x1203e1302a540a11028c83e1102a540a1f1887d18054a814d6054307c3e95", + "0x7c3e950287c0e1f0fc200a1f0c07d0a054a81426052107d16054a8151805", + "0x2540a8702adc3e8702a540a1f1887c48054a814d6054307c3e95028600a8c", + "0x7cfc054a814fc053b07d0a054a8140c052107d16054a81448052407c0c05", + "0x2200a130f87d2a050f8443e1f4a8143e070f8b40b09162200e95039f80a93", + "0x150a1f198152a050fa2c3e1f4a8150a055c07c3e95028b00a6b0f87d2a05", + "0x2540a0702a1c3e8b02a540a8b029203e9302a540a93028903e3102a540a33", + "0x2540a1f0887c3e950287c0e1f1881d16934981462054a81462050307c0e05", + "0x24cd42d0f8c80a95028c80a2c0f8c80a950287d101f0fa540a2d0284c3e1f", + "0xe8ac6a4a81c0e35038cc3e1f4a8143e070fa047007850d46e074a81c648b", + "0x2540e3a2b01c661f2b0152a052b014901f0fa540a1f0387c9e401f1aa1678", + "0x1e00a370f9040a9502a140ab90f87d2a050f81c3e3f25124d50c221089c6a", + "0x15021f369b8e0753a1ad2a0529014701f290152a053c0146a1f3c0152a05", + "0x1e03e1f4a814da051d07c3e95029b80a560f87d2a0538014ac1f0fa540a75", + "0x149e1f4e800ca6a4a814ce052007cce054a814e8051f07ce8054a814e805", + "0x2780a95029100a350f9100a95029100a370f87d2a054e814ac1f0fa540a00", + "0x7c3e9502a840a560f87d2a0550015021f51a8942a04f9ad2a054f014701f", + "0x2540a9f028f83e9f02a540a9f029e03e1f4a81546051d07c3e9502a880a56", + "0x7c3e9502a9c0a560f87d2a05528149e1f53a994a6a4a81548052007d4805", + "0x1040a420fa980a9502a980a4e0f9940a95029940a4e0f8dc0a95028dc0a24", + "0x2ac0b0d550152a0754814921f54aa00e95029054c651ba4c881f208152a05", + "0x2540a4e02a183e4e02a540a4e029203e1f4a81554055d07c3e950287c0e1f", + "0x1d43e1f4a8155c053a07d5eae03a540aad029483ead02a540a1f1f87d5805", + "0x1550051207d64054a81562053707d62054a81560053807d60054a8155e05", + "0x2c80a9502ac80a060f9080a95029080a870fab00a9502ab00a480faa00a95", + "0x2540ab30299c3eb45981d2a0555814da1f0fa540a1f0387d6442562a12605", + "0x903eb702a540ab602a143eb602a540ab45a81c001f5a8152a050f9943e1f", + "0x156e050307c84054a81484054387c9c054a8149c052407d50054a8155005", + "0x14f0054e87c3e9502a140ab80f87d2a050f81c3eb721139509302adc0a95", + "0x7d74054a81572054287d72054a8147eb8038003eb802a540a1f3287c3e95", + "0x2e80a060f9280a95029280a870f9240a95029240a480f8dc0a95028dc0a24", + "0x143e650f87d2a0542815701f0fa540a1f0387d744a248dd26055d0152a05", + "0x152a051b814481f5e8152a055e0150a1f5e0152a0527aec0e000faec0a95", + "0x24c0abd02a540abd028183e4002a540a4002a1c3e3e02a540a3e029203e37", + "0x903ebe02a540a8102a183e1f4a8150a055c07c3e950287c0e1f5e9007c37", + "0x7c3e950287c0e1f0fc380a1f0c07d80054a8157c052407d7e054a8147005", + "0x2540a93028903ec202a540ac102a143ec102a540a1f5007c3e95028500a13", + "0x1584054a81584050307c0e054a8140e054387cd6054a814d6052407d2605", + "0x7d86054a814f8054307c3e95029a80aa10f87d2a050f81c3ec2039ad2693", + "0x1588054287d88054a8143ea20fb000a9502b0c0a480fafc0a95029d80a24", + "0x1c0a950281c0a870fb000a9502b000a480fafc0a9502afc0a240fb180a95", + "0x2540a1f029fc3e1f02a540a1f5d87d8c07602fd2605630152a05630140c1f", + "0x1d2a05028157c1f498152a050faf43e05028140a054a8143e055e07c3e05", + "0x14fa052787cfa7c3b1a92a05499ac3e6a6007d26054a81526055f87cd605", + "0x7cfe054a814fe056187cfe054a814fc7c03b083e7e02a540a1f6087c3e95", + "0x2f83e1802a540a1f6307c3e950287c0e1f240161e860a01d2a073f9d80ec4", + "0x22c2611352540a1846050d4c00f8600a95028600abf0fa300e074a8140e05", + "0x900ac30f8900a9502a1426076107d0a054a8143ec70f87d2a05458149e1f", + "0x1a80ac80f87d2a050f81c3e8802c400c8703a540e240881d881f120152a05", + "0x145a055507c3e950287c0e1f19816222d02a540e2c02b243e2c3501d2a05", + "0x140a4f0f87d2a05430149e1f0fa540a070293c3e1f4a8140c052787c3e95", + "0x7d2a0518815541f0fa540a1f0387c6405890c40a95039a80ac90f87d2a05", + "0x7c6e054a8143eca0f87d2a0519015541f0fa540a1f0387c3f130287c301f", + "0xd50e07028d40a95028d40acb0fa1c0a9502a1c0a240f8d40a95028dc0a17", + "0x2540e860281d981f0fa540a6a02ae03e1f4a81466055507c3e950287c0e1f", + "0x143ecd0f87d2a05038149e1f0fa540a060293c3e1f4a8143e070f87e281f", + "0x2040a9502a040acb0fa1c0a9502a1c0a240fa040a95028e00a170f8e00a95", + "0x7c3e950287c0e1f0fc543e95038180e076607c3e950287c0e1f40a1c0e05", + "0x1474056587d0e054a8150e051207c74054a814ac050b87cac054a8143ee2", + "0x152a053c015c81f3c0152a050fb8c3e1f4a8143e070f8e90e07028e80a95", + "0x1c0a4002a540a4002b2c3e8702a540a87028903e4002a540a3e02b943e3e", + "0x150c052787c3e95029a80ab80f87d2a05028149e1f0fa540a1f0387c8087", + "0x143e070f87e2c050f8603e4f02a540a88028903e1f4a8140e052787c3e95", + "0x1200a240f87d2a05038149e1f0fa540a6a02ae03e1f4a8140a052787c3e95", + "0x13c0a950293c0a240f9080a95029380a170f9380a950287dce1f278152a05", + "0x7c0a950287c0a7f0f87c0a950287dd01f2113c0e05210152a0521015961f", + "0x7c3e054a8143e053f87c3e054a8143ee90f8140a05028152a050f815781f", + "0x2f03e1f02a540a1f029fc3e1f02a540a1f4e07c0a05028140a950287c0abc", + "0x15781f0f8152a050f814fe1f0f8152a050fbac3e05028140a054a8143e05", + "0x1f00f173b1ac0e95038143e070287c3e950287c221f028140a0502a540a1f", + "0x7cfe058c07d2a073f014281f3f24c0e9502a4c0aec0f87d2a050f81c3e7d", + "0x152a0535015da1f0a0152a053b0150c1f0fa540a93028e83e1f4a8143e07", + "0x7cd6054a814d6051207c30054a81490057787c90054a8150c0703bb83e86", + "0x7c3e950287c0e1f0c050d66a028600a95028600af00f8500a95028500a48", + "0x7d16058c84c22074a81d18054987d18054a8140e053507c3e95029fc0a8c", + "0x2540a24029f43e2402a540a13029f03e8502a540a7602a183e1f4a8143e07", + "0x7d10054a8143ef10f8180a9502a1cd4072087d0e054a8150e053f87d0e05", + "0x14901f358152a0535814481f168152a0508814ea1f160152a054424c0ef2", + "0x2540a2c029fc3e0602a540a0602a943e2d02a540a2d02a903e8502a540a85", + "0x7d2a050f81c3e32188ccd405190c4666a4a814580616a14d66b5307c5805", + "0x2540a1f1887c6e054a814ec054307c3e95029a80a740f87d2a0549814741f", + "0x1580a95028e102077707d02054a81516053a87c70054a8146a057a07c6a05", + "0x15e01f1b8152a051b814901f358152a0535814481f1d0152a052b015de1f", + "0x1a80a740f87d2a0549814741f0fa540a1f0387c7437359a80a3a02a540a3a", + "0x903e3e02a540a7802a6c3e7802a540a1f5107c3e950281c0aa10f87d2a05", + "0xf8fa7c350147c054a8147c057807cfa054a814fa052407cf8054a814f805", + "0x2540a76029d03e1f4a814d6051d07c3e9502a4c0a560f87d2a0535015641f", + "0x1f00a480f87d2a050f81c3e860a1fcd51a3f1f4f86a4a81c0e05038cc3e1f", + "0x7c3e950287c0e1f4584c226a8da303048352540e7d3e01c661f3e0152a05", + "0xb1100643890d69502a140a380fa140a95029f80a350f9f80a95029f80a37", + "0x2540a2c028e83e1f4a81510052b07c3e95028180a560f87d2a0543815021f", + "0xc86233352540a2d029003e2d02a540a24028f83e2402a540a24029e03e1f", + "0x2540a33029383e3702a540a1f5e87c3e95028c80a560f87d2a05188149e1f", + "0x1502052787d02381a9a92a051b8cc3e6a6007c6e054a8146e055f87c6605", + "0x7c74054a81474056187c74054a814ac3803b083e5602a540a1f6087c3e95", + "0xdc3e1f4a8147c052787c3e950287c0e1f20016383e3c01d2a071d0d40ec4", + "0x7c9449221089c6b4a8149e051c07c9e054a81518051a87d18054a8151805", + "0x7d2a0525014741f0fa540a49029583e1f4a81488052b07c3e95029080a81", + "0x7ce852209a92a051f814801f1f8152a05270147c1f270152a0527014f01f", + "0x152a05290149c1f3a8152a050fb183e1f4a814e8052b07c3e95029040a4f", + "0x2540a6d0293c3e6d371c0d495029d4a478353003e7502a540a7502afc3e52", + "0x3103e6502a540a6502b0c3e6502a540a673701d841f338152a050fb1c3e1f", + "0x14901f0fa540a9d0293c3e1f4a8143e070fa780b1d4e8000e9503994e007", + "0x2840a950287dc61f500152a050f8fc3e9f02a540a4802a183e4802a540a48", + "0x7d48a303a540aa2029483ea202a540aa15001c821f508152a0550814fe1f", + "0x154c053707d4c054a8154a053807d4a054a81548053a87c3e9502a8c0a74", + "0x600a95028600a870fa7c0a9502a7c0a480f8000a95028000a240fa9c0a95", + "0x152a0524014901f0fa540a1f0387d4e184f8012605538152a05538140c1f", + "0x603eaa02a540aa8029203ea902a540a9e028903ea802a540a4802a183e48", + "0x2183e4802a540a48029203e1f4a81518054e87c3e950287c0e1f0fc780a1f", + "0x2540a1f7387d54054a81556052407d52054a81480051207d56054a8149005", + "0x3eaf02a540a1f3287c3e9502ab40a670fab95a074a81558053687d5805", + "0x2a80a480faa40a9502aa40a240fac40a9502ac00a850fac00a9502ab95e07", + "0x7d6218552a52605588152a05588140c1f0c0152a050c0150e1f550152a05", + "0x152a0545ac80e000fac80a950287cca1f0fa540a7e02a743e1f4a8143e07", + "0x21c3e1102a540a11029203e1f02a540a1f028903eb402a540ab302a143eb3", + "0x7c3e950287c0e1f5a04c221f4981568054a81568050307c26054a8142605", + "0x7c0a240fadc0a9502ad80a850fad80a9502a196a070007d6a054a8143e65", + "0x152a055b8140c1f0a0152a050a0150e1f3f8152a053f814901f0f8152a05", + "0x143e650f81c0a950287c0a072087c0a054a8143e3f0fadc287f0fa4c0ab7", + "0x143ef60fa4c0a05498152a0549815ea1f498152a05039a80e000f9a80a95", + "0x2540a1f7b87c0a05028140a950287c0abc0f87c0a950287c0a7f0f87c0a95", + "0x152a050fbe03e05028140a054a8143e055e07c3e054a8143e053f87c3e05", + "0x7c0a950287e3e1f028140a0502a540a1f02af03e1f02a540a1f029fc3e1f", + "0x7d2632371943e93458140a05028152a050f815781f0f8152a050f814fe1f", + "0x1b8ca1f49c80d4070287cda6e3287d2632371943e930f9a80e050f9b4dc65", + "0x24e446a038143e6d371943e93191b8ca1f49c84d4070287cda6e3287d2632", + "0x7cf01f039d022110fa4e48380287e466a038143e6d371943e93191b8ca1f", + "0x1a80c2c191943e6b948e00a1f940e00a1f938e00a1f930e00a1f929a80e05", + "0x24cd4070287cda6e3287d262c030f90a6e3287cf92a499a80e050fa04ca1f", + "0x1301c0143f2f1c0143f2e1c0143f2d1c0143f2c0f8e00a0602cacec6b" + ], + "sierra_program_debug_info": { + "type_names": [], + "libfunc_names": [], + "user_func_names": [] + }, + "contract_class_version": "0.1.0", + "entry_points_by_type": { + "EXTERNAL": [ + { + "selector": "0x15d40a3d6ca2ac30f4031e42be28da9b056fef9bb7357ac5e85627ee876e5ad", + "function_idx": 3 + }, + { + "selector": "0x162da33a4585851fe8d3af3c2a9c60b557814e221e0d4f30ff0b2189d9c7775", + "function_idx": 2 + }, + { + "selector": "0x289da278a8dc833409cabfdad1581e8e7d40e42dcaed693fa4008dcdb4963b3", + "function_idx": 1 + }, + { + "selector": "0x36fcbf06cd96843058359e1a75928beacfac10727dab22a3972f0af8aa92895", + "function_idx": 0 + } + ], + "L1_HANDLER": [], + "CONSTRUCTOR": [ + { + "selector": "0x28ffe4ff0f226a9107253e17a904099aa4f63a02a5621de0576e5aa71bc5194", + "function_idx": 4 + } + ] + }, + "abi": [ + { + "type": "enum", + "name": "core::bool", + "variants": [ + { + "name": "False", + "type": "()" + }, + { + "name": "True", + "type": "()" + } + ] + }, + { + "type": "constructor", + "name": "constructor", + "inputs": [ + { + "name": "is_validate_", + "type": "core::bool" + } + ] + }, + { + "type": "function", + "name": "__validate_deploy__", + "inputs": [ + { + "name": "class_hash", + "type": "core::felt252" + }, + { + "name": "contract_address_salt", + "type": "core::felt252" + }, + { + "name": "is_validate_", + "type": "core::bool" + } + ], + "outputs": [ + { + "type": "core::felt252" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "__validate_declare__", + "inputs": [ + { + "name": "class_hash", + "type": "core::felt252" + } + ], + "outputs": [ + { + "type": "core::felt252" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "__validate__", + "inputs": [ + { + "name": "contract_address", + "type": "core::starknet::contract_address::ContractAddress" + }, + { + "name": "selector", + "type": "core::felt252" + }, + { + "name": "calldata", + "type": "core::array::Array::" + } + ], + "outputs": [ + { + "type": "core::felt252" + } + ], + "state_mutability": "view" + }, + { + "type": "struct", + "name": "core::array::Span::", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::" + } + ] + }, + { + "type": "function", + "name": "__execute__", + "inputs": [ + { + "name": "contract_address", + "type": "core::starknet::contract_address::ContractAddress" + }, + { + "name": "selector", + "type": "core::felt252" + }, + { + "name": "calldata", + "type": "core::array::Array::" + } + ], + "outputs": [ + { + "type": "core::array::Span::" + } + ], + "state_mutability": "view" + }, + { + "type": "event", + "name": "block_info_test_contract::block_info_test_contract::Account::Event", + "kind": "enum", + "variants": [] + } + ] +} diff --git a/crates/blockifier_test_utils/src/contracts.rs b/crates/blockifier_test_utils/src/contracts.rs index 6ed38eec313..223dc7e9aae 100644 --- a/crates/blockifier_test_utils/src/contracts.rs +++ b/crates/blockifier_test_utils/src/contracts.rs @@ -61,10 +61,12 @@ const DELEGATE_PROXY_BASE: u32 = 13 * CLASS_HASH_BASE; const TEST_CONTRACT2_BASE: u32 = 14 * CLASS_HASH_BASE; const EXPERIMENTAL_CONTRACT_BASE: u32 = 15 * CLASS_HASH_BASE; const TX_INFO_WRITER_CONTRACT_BASE: u32 = 16 * CLASS_HASH_BASE; +const BLOCK_INFO_TEST_CONTRACT_BASE: u32 = 17 * CLASS_HASH_BASE; // Contract names. const ACCOUNT_LONG_VALIDATE_NAME: &str = "account_with_long_validate"; const ACCOUNT_WITHOUT_VALIDATIONS_NAME: &str = "account_with_dummy_validate"; +const BLOCK_INFO_TEST_CONTRACT_NAME: &str = "block_info_test_contract"; const DELEGATE_PROXY_NAME: &str = "delegate_proxy"; const EMPTY_CONTRACT_NAME: &str = "empty_contract"; const FAULTY_ACCOUNT_NAME: &str = "account_faulty"; @@ -113,6 +115,11 @@ const EMPTY_ACCOUNT_COMPILED_CLASS_HASH_V1: expect_test::Expect = const EMPTY_ACCOUNT_COMPILED_CLASS_HASH_V2: expect_test::Expect = expect!["0x63508c449d5e584fb0e4fac90e3cc6c46fbfbe8a7215e7f74b13391ab3a3071"]; +const BLOCK_INFO_TEST_CONTRACT_COMPILED_CLASS_HASH_V1: expect_test::Expect = + expect!["0x552616f711be96ee49c1284da676b288fdbe8ed00296677abf3e9259e3a1255"]; +const BLOCK_INFO_TEST_CONTRACT_COMPILED_CLASS_HASH_V2: expect_test::Expect = + expect!["0x2382bf2abcf5317f7aee94d938dacf19ec456b5148e50b6313526d8dd29f534"]; + const ERC20_COMPILED_CLASS_HASH_V1: expect_test::Expect = expect!["0x266f53b3f6cc2367c334b75ea86aff748ca27aa321019778af81be69d549159"]; const ERC20_COMPILED_CLASS_HASH_V2: expect_test::Expect = @@ -166,6 +173,7 @@ pub type CairoVersionString = String; pub enum FeatureContract { AccountWithLongValidate(CairoVersion), AccountWithoutValidations(CairoVersion), + BlockInfoTestContract(CairoVersion), DelegateProxy, EmptyAccount(RunnableCairo1), ERC20(CairoVersion), @@ -188,6 +196,7 @@ impl FeatureContract { match self { Self::AccountWithLongValidate(version) | Self::AccountWithoutValidations(version) + | Self::BlockInfoTestContract(version) | Self::Empty(version) | Self::FaultyAccount(version) | Self::TestContract(version) @@ -212,6 +221,7 @@ impl FeatureContract { match self { Self::AccountWithLongValidate(v) | Self::AccountWithoutValidations(v) + | Self::BlockInfoTestContract(v) | Self::Empty(v) | Self::FaultyAccount(v) | Self::TestContract(v) @@ -253,6 +263,10 @@ impl FeatureContract { ACCOUNT_WITHOUT_VALIDATIONS_COMPILED_CLASS_HASH_V1, ACCOUNT_WITHOUT_VALIDATIONS_COMPILED_CLASS_HASH_V2, ), + Self::BlockInfoTestContract(_) => ( + BLOCK_INFO_TEST_CONTRACT_COMPILED_CLASS_HASH_V1, + BLOCK_INFO_TEST_CONTRACT_COMPILED_CLASS_HASH_V2, + ), Self::Empty(_) => (EMPTY_COMPILED_CLASS_HASH_V1, EMPTY_COMPILED_CLASS_HASH_V2), Self::Experimental => { (EXPERIMENTAL_COMPILED_CLASS_HASH_V1, EXPERIMENTAL_COMPILED_CLASS_HASH_V2) @@ -376,6 +390,7 @@ impl FeatureContract { + match self { Self::AccountWithLongValidate(_) => ACCOUNT_LONG_VALIDATE_BASE, Self::AccountWithoutValidations(_) => ACCOUNT_WITHOUT_VALIDATIONS_BASE, + Self::BlockInfoTestContract(_) => BLOCK_INFO_TEST_CONTRACT_BASE, Self::DelegateProxy => DELEGATE_PROXY_BASE, Self::TestContract2 => TEST_CONTRACT2_BASE, Self::Empty(_) => EMPTY_CONTRACT_BASE, @@ -398,6 +413,7 @@ impl FeatureContract { match self { Self::AccountWithLongValidate(_) => ACCOUNT_LONG_VALIDATE_NAME, Self::AccountWithoutValidations(_) => ACCOUNT_WITHOUT_VALIDATIONS_NAME, + Self::BlockInfoTestContract(_) => BLOCK_INFO_TEST_CONTRACT_NAME, Self::DelegateProxy => DELEGATE_PROXY_NAME, Self::Experimental => EXPERIMENTAL_CONTRACT_NAME, Self::TestContract2 => TEST_CONTRACT2_NAME, @@ -495,6 +511,7 @@ impl FeatureContract { // Account contracts require the account_contract flag. FeatureContract::AccountWithLongValidate(_) | FeatureContract::AccountWithoutValidations(_) + | FeatureContract::BlockInfoTestContract(_) | FeatureContract::FaultyAccount(_) | FeatureContract::TxInfoWriter => Some("--account_contract".into()), FeatureContract::SecurityTests => Some("--disable_hint_validation".into()), @@ -539,6 +556,7 @@ impl FeatureContract { match self { Self::AccountWithLongValidate(_) | Self::AccountWithoutValidations(_) + | Self::BlockInfoTestContract(_) | Self::Empty(_) | Self::FaultyAccount(_) | Self::TestContract(_)