diff --git a/Cargo.lock b/Cargo.lock index 3f6ff87c9a..252caf0a0f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -11752,33 +11752,6 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" -[[package]] -name = "starknet-accounts" -version = "0.6.0" -source = "git+https://github.com/xJonathanLEI/starknet-rs.git?rev=a35ce22#a35ce22be52bf33b8e544d0df926031b0ec7d761" -dependencies = [ - "async-trait", - "auto_impl", - "starknet-core", - "starknet-providers", - "starknet-signers", - "thiserror", -] - -[[package]] -name = "starknet-contract" -version = "0.6.0" -source = "git+https://github.com/xJonathanLEI/starknet-rs.git?rev=a35ce22#a35ce22be52bf33b8e544d0df926031b0ec7d761" -dependencies = [ - "serde", - "serde_json", - "serde_with", - "starknet-accounts", - "starknet-core", - "starknet-providers", - "thiserror", -] - [[package]] name = "starknet-core" version = "0.7.2" @@ -11882,40 +11855,6 @@ dependencies = [ "starknet-ff 0.3.5 (git+https://github.com/xJonathanLEI/starknet-rs.git?rev=a35ce22)", ] -[[package]] -name = "starknet-e2e-test" -version = "0.1.0" -dependencies = [ - "anyhow", - "assert_matches", - "async-trait", - "ethers", - "ethers-solc", - "flate2", - "home", - "madara-runtime", - "mc-settlement", - "mp-messages", - "mp-snos-output", - "reqwest", - "rstest", - "serde", - "serde_json", - "starknet-accounts", - "starknet-contract", - "starknet-core", - "starknet-crypto 0.6.1", - "starknet-ff 0.3.5 (git+https://github.com/xJonathanLEI/starknet-rs.git?rev=a35ce22)", - "starknet-providers", - "starknet-signers", - "starknet_api", - "tempfile", - "test-context", - "thiserror", - "tokio", - "url", -] - [[package]] name = "starknet-ff" version = "0.3.5" @@ -11960,46 +11899,6 @@ dependencies = [ "url", ] -[[package]] -name = "starknet-rpc-test" -version = "0.1.0" -dependencies = [ - "anyhow", - "assert_matches", - "async-lock 3.1.1", - "async-trait", - "flate2", - "reqwest", - "rstest", - "serde", - "serde_json", - "starknet-accounts", - "starknet-contract", - "starknet-core", - "starknet-crypto 0.6.1", - "starknet-ff 0.3.5 (git+https://github.com/xJonathanLEI/starknet-rs.git?rev=a35ce22)", - "starknet-providers", - "starknet-signers", - "thiserror", - "tokio", - "url", -] - -[[package]] -name = "starknet-signers" -version = "0.5.0" -source = "git+https://github.com/xJonathanLEI/starknet-rs.git?rev=a35ce22#a35ce22be52bf33b8e544d0df926031b0ec7d761" -dependencies = [ - "async-trait", - "auto_impl", - "crypto-bigint 0.5.5", - "eth-keystore", - "rand 0.8.5", - "starknet-core", - "starknet-crypto 0.6.1", - "thiserror", -] - [[package]] name = "starknet_api" version = "0.4.1" @@ -12446,27 +12345,6 @@ dependencies = [ "test-case-core", ] -[[package]] -name = "test-context" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "055831a02a4f5aa28fede67f2902014273eb8c21b958ac5ebbd59b71ef30dbc3" -dependencies = [ - "async-trait", - "futures", - "test-context-macros", -] - -[[package]] -name = "test-context-macros" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8901a55b0a7a06ebc4a674dcca925170da8e613fa3b163a1df804ed10afb154d" -dependencies = [ - "quote", - "syn 1.0.109", -] - [[package]] name = "thiserror" version = "1.0.50" diff --git a/Cargo.toml b/Cargo.toml index a4169b9b93..3656484439 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -29,8 +29,6 @@ members = [ "crates/client/deoxys", "crates/client/commitment-state-diff", "crates/client/settlement", - "starknet-rpc-test", - "starknet-e2e-test", ] # All previous except for `starknet-rpc-test` and `starknet-e2e-test` # We don't want `cargo test` to trigger its tests diff --git a/README.md b/README.md index 1a3f677e59..622dc0d027 100644 --- a/README.md +++ b/README.md @@ -28,11 +28,13 @@ ## 🤝 Partnerships -To establish a partnership with the Kasar team, or if you have any suggestion or special request, feel free to reach us -on [telegram](https://t.me/kasarlabs). +To establish a partnership with the Kasar team, or if you have any suggestion or +special request, feel free to reach us on [telegram](https://t.me/kasarlabs). ## ⚠️ License -Copyright (c) 2022-present, with the following [contributors](https://github.com/KasarLabs/deoxys/graphs/contributors). +Copyright (c) 2022-present, with the following +[contributors](https://github.com/KasarLabs/deoxys/graphs/contributors). -Deoxys is open-source software licensed under the [Apache-2.0 License](https://github.com/KasarLabs/deoxys/blob/main/LICENSE). \ No newline at end of file +Deoxys is open-source software licensed under the +[Apache-2.0 License](https://github.com/KasarLabs/deoxys/blob/main/LICENSE). diff --git a/cairo-contracts/build/send_message.json b/cairo-contracts/build/send_message.json deleted file mode 100644 index 9ac4374447..0000000000 --- a/cairo-contracts/build/send_message.json +++ /dev/null @@ -1,1261 +0,0 @@ -{ - "abi": [ - { - "inputs": [ - { - "name": "to_address", - "type": "felt" - }, - { - "name": "payload_len", - "type": "felt" - }, - { - "name": "payload", - "type": "felt*" - } - ], - "name": "send_message_l2_to_l1", - "outputs": [], - "type": "function" - } - ], - "entry_points_by_type": { - "CONSTRUCTOR": [], - "EXTERNAL": [ - { - "offset": "0x13", - "selector": "0x9139dbd19ca9654d773cd88f31af4c8d583beecc3362fb986dccfef5cf134f" - } - ], - "L1_HANDLER": [] - }, - "program": { - "attributes": [], - "builtins": [ - "range_check" - ], - "compiler_version": "0.11.2", - "data": [ - "0x40780017fff7fff", - "0x1", - "0x208b7fff7fff7ffe", - "0x480680017fff8000", - "0x53656e644d657373616765546f4c31", - "0x400280007ffa7fff", - "0x400380017ffa7ffb", - "0x400380027ffa7ffc", - "0x400380037ffa7ffd", - "0x482680017ffa8000", - "0x4", - "0x208b7fff7fff7ffe", - "0x480a7ffa7fff8000", - "0x480a7ffb7fff8000", - "0x480a7ffc7fff8000", - "0x480a7ffd7fff8000", - "0x1104800180018000", - "0x800000000000010fffffffffffffffffffffffffffffffffffffffffffffff4", - "0x208b7fff7fff7ffe", - "0x480280017ffb8000", - "0x480280017ffd8000", - "0x400080007ffe7fff", - "0x482680017ffd8000", - "0x2", - "0x480280017ffd8000", - "0x48307fff7ffe8000", - "0x402a7ffd7ffc7fff", - "0x480280007ffb8000", - "0x480280007ffd8000", - "0x480280017ffd8000", - "0x482680017ffd8000", - "0x2", - "0x1104800180018000", - "0x800000000000010ffffffffffffffffffffffffffffffffffffffffffffffed", - "0x40780017fff7fff", - "0x1", - "0x480280017ffb8000", - "0x48127ffd7fff8000", - "0x482480017ffe8000", - "0x1", - "0x480680017fff8000", - "0x0", - "0x48127ffb7fff8000", - "0x208b7fff7fff7ffe" - ], - "debug_info": null, - "hints": { - "0": [ - { - "accessible_scopes": [ - "starkware.cairo.common.alloc", - "starkware.cairo.common.alloc.alloc" - ], - "code": "memory[ap] = segments.add()", - "flow_tracking_data": { - "ap_tracking": { - "group": 0, - "offset": 0 - }, - "reference_ids": {} - } - } - ], - "9": [ - { - "accessible_scopes": [ - "starkware.starknet.common.messages", - "starkware.starknet.common.messages.send_message_to_l1" - ], - "code": "syscall_handler.send_message_to_l1(segments=segments, syscall_ptr=ids.syscall_ptr)", - "flow_tracking_data": { - "ap_tracking": { - "group": 1, - "offset": 1 - }, - "reference_ids": { - "starkware.starknet.common.messages.send_message_to_l1.syscall_ptr": 0 - } - } - } - ], - "34": [ - { - "accessible_scopes": [ - "__main__", - "__main__", - "__wrappers__", - "__wrappers__.send_message_l2_to_l1" - ], - "code": "memory[ap] = segments.add()", - "flow_tracking_data": { - "ap_tracking": { - "group": 3, - "offset": 19 - }, - "reference_ids": {} - } - } - ] - }, - "identifiers": { - "__main__.alloc": { - "destination": "starkware.cairo.common.alloc.alloc", - "type": "alias" - }, - "__main__.send_message_l2_to_l1": { - "decorators": [ - "external" - ], - "pc": 12, - "type": "function" - }, - "__main__.send_message_l2_to_l1.Args": { - "full_name": "__main__.send_message_l2_to_l1.Args", - "members": { - "payload": { - "cairo_type": "felt*", - "offset": 2 - }, - "payload_len": { - "cairo_type": "felt", - "offset": 1 - }, - "to_address": { - "cairo_type": "felt", - "offset": 0 - } - }, - "size": 3, - "type": "struct" - }, - "__main__.send_message_l2_to_l1.ImplicitArgs": { - "full_name": "__main__.send_message_l2_to_l1.ImplicitArgs", - "members": { - "syscall_ptr": { - "cairo_type": "felt*", - "offset": 0 - } - }, - "size": 1, - "type": "struct" - }, - "__main__.send_message_l2_to_l1.Return": { - "cairo_type": "()", - "type": "type_definition" - }, - "__main__.send_message_l2_to_l1.SIZEOF_LOCALS": { - "type": "const", - "value": 0 - }, - "__main__.send_message_to_l1": { - "destination": "starkware.starknet.common.messages.send_message_to_l1", - "type": "alias" - }, - "__wrappers__.send_message_l2_to_l1": { - "decorators": [ - "external" - ], - "pc": 19, - "type": "function" - }, - "__wrappers__.send_message_l2_to_l1.Args": { - "full_name": "__wrappers__.send_message_l2_to_l1.Args", - "members": {}, - "size": 0, - "type": "struct" - }, - "__wrappers__.send_message_l2_to_l1.ImplicitArgs": { - "full_name": "__wrappers__.send_message_l2_to_l1.ImplicitArgs", - "members": {}, - "size": 0, - "type": "struct" - }, - "__wrappers__.send_message_l2_to_l1.Return": { - "cairo_type": "(syscall_ptr: felt*, range_check_ptr: felt, size: felt, retdata: felt*)", - "type": "type_definition" - }, - "__wrappers__.send_message_l2_to_l1.SIZEOF_LOCALS": { - "type": "const", - "value": 0 - }, - "__wrappers__.send_message_l2_to_l1.__wrapped_func": { - "destination": "__main__.send_message_l2_to_l1", - "type": "alias" - }, - "__wrappers__.send_message_l2_to_l1_encode_return.memcpy": { - "destination": "starkware.cairo.common.memcpy.memcpy", - "type": "alias" - }, - "starkware.cairo.common.alloc.alloc": { - "decorators": [], - "pc": 0, - "type": "function" - }, - "starkware.cairo.common.alloc.alloc.Args": { - "full_name": "starkware.cairo.common.alloc.alloc.Args", - "members": {}, - "size": 0, - "type": "struct" - }, - "starkware.cairo.common.alloc.alloc.ImplicitArgs": { - "full_name": "starkware.cairo.common.alloc.alloc.ImplicitArgs", - "members": {}, - "size": 0, - "type": "struct" - }, - "starkware.cairo.common.alloc.alloc.Return": { - "cairo_type": "(ptr: felt*)", - "type": "type_definition" - }, - "starkware.cairo.common.alloc.alloc.SIZEOF_LOCALS": { - "type": "const", - "value": 0 - }, - "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.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.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.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.messages.SEND_MESSAGE_TO_L1_SELECTOR": { - "destination": "starkware.starknet.common.syscalls.SEND_MESSAGE_TO_L1_SELECTOR", - "type": "alias" - }, - "starkware.starknet.common.messages.SendMessageToL1SysCall": { - "destination": "starkware.starknet.common.syscalls.SendMessageToL1SysCall", - "type": "alias" - }, - "starkware.starknet.common.messages.send_message_to_l1": { - "decorators": [], - "pc": 3, - "type": "function" - }, - "starkware.starknet.common.messages.send_message_to_l1.Args": { - "full_name": "starkware.starknet.common.messages.send_message_to_l1.Args", - "members": { - "payload": { - "cairo_type": "felt*", - "offset": 2 - }, - "payload_size": { - "cairo_type": "felt", - "offset": 1 - }, - "to_address": { - "cairo_type": "felt", - "offset": 0 - } - }, - "size": 3, - "type": "struct" - }, - "starkware.starknet.common.messages.send_message_to_l1.ImplicitArgs": { - "full_name": "starkware.starknet.common.messages.send_message_to_l1.ImplicitArgs", - "members": { - "syscall_ptr": { - "cairo_type": "felt*", - "offset": 0 - } - }, - "size": 1, - "type": "struct" - }, - "starkware.starknet.common.messages.send_message_to_l1.Return": { - "cairo_type": "()", - "type": "type_definition" - }, - "starkware.starknet.common.messages.send_message_to_l1.SIZEOF_LOCALS": { - "type": "const", - "value": 0 - }, - "starkware.starknet.common.messages.send_message_to_l1.syscall_ptr": { - "cairo_type": "felt*", - "full_name": "starkware.starknet.common.messages.send_message_to_l1.syscall_ptr", - "references": [ - { - "ap_tracking_data": { - "group": 1, - "offset": 0 - }, - "pc": 3, - "value": "[cast(fp + (-6), felt**)]" - }, - { - "ap_tracking_data": { - "group": 1, - "offset": 1 - }, - "pc": 9, - "value": "cast([fp + (-6)] + 4, felt*)" - } - ], - "type": "reference" - }, - "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" - } - }, - "main_scope": "__main__", - "prime": "0x800000000000011000000000000000000000000000000000000000000000001", - "reference_manager": { - "references": [ - { - "ap_tracking_data": { - "group": 1, - "offset": 0 - }, - "pc": 3, - "value": "[cast(fp + (-6), felt**)]" - } - ] - } - } -} \ No newline at end of file diff --git a/cairo-contracts/build/test.json b/cairo-contracts/build/test.json deleted file mode 100644 index f35a733452..0000000000 --- a/cairo-contracts/build/test.json +++ /dev/null @@ -1,5418 +0,0 @@ -{ - "abi": [ - { - "data": [ - { - "name": "value", - "type": "felt" - } - ], - "keys": [], - "name": "Event", - "type": "event" - }, - { - "inputs": [ - { - "name": "address", - "type": "felt" - }, - { - "name": "value", - "type": "felt" - } - ], - "name": "constructor", - "outputs": [], - "type": "constructor" - }, - { - "inputs": [], - "name": "without_arg", - "outputs": [], - "type": "function" - }, - { - "inputs": [], - "name": "emit_event", - "outputs": [], - "type": "function" - }, - { - "inputs": [ - { - "name": "num", - "type": "felt" - } - ], - "name": "with_arg", - "outputs": [], - "type": "function" - }, - { - "inputs": [ - { - "name": "num", - "type": "felt" - } - ], - "name": "return_result", - "outputs": [ - { - "name": "result", - "type": "felt" - } - ], - "type": "function" - }, - { - "inputs": [ - { - "name": "x", - "type": "felt" - }, - { - "name": "y", - "type": "felt" - } - ], - "name": "bitwise_and", - "outputs": [], - "type": "function" - }, - { - "inputs": [ - { - "name": "value", - "type": "felt" - } - ], - "name": "sqrt", - "outputs": [], - "type": "function" - }, - { - "inputs": [ - { - "name": "address", - "type": "felt" - }, - { - "name": "value", - "type": "felt" - } - ], - "name": "test_storage_read_write", - "outputs": [ - { - "name": "result", - "type": "felt" - } - ], - "type": "function" - }, - { - "inputs": [ - { - "name": "from_address", - "type": "felt" - }, - { - "name": "value", - "type": "felt" - } - ], - "name": "test_l1_handler_store_under_caller_address", - "outputs": [], - "type": "l1_handler" - }, - { - "inputs": [ - { - "name": "class_hash", - "type": "felt" - }, - { - "name": "selector", - "type": "felt" - }, - { - "name": "calldata_len", - "type": "felt" - }, - { - "name": "calldata", - "type": "felt*" - } - ], - "name": "test_library_call", - "outputs": [ - { - "name": "retdata_size", - "type": "felt" - }, - { - "name": "retdata", - "type": "felt*" - } - ], - "type": "function" - }, - { - "inputs": [ - { - "name": "class_hash", - "type": "felt" - }, - { - "name": "lib_selector", - "type": "felt" - }, - { - "name": "nested_selector", - "type": "felt" - }, - { - "name": "calldata_len", - "type": "felt" - }, - { - "name": "calldata", - "type": "felt*" - } - ], - "name": "test_nested_library_call", - "outputs": [ - { - "name": "result", - "type": "felt" - } - ], - "type": "function" - }, - { - "inputs": [ - { - "name": "contract_address", - "type": "felt" - }, - { - "name": "function_selector", - "type": "felt" - }, - { - "name": "calldata_len", - "type": "felt" - }, - { - "name": "calldata", - "type": "felt*" - } - ], - "name": "test_call_contract", - "outputs": [ - { - "name": "retdata_size", - "type": "felt" - }, - { - "name": "retdata", - "type": "felt*" - } - ], - "type": "function" - }, - { - "inputs": [ - { - "name": "class_hash", - "type": "felt" - }, - { - "name": "contract_address_salt", - "type": "felt" - }, - { - "name": "constructor_calldata_len", - "type": "felt" - }, - { - "name": "constructor_calldata", - "type": "felt*" - }, - { - "name": "deploy_from_zero", - "type": "felt" - } - ], - "name": "test_deploy", - "outputs": [ - { - "name": "contract_address", - "type": "felt" - } - ], - "type": "function" - }, - { - "inputs": [], - "name": "test_storage_var", - "outputs": [], - "type": "function" - }, - { - "inputs": [ - { - "name": "salt", - "type": "felt" - }, - { - "name": "class_hash", - "type": "felt" - }, - { - "name": "constructor_calldata_len", - "type": "felt" - }, - { - "name": "constructor_calldata", - "type": "felt*" - }, - { - "name": "deployer_address", - "type": "felt" - } - ], - "name": "test_contract_address", - "outputs": [ - { - "name": "contract_address", - "type": "felt" - } - ], - "type": "function" - } - ], - "entry_points_by_type": { - "CONSTRUCTOR": [ - { - "offset": "0x147", - "selector": "0x28ffe4ff0f226a9107253e17a904099aa4f63a02a5621de0576e5aa71bc5194" - } - ], - "EXTERNAL": [ - { - "offset": "0x16e", - "selector": "0x966af5d72d3975f70858b044c77785d3710638bbcebbd33cc7001a91025588" - }, - { - "offset": "0x1b3", - "selector": "0xad451bd0dba3d8d97104e1bfc474f88605ccc7acbe1c846839a120fdf30d95" - }, - { - "offset": "0x180", - "selector": "0xe7def693d16806ca2a2f398d8de5951344663ba77f340ed7a958da731872fc" - }, - { - "offset": "0x1cb", - "selector": "0x137a07fa9c479e27114b8ae1fbf252f2065cf91a0d8615272e060a7ccf37309" - }, - { - "offset": "0x2b9", - "selector": "0x169f135eddda5ab51886052d777a57f2ea9c162d713691b5e04a6d4ed71d47f" - }, - { - "offset": "0x28e", - "selector": "0x27c3334165536f239cfd400ed956eabff55fc60de4fb56728b6a4f6b87db01c" - }, - { - "offset": "0x220", - "selector": "0x3604cea1cdb094a73a31144f14a3e5861613c008e1e879939ebc4827d10cd50" - }, - { - "offset": "0x2ec", - "selector": "0x36fa6de2810d05c3e1a0ebe23f60b9c2f4629bbead09e5a9704e1c5632630d5" - }, - { - "offset": "0x30f", - "selector": "0x38215592552d97419658d30db8f189b242ec2056641de3dff8a7217745ec205" - }, - { - "offset": "0x15a", - "selector": "0x382a967a31be13f23e23a5345f7a89b0362cc157d6fbe7564e6396a83cf4b4f" - }, - { - "offset": "0x19b", - "selector": "0x39a1491f76903a16feed0a6433bec78de4c73194944e1118e226820ad479701" - }, - { - "offset": "0x268", - "selector": "0x3a6a8bae4c51d5959683ae246347ffdd96aa5b2bfa68cc8c3a6a7c2ed0be331" - }, - { - "offset": "0x1ee", - "selector": "0x3b097c62d3e4b85742aadd0dfb823f96134b886ec13bda57b68faf86f294d97" - } - ], - "L1_HANDLER": [ - { - "offset": "0x206", - "selector": "0x14093c40d95d0a3641c087f7d48d55160e1a58bc7c07b0d2323efeeb3087269" - } - ] - }, - "program": { - "attributes": [], - "builtins": [ - "pedersen", - "range_check", - "bitwise" - ], - "compiler_version": "0.11.2", - "data": [ - "0x40780017fff7fff", - "0x1", - "0x208b7fff7fff7ffe", - "0x400380007ffb7ffc", - "0x400380017ffb7ffd", - "0x482680017ffb8000", - "0x3", - "0x480280027ffb8000", - "0x208b7fff7fff7ffe", - "0x208b7fff7fff7ffe", - "0x1104800180018000", - "0x800000000000011000000000000000000000000000000000000000000000000", - "0x482480017ffe8000", - "0x800000000000010ffffffffffffffffffffffffffffffffffffffffffffffff", - "0x208b7fff7fff7ffe", - "0x480680017fff8000", - "0x43616c6c436f6e7472616374", - "0x400280007ff97fff", - "0x400380017ff97ffa", - "0x400380027ff97ffb", - "0x400380037ff97ffc", - "0x400380047ff97ffd", - "0x482680017ff98000", - "0x7", - "0x480280057ff98000", - "0x480280067ff98000", - "0x208b7fff7fff7ffe", - "0x480680017fff8000", - "0x4c69627261727943616c6c", - "0x400280007ff97fff", - "0x400380017ff97ffa", - "0x400380027ff97ffb", - "0x400380037ff97ffc", - "0x400380047ff97ffd", - "0x482680017ff98000", - "0x7", - "0x480280057ff98000", - "0x480280067ff98000", - "0x208b7fff7fff7ffe", - "0x480680017fff8000", - "0x4465706c6f79", - "0x400280007ff87fff", - "0x400380017ff87ff9", - "0x400380027ff87ffa", - "0x400380037ff87ffb", - "0x400380047ff87ffc", - "0x400380057ff87ffd", - "0x482680017ff88000", - "0x9", - "0x480280067ff88000", - "0x208b7fff7fff7ffe", - "0x480680017fff8000", - "0x53746f7261676552656164", - "0x400280007ffc7fff", - "0x400380017ffc7ffd", - "0x482680017ffc8000", - "0x3", - "0x480280027ffc8000", - "0x208b7fff7fff7ffe", - "0x480680017fff8000", - "0x53746f726167655772697465", - "0x400280007ffb7fff", - "0x400380017ffb7ffc", - "0x400380027ffb7ffd", - "0x482680017ffb8000", - "0x3", - "0x208b7fff7fff7ffe", - "0x480680017fff8000", - "0x456d69744576656e74", - "0x400280007ff97fff", - "0x400380017ff97ffa", - "0x400380027ff97ffb", - "0x400380037ff97ffc", - "0x400380047ff97ffd", - "0x482680017ff98000", - "0x5", - "0x208b7fff7fff7ffe", - "0x480680017fff8000", - "0x3ffffffffffffffffffffffffffffff", - "0x480280017ffc8000", - "0x48307fff80007ffe", - "0x400280027ffc7fff", - "0x480280017ffc8000", - "0x484480017fff8000", - "0x100000000000000000000000000000000", - "0x480280007ffc8000", - "0x40317fff7ffe7ffd", - "0x482680017ffc8000", - "0x3", - "0x208b7fff7fff7ffe", - "0x40780017fff7fff", - "0x1", - "0x20680017fff7fff", - "0x10", - "0x480a7ffc7fff8000", - "0x482680017ffd8000", - "0x11000000000000000000000000000000000000000000000101", - "0x1104800180018000", - "0x800000000000010ffffffffffffffffffffffffffffffffffffffffffffffed", - "0x480680017fff8000", - "0x800000000000011000000000000000000000000000000000000000000000000", - "0x48127ffe7fff8000", - "0x48287ffd80007ffe", - "0x1104800180018000", - "0x800000000000010ffffffffffffffffffffffffffffffffffffffffffffffe7", - "0x482680017ffd8000", - "0x11000000000000000000000000000000000000000000000101", - "0x208b7fff7fff7ffe", - "0x40780017fff7fff", - "0x1", - "0x20680017fff7fff", - "0xc", - "0x40780017fff7fff", - "0xa", - "0x480680017fff8000", - "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeff", - "0x480a7ffc7fff8000", - "0x48287ffd80007ffe", - "0x1104800180018000", - "0x800000000000010ffffffffffffffffffffffffffffffffffffffffffffffd8", - "0x10780017fff7fff", - "0x8", - "0x40780017fff7fff", - "0xb", - "0x480a7ffc7fff8000", - "0x480a7ffd7fff8000", - "0x1104800180018000", - "0x800000000000010ffffffffffffffffffffffffffffffffffffffffffffffd0", - "0x480a7ffd7fff8000", - "0x208b7fff7fff7ffe", - "0x40780017fff7fff", - "0x2", - "0x1104800180018000", - "0x800000000000010ffffffffffffffffffffffffffffffffffffffffffffff86", - "0x400780017fff8000", - "0x0", - "0x400780017fff8001", - "0x0", - "0x48127ffe7fff8000", - "0x208b7fff7fff7ffe", - "0x40780017fff7fff", - "0x2", - "0x480a7ffa7fff8000", - "0x480a7ffc7fff8000", - "0x480a7ffd7fff8000", - "0x480280007ffb8000", - "0x1104800180018000", - "0x2b", - "0x1104800180018000", - "0x800000000000010ffffffffffffffffffffffffffffffffffffffffffffff76", - "0x40137ffd7fff8000", - "0x480280017ffb8000", - "0x40297ffd7fff8001", - "0x48127ffb7fff8000", - "0x48127ffc7fff8000", - "0x208b7fff7fff7ffe", - "0x40780017fff7fff", - "0x2", - "0x480a7ffb7fff8000", - "0x480280007ffc8000", - "0x480a7ffd7fff8000", - "0x1104800180018000", - "0x800000000000010ffffffffffffffffffffffffffffffffffffffffffffff63", - "0x1104800180018000", - "0x800000000000010ffffffffffffffffffffffffffffffffffffffffffffff67", - "0x40137ffd7fff8000", - "0x480280017ffc8000", - "0x402580017fff8001", - "0x1", - "0x48127ffb7fff8000", - "0x48127ffc7fff8000", - "0x208b7fff7fff7ffe", - "0x480a7ffa7fff8000", - "0x480a7ffc7fff8000", - "0x480a7ffd7fff8000", - "0x1104800180018000", - "0x27", - "0x48127ffe7fff8000", - "0x480a7ffb7fff8000", - "0x48127ffd7fff8000", - "0x1104800180018000", - "0x800000000000010ffffffffffffffffffffffffffffffffffffffffffffffe9", - "0x208b7fff7fff7ffe", - "0x480a7ffc7fff8000", - "0x480280007ffd8000", - "0x480280017ffd8000", - "0x1104800180018000", - "0x800000000000010ffffffffffffffffffffffffffffffffffffffffffffff4a", - "0x208b7fff7fff7ffe", - "0x20780017fff7ffc", - "0x5", - "0x480a7ffa7fff8000", - "0x480a7ffd7fff8000", - "0x208b7fff7fff7ffe", - "0x40780017fff7fff", - "0x1", - "0x482680017ffc8000", - "0x800000000000011000000000000000000000000000000000000000000000000", - "0x40337fff7ffb8000", - "0x480a7ffb7fff8000", - "0x480a7ffa7fff8000", - "0x480a7ffd7fff8000", - "0x48317ffd80008000", - "0x400080007ffd7ffe", - "0x480080007ffc8000", - "0x400080017ffc7fff", - "0x482480017ffb8000", - "0x1", - "0x482480017ffb8000", - "0x3", - "0x480080027ffa8000", - "0x20680017fff7ffb", - "0x800000000000010fffffffffffffffffffffffffffffffffffffffffffffff8", - "0x208b7fff7fff7ffe", - "0x1104800180018000", - "0x800000000000010ffffffffffffffffffffffffffffffffffffffffffffffad", - "0x480a7ffb7fff8000", - "0x48127ffe7fff8000", - "0x480a7ffc7fff8000", - "0x480a7ffd7fff8000", - "0x1104800180018000", - "0x800000000000010ffffffffffffffffffffffffffffffffffffffffffffffb1", - "0x1104800180018000", - "0x800000000000010ffffffffffffffffffffffffffffffffffffffffffffffda", - "0x208b7fff7fff7ffe", - "0x1104800180018000", - "0x800000000000010ffffffffffffffffffffffffffffffffffffffffffffffa2", - "0x480a7ff77fff8000", - "0x48127ffe7fff8000", - "0x480680017fff8000", - "0x535441524b4e45545f434f4e54524143545f41444452455353", - "0x1104800180018000", - "0x800000000000010ffffffffffffffffffffffffffffffffffffffffffffffb6", - "0x480a7ffd7fff8000", - "0x1104800180018000", - "0x800000000000010ffffffffffffffffffffffffffffffffffffffffffffffb3", - "0x480a7ff97fff8000", - "0x1104800180018000", - "0x800000000000010ffffffffffffffffffffffffffffffffffffffffffffffb0", - "0x480a7ffa7fff8000", - "0x1104800180018000", - "0x800000000000010ffffffffffffffffffffffffffffffffffffffffffffffad", - "0x480a7ffc7fff8000", - "0x480a7ffb7fff8000", - "0x1104800180018000", - "0x800000000000010ffffffffffffffffffffffffffffffffffffffffffffffb9", - "0x1104800180018000", - "0x800000000000010ffffffffffffffffffffffffffffffffffffffffffffffc2", - "0x480a7ff87fff8000", - "0x48127ffe7fff8000", - "0x1104800180018000", - "0x800000000000010ffffffffffffffffffffffffffffffffffffffffffffff61", - "0x48127fe17fff8000", - "0x48127ffd7fff8000", - "0x48127ffd7fff8000", - "0x208b7fff7fff7ffe", - "0x40780017fff7fff", - "0x2", - "0x1104800180018000", - "0x800000000000010fffffffffffffffffffffffffffffffffffffffffffffeff", - "0x40137fff7fff8000", - "0x480680017fff8000", - "0x2d4fbe4956fedf49b5892807e00e7e9eea4680becba55f9187684a69e9424fa", - "0x4002800080007fff", - "0x1104800180018000", - "0x800000000000010fffffffffffffffffffffffffffffffffffffffffffffef9", - "0x40137fff7fff8001", - "0x4003800080017ffd", - "0x4826800180018000", - "0x1", - "0x480a7ffb7fff8000", - "0x480680017fff8000", - "0x1", - "0x480a80007fff8000", - "0x4828800180007ffc", - "0x480a80017fff8000", - "0x1104800180018000", - "0x800000000000010ffffffffffffffffffffffffffffffffffffffffffffff30", - "0x480a7ffc7fff8000", - "0x208b7fff7fff7ffe", - "0x480a7ffb7fff8000", - "0x480680017fff8000", - "0x391a88f3badec8650b4d8356e18655269ee975e58e0060aa076396ce0b1dccb", - "0x480a7ffd7fff8000", - "0x1104800180018000", - "0x800000000000010fffffffffffffffffffffffffffffffffffffffffffffee8", - "0x480a7ffc7fff8000", - "0x48127ffe7fff8000", - "0x1104800180018000", - "0x800000000000010ffffffffffffffffffffffffffffffffffffffffffffff3b", - "0x48127fe17fff8000", - "0x48127ffd7fff8000", - "0x48127ffd7fff8000", - "0x208b7fff7fff7ffe", - "0x480a7ffb7fff8000", - "0x480a7ffc7fff8000", - "0x480a7ffd7fff8000", - "0x1104800180018000", - "0x800000000000010fffffffffffffffffffffffffffffffffffffffffffffff0", - "0x480a7ffa7fff8000", - "0x48127ffe7fff8000", - "0x1104800180018000", - "0x800000000000010ffffffffffffffffffffffffffffffffffffffffffffff07", - "0x48127ffe7fff8000", - "0x48127ff57fff8000", - "0x48127ff57fff8000", - "0x48127ffc7fff8000", - "0x208b7fff7fff7ffe", - "0x480a7ffa7fff8000", - "0x480a7ffb7fff8000", - "0x480a7ffc7fff8000", - "0x1104800180018000", - "0x800000000000010ffffffffffffffffffffffffffffffffffffffffffffffe2", - "0x480a7ff97fff8000", - "0x48127ffe7fff8000", - "0x480a7ffd7fff8000", - "0x1104800180018000", - "0x800000000000010ffffffffffffffffffffffffffffffffffffffffffffff00", - "0x48127ff67fff8000", - "0x48127ff67fff8000", - "0x208b7fff7fff7ffe", - "0x480a7ffb7fff8000", - "0x480a7ffc7fff8000", - "0x480a7ffd7fff8000", - "0x1104800180018000", - "0x800000000000010fffffffffffffffffffffffffffffffffffffffffffffef8", - "0x208b7fff7fff7ffe", - "0x482680017ffd8000", - "0x2", - "0x402a7ffd7ffc7fff", - "0x480280007ffb8000", - "0x480280007ffd8000", - "0x480280017ffd8000", - "0x1104800180018000", - "0x800000000000010fffffffffffffffffffffffffffffffffffffffffffffff5", - "0x40780017fff7fff", - "0x1", - "0x48127ffe7fff8000", - "0x480280017ffb8000", - "0x480280027ffb8000", - "0x480280037ffb8000", - "0x480680017fff8000", - "0x0", - "0x48127ffa7fff8000", - "0x208b7fff7fff7ffe", - "0x208b7fff7fff7ffe", - "0x402b7ffd7ffc7ffd", - "0x1104800180018000", - "0x800000000000010ffffffffffffffffffffffffffffffffffffffffffffffff", - "0x40780017fff7fff", - "0x1", - "0x480280007ffb8000", - "0x480280017ffb8000", - "0x480280027ffb8000", - "0x480280037ffb8000", - "0x480680017fff8000", - "0x0", - "0x48127ffa7fff8000", - "0x208b7fff7fff7ffe", - "0x480a7ffc7fff8000", - "0x480a7ffd7fff8000", - "0x480680017fff8000", - "0x1", - "0x1104800180018000", - "0x800000000000010ffffffffffffffffffffffffffffffffffffffffffffff96", - "0x208b7fff7fff7ffe", - "0x402b7ffd7ffc7ffd", - "0x480280007ffb8000", - "0x480280027ffb8000", - "0x1104800180018000", - "0x800000000000010fffffffffffffffffffffffffffffffffffffffffffffff7", - "0x40780017fff7fff", - "0x1", - "0x48127ffd7fff8000", - "0x480280017ffb8000", - "0x48127ffc7fff8000", - "0x480280037ffb8000", - "0x480680017fff8000", - "0x0", - "0x48127ffa7fff8000", - "0x208b7fff7fff7ffe", - "0x400780017fff7ffd", - "0x19", - "0x208b7fff7fff7ffe", - "0x482680017ffd8000", - "0x1", - "0x402a7ffd7ffc7fff", - "0x480280007ffd8000", - "0x1104800180018000", - "0x800000000000010fffffffffffffffffffffffffffffffffffffffffffffffa", - "0x40780017fff7fff", - "0x1", - "0x480280007ffb8000", - "0x480280017ffb8000", - "0x480280027ffb8000", - "0x480280037ffb8000", - "0x480680017fff8000", - "0x0", - "0x48127ffa7fff8000", - "0x208b7fff7fff7ffe", - "0x480a7ffd7fff8000", - "0x208b7fff7fff7ffe", - "0x40780017fff7fff", - "0x1", - "0x4003800080007ffc", - "0x4826800180008000", - "0x1", - "0x480a7ffd7fff8000", - "0x4828800080007ffe", - "0x480a80007fff8000", - "0x208b7fff7fff7ffe", - "0x482680017ffd8000", - "0x1", - "0x402a7ffd7ffc7fff", - "0x480280007ffd8000", - "0x1104800180018000", - "0x800000000000010fffffffffffffffffffffffffffffffffffffffffffffff2", - "0x480280027ffb8000", - "0x1104800180018000", - "0x800000000000010fffffffffffffffffffffffffffffffffffffffffffffff1", - "0x480280007ffb8000", - "0x480280017ffb8000", - "0x48127ffb7fff8000", - "0x480280037ffb8000", - "0x48127ffa7fff8000", - "0x48127ffa7fff8000", - "0x208b7fff7fff7ffe", - "0x400380007ffb7ffc", - "0x400380017ffb7ffd", - "0x480680017fff8000", - "0xf", - "0x400280027ffb7fff", - "0x482680017ffb8000", - "0x5", - "0x208b7fff7fff7ffe", - "0x482680017ffd8000", - "0x2", - "0x402a7ffd7ffc7fff", - "0x480280037ffb8000", - "0x480280007ffd8000", - "0x480280017ffd8000", - "0x1104800180018000", - "0x800000000000010fffffffffffffffffffffffffffffffffffffffffffffff3", - "0x40780017fff7fff", - "0x1", - "0x480280007ffb8000", - "0x480280017ffb8000", - "0x480280027ffb8000", - "0x48127ffb7fff8000", - "0x480680017fff8000", - "0x0", - "0x48127ffa7fff8000", - "0x208b7fff7fff7ffe", - "0x40780017fff7fff", - "0x1", - "0x400780017fff8000", - "0x9", - "0x480a7ffc7fff8000", - "0x208b7fff7fff7ffe", - "0x482680017ffd8000", - "0x1", - "0x402a7ffd7ffc7fff", - "0x480280027ffb8000", - "0x480280007ffd8000", - "0x1104800180018000", - "0x800000000000010fffffffffffffffffffffffffffffffffffffffffffffff6", - "0x40780017fff7fff", - "0x1", - "0x480280007ffb8000", - "0x480280017ffb8000", - "0x48127ffc7fff8000", - "0x480280037ffb8000", - "0x480680017fff8000", - "0x0", - "0x48127ffa7fff8000", - "0x208b7fff7fff7ffe", - "0x480a7ffb7fff8000", - "0x480a7ffc7fff8000", - "0x480a7ffd7fff8000", - "0x1104800180018000", - "0x800000000000010fffffffffffffffffffffffffffffffffffffffffffffe5d", - "0x480a7ffc7fff8000", - "0x1104800180018000", - "0x800000000000010fffffffffffffffffffffffffffffffffffffffffffffe52", - "0x208b7fff7fff7ffe", - "0x40780017fff7fff", - "0x1", - "0x4003800080007ffc", - "0x4826800180008000", - "0x1", - "0x480a7ffd7fff8000", - "0x4828800080007ffe", - "0x480a80007fff8000", - "0x208b7fff7fff7ffe", - "0x482680017ffd8000", - "0x2", - "0x402a7ffd7ffc7fff", - "0x480280007ffb8000", - "0x480280007ffd8000", - "0x480280017ffd8000", - "0x1104800180018000", - "0x800000000000010ffffffffffffffffffffffffffffffffffffffffffffffe9", - "0x480280027ffb8000", - "0x1104800180018000", - "0x800000000000010ffffffffffffffffffffffffffffffffffffffffffffffef", - "0x48127ff67fff8000", - "0x480280017ffb8000", - "0x48127ffb7fff8000", - "0x480280037ffb8000", - "0x48127ffa7fff8000", - "0x48127ffa7fff8000", - "0x208b7fff7fff7ffe", - "0x480a7ffb7fff8000", - "0x480a7ffc7fff8000", - "0x480a7ffd7fff8000", - "0x1104800180018000", - "0x800000000000010fffffffffffffffffffffffffffffffffffffffffffffe39", - "0x208b7fff7fff7ffe", - "0x482680017ffd8000", - "0x2", - "0x402a7ffd7ffc7fff", - "0x480280007ffb8000", - "0x480280007ffd8000", - "0x480280017ffd8000", - "0x1104800180018000", - "0x800000000000010fffffffffffffffffffffffffffffffffffffffffffffff5", - "0x40780017fff7fff", - "0x1", - "0x48127ffe7fff8000", - "0x480280017ffb8000", - "0x480280027ffb8000", - "0x480280037ffb8000", - "0x480680017fff8000", - "0x0", - "0x48127ffa7fff8000", - "0x208b7fff7fff7ffe", - "0x480a7ff97fff8000", - "0x480a7ffa7fff8000", - "0x480a7ffb7fff8000", - "0x480a7ffc7fff8000", - "0x480a7ffd7fff8000", - "0x1104800180018000", - "0x800000000000010fffffffffffffffffffffffffffffffffffffffffffffdff", - "0x208b7fff7fff7ffe", - "0x480280027ffb8000", - "0x480280027ffd8000", - "0x400080007ffe7fff", - "0x482680017ffd8000", - "0x3", - "0x480280027ffd8000", - "0x48307fff7ffe8000", - "0x402a7ffd7ffc7fff", - "0x480280007ffb8000", - "0x480280007ffd8000", - "0x480280017ffd8000", - "0x480280027ffd8000", - "0x482680017ffd8000", - "0x3", - "0x1104800180018000", - "0x800000000000010ffffffffffffffffffffffffffffffffffffffffffffffeb", - "0x480280027ffb8000", - "0x48127ffc7fff8000", - "0x480280017ffb8000", - "0x482480017ffd8000", - "0x1", - "0x480280037ffb8000", - "0x48127ff97fff8000", - "0x48127ff97fff8000", - "0x208b7fff7fff7ffe", - "0x40780017fff7fff", - "0x1", - "0x400780017fff7ffc", - "0x2", - "0x480280007ffd8000", - "0x480280017ffd8000", - "0x480a7ff97fff8000", - "0x480a7ffb7fff8000", - "0x480680017fff8000", - "0x2", - "0x482480017ffb8000", - "0x1", - "0x482480017ffb8000", - "0x1", - "0x1104800180018000", - "0x800000000000010fffffffffffffffffffffffffffffffffffffffffffffdc4", - "0x482480017fff8000", - "0x800000000000010fffffffffffffffffffffffffffffffffffffffffffffffc", - "0x40137fff7fff8000", - "0x480a7ff87fff8000", - "0x480a7ff97fff8000", - "0x480a7ffa7fff8000", - "0x480680017fff8000", - "0x5", - "0x480a80007fff8000", - "0x1104800180018000", - "0x800000000000010fffffffffffffffffffffffffffffffffffffffffffffdca", - "0x48127ffd7fff8000", - "0x480a7ff97fff8000", - "0x480a7ffb7fff8000", - "0x480a7ffc7fff8000", - "0x480a7ffd7fff8000", - "0x1104800180018000", - "0x800000000000010fffffffffffffffffffffffffffffffffffffffffffffdc3", - "0x48127ffd7fff8000", - "0x480680017fff8000", - "0x0", - "0x208b7fff7fff7ffe", - "0x40780017fff7fff", - "0x1", - "0x4003800080007ffc", - "0x4826800180008000", - "0x1", - "0x480a7ffd7fff8000", - "0x4828800080007ffe", - "0x480a80007fff8000", - "0x208b7fff7fff7ffe", - "0x480280027ffb8000", - "0x480280037ffd8000", - "0x400080007ffe7fff", - "0x482680017ffd8000", - "0x4", - "0x480280037ffd8000", - "0x48307fff7ffe8000", - "0x402a7ffd7ffc7fff", - "0x480280007ffb8000", - "0x480280007ffd8000", - "0x480280017ffd8000", - "0x480280027ffd8000", - "0x480280037ffd8000", - "0x482680017ffd8000", - "0x4", - "0x1104800180018000", - "0x800000000000010ffffffffffffffffffffffffffffffffffffffffffffffc3", - "0x480280027ffb8000", - "0x48127ffe7fff8000", - "0x482480017ffe8000", - "0x1", - "0x1104800180018000", - "0x800000000000010ffffffffffffffffffffffffffffffffffffffffffffffe3", - "0x48127ff47fff8000", - "0x480280017ffb8000", - "0x48127ffb7fff8000", - "0x480280037ffb8000", - "0x48127ffa7fff8000", - "0x48127ffa7fff8000", - "0x208b7fff7fff7ffe", - "0x480a7ff97fff8000", - "0x480a7ffa7fff8000", - "0x480a7ffb7fff8000", - "0x480a7ffc7fff8000", - "0x480a7ffd7fff8000", - "0x1104800180018000", - "0x800000000000010fffffffffffffffffffffffffffffffffffffffffffffd85", - "0x208b7fff7fff7ffe", - "0x480280027ffb8000", - "0x480280027ffd8000", - "0x400080007ffe7fff", - "0x482680017ffd8000", - "0x3", - "0x480280027ffd8000", - "0x48307fff7ffe8000", - "0x402a7ffd7ffc7fff", - "0x480280007ffb8000", - "0x480280007ffd8000", - "0x480280017ffd8000", - "0x480280027ffd8000", - "0x482680017ffd8000", - "0x3", - "0x1104800180018000", - "0x800000000000010ffffffffffffffffffffffffffffffffffffffffffffffeb", - "0x480280027ffb8000", - "0x48127ffc7fff8000", - "0x480280017ffb8000", - "0x482480017ffd8000", - "0x1", - "0x480280037ffb8000", - "0x48127ff97fff8000", - "0x48127ff97fff8000", - "0x208b7fff7fff7ffe", - "0x480a7ff87fff8000", - "0x480a7ff97fff8000", - "0x480a7ffa7fff8000", - "0x480a7ffb7fff8000", - "0x480a7ffc7fff8000", - "0x480a7ffd7fff8000", - "0x1104800180018000", - "0x800000000000010fffffffffffffffffffffffffffffffffffffffffffffd7b", - "0x208b7fff7fff7ffe", - "0x40780017fff7fff", - "0x1", - "0x4003800080007ffc", - "0x4826800180008000", - "0x1", - "0x480a7ffd7fff8000", - "0x4828800080007ffe", - "0x480a80007fff8000", - "0x208b7fff7fff7ffe", - "0x480280027ffb8000", - "0x480280027ffd8000", - "0x400080007ffe7fff", - "0x482680017ffd8000", - "0x3", - "0x480280027ffd8000", - "0x48307fff7ffe8000", - "0x482480017fff8000", - "0x1", - "0x402a7ffd7ffc7fff", - "0x480280007ffb8000", - "0x480280007ffd8000", - "0x480280017ffd8000", - "0x480280027ffd8000", - "0x482680017ffd8000", - "0x3", - "0x480080007ff98000", - "0x1104800180018000", - "0x800000000000010ffffffffffffffffffffffffffffffffffffffffffffffde", - "0x480280027ffb8000", - "0x48127ffe7fff8000", - "0x482480017ffe8000", - "0x1", - "0x1104800180018000", - "0x800000000000010ffffffffffffffffffffffffffffffffffffffffffffffe1", - "0x48127ff47fff8000", - "0x480280017ffb8000", - "0x48127ffb7fff8000", - "0x480280037ffb8000", - "0x48127ffa7fff8000", - "0x48127ffa7fff8000", - "0x208b7fff7fff7ffe", - "0x480a7ffb7fff8000", - "0x480a7ffc7fff8000", - "0x480a7ffd7fff8000", - "0x480680017fff8000", - "0x1", - "0x480680017fff8000", - "0x27", - "0x1104800180018000", - "0x800000000000010fffffffffffffffffffffffffffffffffffffffffffffe55", - "0x480680017fff8000", - "0x1", - "0x1104800180018000", - "0x800000000000010fffffffffffffffffffffffffffffffffffffffffffffe43", - "0x400680017fff7fff", - "0x27", - "0x48127ffc7fff8000", - "0x48127ffc7fff8000", - "0x48127ffc7fff8000", - "0x208b7fff7fff7ffe", - "0x402b7ffd7ffc7ffd", - "0x480280007ffb8000", - "0x480280017ffb8000", - "0x480280027ffb8000", - "0x1104800180018000", - "0x800000000000010ffffffffffffffffffffffffffffffffffffffffffffffea", - "0x40780017fff7fff", - "0x1", - "0x48127ffc7fff8000", - "0x48127ffc7fff8000", - "0x48127ffc7fff8000", - "0x480280037ffb8000", - "0x480680017fff8000", - "0x0", - "0x48127ffa7fff8000", - "0x208b7fff7fff7ffe", - "0x480a7ff77fff8000", - "0x480a7ff87fff8000", - "0x480a7ff97fff8000", - "0x480a7ffa7fff8000", - "0x480a7ffb7fff8000", - "0x480a7ffc7fff8000", - "0x480a7ffd7fff8000", - "0x1104800180018000", - "0x800000000000010fffffffffffffffffffffffffffffffffffffffffffffddf", - "0x208b7fff7fff7ffe", - "0x40780017fff7fff", - "0x1", - "0x4003800080007ffc", - "0x4826800180008000", - "0x1", - "0x480a7ffd7fff8000", - "0x4828800080007ffe", - "0x480a80007fff8000", - "0x208b7fff7fff7ffe", - "0x480280027ffb8000", - "0x480280027ffd8000", - "0x400080007ffe7fff", - "0x482680017ffd8000", - "0x3", - "0x480280027ffd8000", - "0x48307fff7ffe8000", - "0x482480017fff8000", - "0x1", - "0x402a7ffd7ffc7fff", - "0x480280027ffb8000", - "0x480280017ffb8000", - "0x482480017ffe8000", - "0x1", - "0x480280007ffd8000", - "0x480280017ffd8000", - "0x480280027ffd8000", - "0x482680017ffd8000", - "0x3", - "0x480080007ff78000", - "0x1104800180018000", - "0x800000000000010ffffffffffffffffffffffffffffffffffffffffffffffda", - "0x48127ffe7fff8000", - "0x1104800180018000", - "0x800000000000010ffffffffffffffffffffffffffffffffffffffffffffffe1", - "0x480280007ffb8000", - "0x48127ff47fff8000", - "0x48127ffb7fff8000", - "0x480280037ffb8000", - "0x48127ffa7fff8000", - "0x48127ffa7fff8000", - "0x208b7fff7fff7ffe" - ], - "debug_info": null, - "hints": { - "0": [ - { - "accessible_scopes": [ - "starkware.cairo.common.alloc", - "starkware.cairo.common.alloc.alloc" - ], - "code": "memory[ap] = segments.add()", - "flow_tracking_data": { - "ap_tracking": { - "group": 0, - "offset": 0 - }, - "reference_ids": {} - } - } - ], - "22": [ - { - "accessible_scopes": [ - "starkware.starknet.common.syscalls", - "starkware.starknet.common.syscalls.call_contract" - ], - "code": "syscall_handler.call_contract(segments=segments, syscall_ptr=ids.syscall_ptr)", - "flow_tracking_data": { - "ap_tracking": { - "group": 4, - "offset": 1 - }, - "reference_ids": { - "starkware.starknet.common.syscalls.call_contract.syscall_ptr": 0 - } - } - } - ], - "34": [ - { - "accessible_scopes": [ - "starkware.starknet.common.syscalls", - "starkware.starknet.common.syscalls.library_call" - ], - "code": "syscall_handler.library_call(segments=segments, syscall_ptr=ids.syscall_ptr)", - "flow_tracking_data": { - "ap_tracking": { - "group": 5, - "offset": 1 - }, - "reference_ids": { - "starkware.starknet.common.syscalls.library_call.syscall_ptr": 1 - } - } - } - ], - "47": [ - { - "accessible_scopes": [ - "starkware.starknet.common.syscalls", - "starkware.starknet.common.syscalls.deploy" - ], - "code": "syscall_handler.deploy(segments=segments, syscall_ptr=ids.syscall_ptr)", - "flow_tracking_data": { - "ap_tracking": { - "group": 6, - "offset": 1 - }, - "reference_ids": { - "starkware.starknet.common.syscalls.deploy.syscall_ptr": 2 - } - } - } - ], - "55": [ - { - "accessible_scopes": [ - "starkware.starknet.common.syscalls", - "starkware.starknet.common.syscalls.storage_read" - ], - "code": "syscall_handler.storage_read(segments=segments, syscall_ptr=ids.syscall_ptr)", - "flow_tracking_data": { - "ap_tracking": { - "group": 7, - "offset": 1 - }, - "reference_ids": { - "starkware.starknet.common.syscalls.storage_read.syscall_ptr": 3 - } - } - } - ], - "64": [ - { - "accessible_scopes": [ - "starkware.starknet.common.syscalls", - "starkware.starknet.common.syscalls.storage_write" - ], - "code": "syscall_handler.storage_write(segments=segments, syscall_ptr=ids.syscall_ptr)", - "flow_tracking_data": { - "ap_tracking": { - "group": 8, - "offset": 1 - }, - "reference_ids": { - "starkware.starknet.common.syscalls.storage_write.syscall_ptr": 4 - } - } - } - ], - "74": [ - { - "accessible_scopes": [ - "starkware.starknet.common.syscalls", - "starkware.starknet.common.syscalls.emit_event" - ], - "code": "syscall_handler.emit_event(segments=segments, syscall_ptr=ids.syscall_ptr)", - "flow_tracking_data": { - "ap_tracking": { - "group": 9, - "offset": 1 - }, - "reference_ids": { - "starkware.starknet.common.syscalls.emit_event.syscall_ptr": 5 - } - } - } - ], - "77": [ - { - "accessible_scopes": [ - "starkware.cairo.common.math", - "starkware.cairo.common.math.assert_250_bit" - ], - "code": "from starkware.cairo.common.math_utils import as_int\n\n# Correctness check.\nvalue = as_int(ids.value, PRIME) % PRIME\nassert value < ids.UPPER_BOUND, f'{value} is outside of the range [0, 2**250).'\n\n# Calculation for the assertion.\nids.high, ids.low = divmod(ids.value, ids.SHIFT)", - "flow_tracking_data": { - "ap_tracking": { - "group": 10, - "offset": 0 - }, - "reference_ids": { - "starkware.cairo.common.math.assert_250_bit.high": 8, - "starkware.cairo.common.math.assert_250_bit.low": 7, - "starkware.cairo.common.math.assert_250_bit.value": 6 - } - } - } - ], - "92": [ - { - "accessible_scopes": [ - "starkware.starknet.common.storage", - "starkware.starknet.common.storage.normalize_address" - ], - "code": "# Verify the assumptions on the relationship between 2**250, ADDR_BOUND and PRIME.\nADDR_BOUND = ids.ADDR_BOUND % PRIME\nassert (2**250 < ADDR_BOUND <= 2**251) and (2 * 2**250 < PRIME) and (\n ADDR_BOUND * 2 > PRIME), \\\n 'normalize_address() cannot be used with the current constants.'\nids.is_small = 1 if ids.addr < ADDR_BOUND else 0", - "flow_tracking_data": { - "ap_tracking": { - "group": 11, - "offset": 1 - }, - "reference_ids": { - "starkware.starknet.common.storage.normalize_address.addr": 9, - "starkware.starknet.common.storage.normalize_address.is_small": 10 - } - } - } - ], - "110": [ - { - "accessible_scopes": [ - "starkware.starknet.common.storage", - "starkware.starknet.common.storage.normalize_address" - ], - "code": "ids.is_250 = 1 if ids.addr < 2**250 else 0", - "flow_tracking_data": { - "ap_tracking": { - "group": 11, - "offset": 2 - }, - "reference_ids": { - "starkware.starknet.common.storage.normalize_address.addr": 9, - "starkware.starknet.common.storage.normalize_address.is_250": 11 - } - } - } - ], - "335": [ - { - "accessible_scopes": [ - "__main__", - "__main__", - "__wrappers__", - "__wrappers__.constructor" - ], - "code": "memory[ap] = segments.add()", - "flow_tracking_data": { - "ap_tracking": { - "group": 29, - "offset": 13 - }, - "reference_ids": {} - } - } - ], - "349": [ - { - "accessible_scopes": [ - "__main__", - "__main__", - "__wrappers__", - "__wrappers__.without_arg" - ], - "code": "memory[ap] = segments.add()", - "flow_tracking_data": { - "ap_tracking": { - "group": 31, - "offset": 2 - }, - "reference_ids": {} - } - } - ], - "371": [ - { - "accessible_scopes": [ - "__main__", - "__main__", - "__wrappers__", - "__wrappers__.emit_event" - ], - "code": "memory[ap] = segments.add()", - "flow_tracking_data": { - "ap_tracking": { - "group": 33, - "offset": 29 - }, - "reference_ids": {} - } - } - ], - "390": [ - { - "accessible_scopes": [ - "__main__", - "__main__", - "__wrappers__", - "__wrappers__.with_arg" - ], - "code": "memory[ap] = segments.add()", - "flow_tracking_data": { - "ap_tracking": { - "group": 35, - "offset": 4 - }, - "reference_ids": {} - } - } - ], - "402": [ - { - "accessible_scopes": [ - "__main__", - "__main__", - "__wrappers__", - "__wrappers__.return_result_encode_return" - ], - "code": "memory[ap] = segments.add()", - "flow_tracking_data": { - "ap_tracking": { - "group": 37, - "offset": 0 - }, - "reference_ids": {} - } - } - ], - "443": [ - { - "accessible_scopes": [ - "__main__", - "__main__", - "__wrappers__", - "__wrappers__.bitwise_and" - ], - "code": "memory[ap] = segments.add()", - "flow_tracking_data": { - "ap_tracking": { - "group": 40, - "offset": 8 - }, - "reference_ids": {} - } - } - ], - "455": [ - { - "accessible_scopes": [ - "__main__", - "__main__", - "__main__.sqrt" - ], - "code": "from starkware.python.math_utils import isqrt\nvalue = ids.value % PRIME\nassert value < 2 ** 250, f\"value={value} is outside of the range [0, 2**250).\"\nassert 2 ** 250 < PRIME\nids.root = isqrt(value)", - "flow_tracking_data": { - "ap_tracking": { - "group": 41, - "offset": 1 - }, - "reference_ids": { - "__main__.sqrt.root": 13, - "__main__.sqrt.value": 12 - } - } - } - ], - "466": [ - { - "accessible_scopes": [ - "__main__", - "__main__", - "__wrappers__", - "__wrappers__.sqrt" - ], - "code": "memory[ap] = segments.add()", - "flow_tracking_data": { - "ap_tracking": { - "group": 42, - "offset": 7 - }, - "reference_ids": {} - } - } - ], - "485": [ - { - "accessible_scopes": [ - "__main__", - "__main__", - "__wrappers__", - "__wrappers__.test_storage_read_write_encode_return" - ], - "code": "memory[ap] = segments.add()", - "flow_tracking_data": { - "ap_tracking": { - "group": 44, - "offset": 0 - }, - "reference_ids": {} - } - } - ], - "526": [ - { - "accessible_scopes": [ - "__main__", - "__main__", - "__wrappers__", - "__wrappers__.test_l1_handler_store_under_caller_address" - ], - "code": "memory[ap] = segments.add()", - "flow_tracking_data": { - "ap_tracking": { - "group": 47, - "offset": 13 - }, - "reference_ids": {} - } - } - ], - "607": [ - { - "accessible_scopes": [ - "__main__", - "__main__", - "__wrappers__", - "__wrappers__.test_nested_library_call_encode_return" - ], - "code": "memory[ap] = segments.add()", - "flow_tracking_data": { - "ap_tracking": { - "group": 51, - "offset": 0 - }, - "reference_ids": {} - } - } - ], - "688": [ - { - "accessible_scopes": [ - "__main__", - "__main__", - "__wrappers__", - "__wrappers__.test_deploy_encode_return" - ], - "code": "memory[ap] = segments.add()", - "flow_tracking_data": { - "ap_tracking": { - "group": 56, - "offset": 0 - }, - "reference_ids": {} - } - } - ], - "754": [ - { - "accessible_scopes": [ - "__main__", - "__main__", - "__wrappers__", - "__wrappers__.test_storage_var" - ], - "code": "memory[ap] = segments.add()", - "flow_tracking_data": { - "ap_tracking": { - "group": 59, - "offset": 126 - }, - "reference_ids": {} - } - } - ], - "774": [ - { - "accessible_scopes": [ - "__main__", - "__main__", - "__wrappers__", - "__wrappers__.test_contract_address_encode_return" - ], - "code": "memory[ap] = segments.add()", - "flow_tracking_data": { - "ap_tracking": { - "group": 62, - "offset": 0 - }, - "reference_ids": {} - } - } - ] - }, - "identifiers": { - "__main__.BitwiseBuiltin": { - "destination": "starkware.cairo.common.cairo_builtins.BitwiseBuiltin", - "type": "alias" - }, - "__main__.Event": { - "type": "namespace" - }, - "__main__.Event.Args": { - "full_name": "__main__.Event.Args", - "members": {}, - "size": 0, - "type": "struct" - }, - "__main__.Event.ImplicitArgs": { - "full_name": "__main__.Event.ImplicitArgs", - "members": {}, - "size": 0, - "type": "struct" - }, - "__main__.Event.Return": { - "cairo_type": "()", - "type": "type_definition" - }, - "__main__.Event.SELECTOR": { - "type": "const", - "value": 1280935775838011386293896278742666975252393435418989796474933897293318071546 - }, - "__main__.Event.SIZEOF_LOCALS": { - "type": "const", - "value": 0 - }, - "__main__.Event.alloc": { - "destination": "starkware.cairo.common.alloc.alloc", - "type": "alias" - }, - "__main__.Event.emit": { - "decorators": [], - "pc": 256, - "type": "function" - }, - "__main__.Event.emit.Args": { - "full_name": "__main__.Event.emit.Args", - "members": { - "value": { - "cairo_type": "felt", - "offset": 0 - } - }, - "size": 1, - "type": "struct" - }, - "__main__.Event.emit.ImplicitArgs": { - "full_name": "__main__.Event.emit.ImplicitArgs", - "members": { - "range_check_ptr": { - "cairo_type": "felt", - "offset": 1 - }, - "syscall_ptr": { - "cairo_type": "felt*", - "offset": 0 - } - }, - "size": 2, - "type": "struct" - }, - "__main__.Event.emit.Return": { - "cairo_type": "()", - "type": "type_definition" - }, - "__main__.Event.emit.SIZEOF_LOCALS": { - "type": "const", - "value": 2 - }, - "__main__.Event.emit_event": { - "destination": "starkware.starknet.common.syscalls.emit_event", - "type": "alias" - }, - "__main__.Event.memcpy": { - "destination": "starkware.cairo.common.memcpy.memcpy", - "type": "alias" - }, - "__main__.FALSE": { - "destination": "starkware.cairo.common.bool.FALSE", - "type": "alias" - }, - "__main__.HashBuiltin": { - "destination": "starkware.cairo.common.cairo_builtins.HashBuiltin", - "type": "alias" - }, - "__main__.bitwise_and": { - "decorators": [ - "external" - ], - "pc": 427, - "type": "function" - }, - "__main__.bitwise_and.Args": { - "full_name": "__main__.bitwise_and.Args", - "members": { - "x": { - "cairo_type": "felt", - "offset": 0 - }, - "y": { - "cairo_type": "felt", - "offset": 1 - } - }, - "size": 2, - "type": "struct" - }, - "__main__.bitwise_and.ImplicitArgs": { - "full_name": "__main__.bitwise_and.ImplicitArgs", - "members": { - "bitwise_ptr": { - "cairo_type": "starkware.cairo.common.cairo_builtins.BitwiseBuiltin*", - "offset": 0 - } - }, - "size": 1, - "type": "struct" - }, - "__main__.bitwise_and.Return": { - "cairo_type": "()", - "type": "type_definition" - }, - "__main__.bitwise_and.SIZEOF_LOCALS": { - "type": "const", - "value": 0 - }, - "__main__.call_contract": { - "destination": "starkware.starknet.common.syscalls.call_contract", - "type": "alias" - }, - "__main__.constructor": { - "decorators": [ - "constructor" - ], - "pc": 321, - "type": "function" - }, - "__main__.constructor.Args": { - "full_name": "__main__.constructor.Args", - "members": { - "address": { - "cairo_type": "felt", - "offset": 0 - }, - "value": { - "cairo_type": "felt", - "offset": 1 - } - }, - "size": 2, - "type": "struct" - }, - "__main__.constructor.ImplicitArgs": { - "full_name": "__main__.constructor.ImplicitArgs", - "members": { - "syscall_ptr": { - "cairo_type": "felt*", - "offset": 0 - } - }, - "size": 1, - "type": "struct" - }, - "__main__.constructor.Return": { - "cairo_type": "()", - "type": "type_definition" - }, - "__main__.constructor.SIZEOF_LOCALS": { - "type": "const", - "value": 0 - }, - "__main__.deploy": { - "destination": "starkware.starknet.common.syscalls.deploy", - "type": "alias" - }, - "__main__.emit_event": { - "decorators": [ - "external" - ], - "pc": 359, - "type": "function" - }, - "__main__.emit_event.Args": { - "full_name": "__main__.emit_event.Args", - "members": {}, - "size": 0, - "type": "struct" - }, - "__main__.emit_event.ImplicitArgs": { - "full_name": "__main__.emit_event.ImplicitArgs", - "members": { - "range_check_ptr": { - "cairo_type": "felt", - "offset": 1 - }, - "syscall_ptr": { - "cairo_type": "felt*", - "offset": 0 - } - }, - "size": 2, - "type": "struct" - }, - "__main__.emit_event.Return": { - "cairo_type": "()", - "type": "type_definition" - }, - "__main__.emit_event.SIZEOF_LOCALS": { - "type": "const", - "value": 0 - }, - "__main__.get_contract_address": { - "destination": "starkware.starknet.core.os.contract_address.contract_address.get_contract_address", - "type": "alias" - }, - "__main__.library_call": { - "destination": "starkware.starknet.common.syscalls.library_call", - "type": "alias" - }, - "__main__.number_map": { - "type": "namespace" - }, - "__main__.number_map.Args": { - "full_name": "__main__.number_map.Args", - "members": {}, - "size": 0, - "type": "struct" - }, - "__main__.number_map.HashBuiltin": { - "destination": "starkware.cairo.common.cairo_builtins.HashBuiltin", - "type": "alias" - }, - "__main__.number_map.ImplicitArgs": { - "full_name": "__main__.number_map.ImplicitArgs", - "members": {}, - "size": 0, - "type": "struct" - }, - "__main__.number_map.Return": { - "cairo_type": "()", - "type": "type_definition" - }, - "__main__.number_map.SIZEOF_LOCALS": { - "type": "const", - "value": 0 - }, - "__main__.number_map.addr": { - "decorators": [], - "pc": 280, - "type": "function" - }, - "__main__.number_map.addr.Args": { - "full_name": "__main__.number_map.addr.Args", - "members": { - "key": { - "cairo_type": "felt", - "offset": 0 - } - }, - "size": 1, - "type": "struct" - }, - "__main__.number_map.addr.ImplicitArgs": { - "full_name": "__main__.number_map.addr.ImplicitArgs", - "members": { - "pedersen_ptr": { - "cairo_type": "starkware.cairo.common.cairo_builtins.HashBuiltin*", - "offset": 0 - }, - "range_check_ptr": { - "cairo_type": "felt", - "offset": 1 - } - }, - "size": 2, - "type": "struct" - }, - "__main__.number_map.addr.Return": { - "cairo_type": "(res: felt)", - "type": "type_definition" - }, - "__main__.number_map.addr.SIZEOF_LOCALS": { - "type": "const", - "value": 0 - }, - "__main__.number_map.hash2": { - "destination": "starkware.cairo.common.hash.hash2", - "type": "alias" - }, - "__main__.number_map.normalize_address": { - "destination": "starkware.starknet.common.storage.normalize_address", - "type": "alias" - }, - "__main__.number_map.read": { - "decorators": [], - "pc": 294, - "type": "function" - }, - "__main__.number_map.read.Args": { - "full_name": "__main__.number_map.read.Args", - "members": { - "key": { - "cairo_type": "felt", - "offset": 0 - } - }, - "size": 1, - "type": "struct" - }, - "__main__.number_map.read.ImplicitArgs": { - "full_name": "__main__.number_map.read.ImplicitArgs", - "members": { - "pedersen_ptr": { - "cairo_type": "starkware.cairo.common.cairo_builtins.HashBuiltin*", - "offset": 1 - }, - "range_check_ptr": { - "cairo_type": "felt", - "offset": 2 - }, - "syscall_ptr": { - "cairo_type": "felt*", - "offset": 0 - } - }, - "size": 3, - "type": "struct" - }, - "__main__.number_map.read.Return": { - "cairo_type": "(value: felt)", - "type": "type_definition" - }, - "__main__.number_map.read.SIZEOF_LOCALS": { - "type": "const", - "value": 0 - }, - "__main__.number_map.storage_read": { - "destination": "starkware.starknet.common.syscalls.storage_read", - "type": "alias" - }, - "__main__.number_map.storage_write": { - "destination": "starkware.starknet.common.syscalls.storage_write", - "type": "alias" - }, - "__main__.number_map.write": { - "decorators": [], - "pc": 308, - "type": "function" - }, - "__main__.number_map.write.Args": { - "full_name": "__main__.number_map.write.Args", - "members": { - "key": { - "cairo_type": "felt", - "offset": 0 - }, - "value": { - "cairo_type": "felt", - "offset": 1 - } - }, - "size": 2, - "type": "struct" - }, - "__main__.number_map.write.ImplicitArgs": { - "full_name": "__main__.number_map.write.ImplicitArgs", - "members": { - "pedersen_ptr": { - "cairo_type": "starkware.cairo.common.cairo_builtins.HashBuiltin*", - "offset": 1 - }, - "range_check_ptr": { - "cairo_type": "felt", - "offset": 2 - }, - "syscall_ptr": { - "cairo_type": "felt*", - "offset": 0 - } - }, - "size": 3, - "type": "struct" - }, - "__main__.number_map.write.Return": { - "cairo_type": "()", - "type": "type_definition" - }, - "__main__.number_map.write.SIZEOF_LOCALS": { - "type": "const", - "value": 0 - }, - "__main__.return_result": { - "decorators": [ - "external" - ], - "pc": 400, - "type": "function" - }, - "__main__.return_result.Args": { - "full_name": "__main__.return_result.Args", - "members": { - "num": { - "cairo_type": "felt", - "offset": 0 - } - }, - "size": 1, - "type": "struct" - }, - "__main__.return_result.ImplicitArgs": { - "full_name": "__main__.return_result.ImplicitArgs", - "members": {}, - "size": 0, - "type": "struct" - }, - "__main__.return_result.Return": { - "cairo_type": "(result: felt)", - "type": "type_definition" - }, - "__main__.return_result.SIZEOF_LOCALS": { - "type": "const", - "value": 0 - }, - "__main__.sqrt": { - "decorators": [ - "external" - ], - "pc": 453, - "type": "function" - }, - "__main__.sqrt.Args": { - "full_name": "__main__.sqrt.Args", - "members": { - "value": { - "cairo_type": "felt", - "offset": 0 - } - }, - "size": 1, - "type": "struct" - }, - "__main__.sqrt.ImplicitArgs": { - "full_name": "__main__.sqrt.ImplicitArgs", - "members": { - "range_check_ptr": { - "cairo_type": "felt", - "offset": 0 - } - }, - "size": 1, - "type": "struct" - }, - "__main__.sqrt.Return": { - "cairo_type": "()", - "type": "type_definition" - }, - "__main__.sqrt.SIZEOF_LOCALS": { - "type": "const", - "value": 1 - }, - "__main__.sqrt.root": { - "cairo_type": "felt", - "full_name": "__main__.sqrt.root", - "references": [ - { - "ap_tracking_data": { - "group": 41, - "offset": 1 - }, - "pc": 455, - "value": "[cast(fp, felt*)]" - } - ], - "type": "reference" - }, - "__main__.sqrt.value": { - "cairo_type": "felt", - "full_name": "__main__.sqrt.value", - "references": [ - { - "ap_tracking_data": { - "group": 41, - "offset": 0 - }, - "pc": 453, - "value": "[cast(fp + (-3), felt*)]" - } - ], - "type": "reference" - }, - "__main__.storage_read": { - "destination": "starkware.starknet.common.syscalls.storage_read", - "type": "alias" - }, - "__main__.storage_write": { - "destination": "starkware.starknet.common.syscalls.storage_write", - "type": "alias" - }, - "__main__.test_call_contract": { - "decorators": [ - "external", - "raw_output" - ], - "pc": 646, - "type": "function" - }, - "__main__.test_call_contract.Args": { - "full_name": "__main__.test_call_contract.Args", - "members": { - "calldata": { - "cairo_type": "felt*", - "offset": 3 - }, - "calldata_len": { - "cairo_type": "felt", - "offset": 2 - }, - "contract_address": { - "cairo_type": "felt", - "offset": 0 - }, - "function_selector": { - "cairo_type": "felt", - "offset": 1 - } - }, - "size": 4, - "type": "struct" - }, - "__main__.test_call_contract.ImplicitArgs": { - "full_name": "__main__.test_call_contract.ImplicitArgs", - "members": { - "syscall_ptr": { - "cairo_type": "felt*", - "offset": 0 - } - }, - "size": 1, - "type": "struct" - }, - "__main__.test_call_contract.Return": { - "cairo_type": "(retdata_size: felt, retdata: felt*)", - "type": "type_definition" - }, - "__main__.test_call_contract.SIZEOF_LOCALS": { - "type": "const", - "value": 0 - }, - "__main__.test_contract_address": { - "decorators": [ - "external" - ], - "pc": 764, - "type": "function" - }, - "__main__.test_contract_address.Args": { - "full_name": "__main__.test_contract_address.Args", - "members": { - "class_hash": { - "cairo_type": "felt", - "offset": 1 - }, - "constructor_calldata": { - "cairo_type": "felt*", - "offset": 3 - }, - "constructor_calldata_len": { - "cairo_type": "felt", - "offset": 2 - }, - "deployer_address": { - "cairo_type": "felt", - "offset": 4 - }, - "salt": { - "cairo_type": "felt", - "offset": 0 - } - }, - "size": 5, - "type": "struct" - }, - "__main__.test_contract_address.ImplicitArgs": { - "full_name": "__main__.test_contract_address.ImplicitArgs", - "members": { - "pedersen_ptr": { - "cairo_type": "starkware.cairo.common.cairo_builtins.HashBuiltin*", - "offset": 0 - }, - "range_check_ptr": { - "cairo_type": "felt", - "offset": 1 - } - }, - "size": 2, - "type": "struct" - }, - "__main__.test_contract_address.Return": { - "cairo_type": "(contract_address: felt)", - "type": "type_definition" - }, - "__main__.test_contract_address.SIZEOF_LOCALS": { - "type": "const", - "value": 0 - }, - "__main__.test_deploy": { - "decorators": [ - "external" - ], - "pc": 679, - "type": "function" - }, - "__main__.test_deploy.Args": { - "full_name": "__main__.test_deploy.Args", - "members": { - "class_hash": { - "cairo_type": "felt", - "offset": 0 - }, - "constructor_calldata": { - "cairo_type": "felt*", - "offset": 3 - }, - "constructor_calldata_len": { - "cairo_type": "felt", - "offset": 2 - }, - "contract_address_salt": { - "cairo_type": "felt", - "offset": 1 - }, - "deploy_from_zero": { - "cairo_type": "felt", - "offset": 4 - } - }, - "size": 5, - "type": "struct" - }, - "__main__.test_deploy.ImplicitArgs": { - "full_name": "__main__.test_deploy.ImplicitArgs", - "members": { - "syscall_ptr": { - "cairo_type": "felt*", - "offset": 0 - } - }, - "size": 1, - "type": "struct" - }, - "__main__.test_deploy.Return": { - "cairo_type": "(contract_address: felt)", - "type": "type_definition" - }, - "__main__.test_deploy.SIZEOF_LOCALS": { - "type": "const", - "value": 0 - }, - "__main__.test_l1_handler_store_under_caller_address": { - "decorators": [ - "l1_handler" - ], - "pc": 512, - "type": "function" - }, - "__main__.test_l1_handler_store_under_caller_address.Args": { - "full_name": "__main__.test_l1_handler_store_under_caller_address.Args", - "members": { - "from_address": { - "cairo_type": "felt", - "offset": 0 - }, - "value": { - "cairo_type": "felt", - "offset": 1 - } - }, - "size": 2, - "type": "struct" - }, - "__main__.test_l1_handler_store_under_caller_address.ImplicitArgs": { - "full_name": "__main__.test_l1_handler_store_under_caller_address.ImplicitArgs", - "members": { - "syscall_ptr": { - "cairo_type": "felt*", - "offset": 0 - } - }, - "size": 1, - "type": "struct" - }, - "__main__.test_l1_handler_store_under_caller_address.Return": { - "cairo_type": "()", - "type": "type_definition" - }, - "__main__.test_l1_handler_store_under_caller_address.SIZEOF_LOCALS": { - "type": "const", - "value": 0 - }, - "__main__.test_library_call": { - "decorators": [ - "external", - "raw_output" - ], - "pc": 536, - "type": "function" - }, - "__main__.test_library_call.Args": { - "full_name": "__main__.test_library_call.Args", - "members": { - "calldata": { - "cairo_type": "felt*", - "offset": 3 - }, - "calldata_len": { - "cairo_type": "felt", - "offset": 2 - }, - "class_hash": { - "cairo_type": "felt", - "offset": 0 - }, - "selector": { - "cairo_type": "felt", - "offset": 1 - } - }, - "size": 4, - "type": "struct" - }, - "__main__.test_library_call.ImplicitArgs": { - "full_name": "__main__.test_library_call.ImplicitArgs", - "members": { - "syscall_ptr": { - "cairo_type": "felt*", - "offset": 0 - } - }, - "size": 1, - "type": "struct" - }, - "__main__.test_library_call.Return": { - "cairo_type": "(retdata_size: felt, retdata: felt*)", - "type": "type_definition" - }, - "__main__.test_library_call.SIZEOF_LOCALS": { - "type": "const", - "value": 0 - }, - "__main__.test_nested_library_call": { - "decorators": [ - "external" - ], - "pc": 569, - "type": "function" - }, - "__main__.test_nested_library_call.Args": { - "full_name": "__main__.test_nested_library_call.Args", - "members": { - "calldata": { - "cairo_type": "felt*", - "offset": 4 - }, - "calldata_len": { - "cairo_type": "felt", - "offset": 3 - }, - "class_hash": { - "cairo_type": "felt", - "offset": 0 - }, - "lib_selector": { - "cairo_type": "felt", - "offset": 1 - }, - "nested_selector": { - "cairo_type": "felt", - "offset": 2 - } - }, - "size": 5, - "type": "struct" - }, - "__main__.test_nested_library_call.ImplicitArgs": { - "full_name": "__main__.test_nested_library_call.ImplicitArgs", - "members": { - "syscall_ptr": { - "cairo_type": "felt*", - "offset": 0 - } - }, - "size": 1, - "type": "struct" - }, - "__main__.test_nested_library_call.Return": { - "cairo_type": "(result: felt)", - "type": "type_definition" - }, - "__main__.test_nested_library_call.SIZEOF_LOCALS": { - "type": "const", - "value": 1 - }, - "__main__.test_storage_read_write": { - "decorators": [ - "external" - ], - "pc": 476, - "type": "function" - }, - "__main__.test_storage_read_write.Args": { - "full_name": "__main__.test_storage_read_write.Args", - "members": { - "address": { - "cairo_type": "felt", - "offset": 0 - }, - "value": { - "cairo_type": "felt", - "offset": 1 - } - }, - "size": 2, - "type": "struct" - }, - "__main__.test_storage_read_write.ImplicitArgs": { - "full_name": "__main__.test_storage_read_write.ImplicitArgs", - "members": { - "syscall_ptr": { - "cairo_type": "felt*", - "offset": 0 - } - }, - "size": 1, - "type": "struct" - }, - "__main__.test_storage_read_write.Return": { - "cairo_type": "(result: felt)", - "type": "type_definition" - }, - "__main__.test_storage_read_write.SIZEOF_LOCALS": { - "type": "const", - "value": 0 - }, - "__main__.test_storage_var": { - "decorators": [ - "external" - ], - "pc": 729, - "type": "function" - }, - "__main__.test_storage_var.Args": { - "full_name": "__main__.test_storage_var.Args", - "members": {}, - "size": 0, - "type": "struct" - }, - "__main__.test_storage_var.ImplicitArgs": { - "full_name": "__main__.test_storage_var.ImplicitArgs", - "members": { - "pedersen_ptr": { - "cairo_type": "starkware.cairo.common.cairo_builtins.HashBuiltin*", - "offset": 1 - }, - "range_check_ptr": { - "cairo_type": "felt", - "offset": 2 - }, - "syscall_ptr": { - "cairo_type": "felt*", - "offset": 0 - } - }, - "size": 3, - "type": "struct" - }, - "__main__.test_storage_var.Return": { - "cairo_type": "()", - "type": "type_definition" - }, - "__main__.test_storage_var.SIZEOF_LOCALS": { - "type": "const", - "value": 0 - }, - "__main__.with_arg": { - "decorators": [ - "external" - ], - "pc": 381, - "type": "function" - }, - "__main__.with_arg.Args": { - "full_name": "__main__.with_arg.Args", - "members": { - "num": { - "cairo_type": "felt", - "offset": 0 - } - }, - "size": 1, - "type": "struct" - }, - "__main__.with_arg.ImplicitArgs": { - "full_name": "__main__.with_arg.ImplicitArgs", - "members": {}, - "size": 0, - "type": "struct" - }, - "__main__.with_arg.Return": { - "cairo_type": "()", - "type": "type_definition" - }, - "__main__.with_arg.SIZEOF_LOCALS": { - "type": "const", - "value": 0 - }, - "__main__.without_arg": { - "decorators": [ - "external" - ], - "pc": 345, - "type": "function" - }, - "__main__.without_arg.Args": { - "full_name": "__main__.without_arg.Args", - "members": {}, - "size": 0, - "type": "struct" - }, - "__main__.without_arg.ImplicitArgs": { - "full_name": "__main__.without_arg.ImplicitArgs", - "members": {}, - "size": 0, - "type": "struct" - }, - "__main__.without_arg.Return": { - "cairo_type": "()", - "type": "type_definition" - }, - "__main__.without_arg.SIZEOF_LOCALS": { - "type": "const", - "value": 0 - }, - "__wrappers__.bitwise_and": { - "decorators": [ - "external" - ], - "pc": 435, - "type": "function" - }, - "__wrappers__.bitwise_and.Args": { - "full_name": "__wrappers__.bitwise_and.Args", - "members": {}, - "size": 0, - "type": "struct" - }, - "__wrappers__.bitwise_and.ImplicitArgs": { - "full_name": "__wrappers__.bitwise_and.ImplicitArgs", - "members": {}, - "size": 0, - "type": "struct" - }, - "__wrappers__.bitwise_and.Return": { - "cairo_type": "(syscall_ptr: felt, pedersen_ptr: felt, range_check_ptr: felt, bitwise_ptr: starkware.cairo.common.cairo_builtins.BitwiseBuiltin*, size: felt, retdata: felt*)", - "type": "type_definition" - }, - "__wrappers__.bitwise_and.SIZEOF_LOCALS": { - "type": "const", - "value": 0 - }, - "__wrappers__.bitwise_and.__wrapped_func": { - "destination": "__main__.bitwise_and", - "type": "alias" - }, - "__wrappers__.bitwise_and_encode_return.memcpy": { - "destination": "starkware.cairo.common.memcpy.memcpy", - "type": "alias" - }, - "__wrappers__.constructor": { - "decorators": [ - "constructor" - ], - "pc": 327, - "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*, pedersen_ptr: felt, range_check_ptr: felt, bitwise_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" - }, - "__wrappers__.emit_event": { - "decorators": [ - "external" - ], - "pc": 366, - "type": "function" - }, - "__wrappers__.emit_event.Args": { - "full_name": "__wrappers__.emit_event.Args", - "members": {}, - "size": 0, - "type": "struct" - }, - "__wrappers__.emit_event.ImplicitArgs": { - "full_name": "__wrappers__.emit_event.ImplicitArgs", - "members": {}, - "size": 0, - "type": "struct" - }, - "__wrappers__.emit_event.Return": { - "cairo_type": "(syscall_ptr: felt*, pedersen_ptr: felt, range_check_ptr: felt, bitwise_ptr: felt, size: felt, retdata: felt*)", - "type": "type_definition" - }, - "__wrappers__.emit_event.SIZEOF_LOCALS": { - "type": "const", - "value": 0 - }, - "__wrappers__.emit_event.__wrapped_func": { - "destination": "__main__.emit_event", - "type": "alias" - }, - "__wrappers__.emit_event_encode_return.memcpy": { - "destination": "starkware.cairo.common.memcpy.memcpy", - "type": "alias" - }, - "__wrappers__.return_result": { - "decorators": [ - "external" - ], - "pc": 411, - "type": "function" - }, - "__wrappers__.return_result.Args": { - "full_name": "__wrappers__.return_result.Args", - "members": {}, - "size": 0, - "type": "struct" - }, - "__wrappers__.return_result.ImplicitArgs": { - "full_name": "__wrappers__.return_result.ImplicitArgs", - "members": {}, - "size": 0, - "type": "struct" - }, - "__wrappers__.return_result.Return": { - "cairo_type": "(syscall_ptr: felt, pedersen_ptr: felt, range_check_ptr: felt, bitwise_ptr: felt, size: felt, retdata: felt*)", - "type": "type_definition" - }, - "__wrappers__.return_result.SIZEOF_LOCALS": { - "type": "const", - "value": 0 - }, - "__wrappers__.return_result.__wrapped_func": { - "destination": "__main__.return_result", - "type": "alias" - }, - "__wrappers__.return_result_encode_return": { - "decorators": [], - "pc": 402, - "type": "function" - }, - "__wrappers__.return_result_encode_return.Args": { - "full_name": "__wrappers__.return_result_encode_return.Args", - "members": { - "range_check_ptr": { - "cairo_type": "felt", - "offset": 1 - }, - "ret_value": { - "cairo_type": "(result: felt)", - "offset": 0 - } - }, - "size": 2, - "type": "struct" - }, - "__wrappers__.return_result_encode_return.ImplicitArgs": { - "full_name": "__wrappers__.return_result_encode_return.ImplicitArgs", - "members": {}, - "size": 0, - "type": "struct" - }, - "__wrappers__.return_result_encode_return.Return": { - "cairo_type": "(range_check_ptr: felt, data_len: felt, data: felt*)", - "type": "type_definition" - }, - "__wrappers__.return_result_encode_return.SIZEOF_LOCALS": { - "type": "const", - "value": 1 - }, - "__wrappers__.return_result_encode_return.memcpy": { - "destination": "starkware.cairo.common.memcpy.memcpy", - "type": "alias" - }, - "__wrappers__.sqrt": { - "decorators": [ - "external" - ], - "pc": 459, - "type": "function" - }, - "__wrappers__.sqrt.Args": { - "full_name": "__wrappers__.sqrt.Args", - "members": {}, - "size": 0, - "type": "struct" - }, - "__wrappers__.sqrt.ImplicitArgs": { - "full_name": "__wrappers__.sqrt.ImplicitArgs", - "members": {}, - "size": 0, - "type": "struct" - }, - "__wrappers__.sqrt.Return": { - "cairo_type": "(syscall_ptr: felt, pedersen_ptr: felt, range_check_ptr: felt, bitwise_ptr: felt, size: felt, retdata: felt*)", - "type": "type_definition" - }, - "__wrappers__.sqrt.SIZEOF_LOCALS": { - "type": "const", - "value": 0 - }, - "__wrappers__.sqrt.__wrapped_func": { - "destination": "__main__.sqrt", - "type": "alias" - }, - "__wrappers__.sqrt_encode_return.memcpy": { - "destination": "starkware.cairo.common.memcpy.memcpy", - "type": "alias" - }, - "__wrappers__.test_call_contract": { - "decorators": [ - "external", - "raw_output" - ], - "pc": 654, - "type": "function" - }, - "__wrappers__.test_call_contract.Args": { - "full_name": "__wrappers__.test_call_contract.Args", - "members": {}, - "size": 0, - "type": "struct" - }, - "__wrappers__.test_call_contract.ImplicitArgs": { - "full_name": "__wrappers__.test_call_contract.ImplicitArgs", - "members": {}, - "size": 0, - "type": "struct" - }, - "__wrappers__.test_call_contract.Return": { - "cairo_type": "(syscall_ptr: felt*, pedersen_ptr: felt, range_check_ptr: felt, bitwise_ptr: felt, size: felt, retdata: felt*)", - "type": "type_definition" - }, - "__wrappers__.test_call_contract.SIZEOF_LOCALS": { - "type": "const", - "value": 0 - }, - "__wrappers__.test_call_contract.__wrapped_func": { - "destination": "__main__.test_call_contract", - "type": "alias" - }, - "__wrappers__.test_call_contract_encode_return.memcpy": { - "destination": "starkware.cairo.common.memcpy.memcpy", - "type": "alias" - }, - "__wrappers__.test_contract_address": { - "decorators": [ - "external" - ], - "pc": 783, - "type": "function" - }, - "__wrappers__.test_contract_address.Args": { - "full_name": "__wrappers__.test_contract_address.Args", - "members": {}, - "size": 0, - "type": "struct" - }, - "__wrappers__.test_contract_address.ImplicitArgs": { - "full_name": "__wrappers__.test_contract_address.ImplicitArgs", - "members": {}, - "size": 0, - "type": "struct" - }, - "__wrappers__.test_contract_address.Return": { - "cairo_type": "(syscall_ptr: felt, pedersen_ptr: starkware.cairo.common.cairo_builtins.HashBuiltin*, range_check_ptr: felt, bitwise_ptr: felt, size: felt, retdata: felt*)", - "type": "type_definition" - }, - "__wrappers__.test_contract_address.SIZEOF_LOCALS": { - "type": "const", - "value": 0 - }, - "__wrappers__.test_contract_address.__wrapped_func": { - "destination": "__main__.test_contract_address", - "type": "alias" - }, - "__wrappers__.test_contract_address_encode_return": { - "decorators": [], - "pc": 774, - "type": "function" - }, - "__wrappers__.test_contract_address_encode_return.Args": { - "full_name": "__wrappers__.test_contract_address_encode_return.Args", - "members": { - "range_check_ptr": { - "cairo_type": "felt", - "offset": 1 - }, - "ret_value": { - "cairo_type": "(contract_address: felt)", - "offset": 0 - } - }, - "size": 2, - "type": "struct" - }, - "__wrappers__.test_contract_address_encode_return.ImplicitArgs": { - "full_name": "__wrappers__.test_contract_address_encode_return.ImplicitArgs", - "members": {}, - "size": 0, - "type": "struct" - }, - "__wrappers__.test_contract_address_encode_return.Return": { - "cairo_type": "(range_check_ptr: felt, data_len: felt, data: felt*)", - "type": "type_definition" - }, - "__wrappers__.test_contract_address_encode_return.SIZEOF_LOCALS": { - "type": "const", - "value": 1 - }, - "__wrappers__.test_contract_address_encode_return.memcpy": { - "destination": "starkware.cairo.common.memcpy.memcpy", - "type": "alias" - }, - "__wrappers__.test_deploy": { - "decorators": [ - "external" - ], - "pc": 697, - "type": "function" - }, - "__wrappers__.test_deploy.Args": { - "full_name": "__wrappers__.test_deploy.Args", - "members": {}, - "size": 0, - "type": "struct" - }, - "__wrappers__.test_deploy.ImplicitArgs": { - "full_name": "__wrappers__.test_deploy.ImplicitArgs", - "members": {}, - "size": 0, - "type": "struct" - }, - "__wrappers__.test_deploy.Return": { - "cairo_type": "(syscall_ptr: felt*, pedersen_ptr: felt, range_check_ptr: felt, bitwise_ptr: felt, size: felt, retdata: felt*)", - "type": "type_definition" - }, - "__wrappers__.test_deploy.SIZEOF_LOCALS": { - "type": "const", - "value": 0 - }, - "__wrappers__.test_deploy.__wrapped_func": { - "destination": "__main__.test_deploy", - "type": "alias" - }, - "__wrappers__.test_deploy_encode_return": { - "decorators": [], - "pc": 688, - "type": "function" - }, - "__wrappers__.test_deploy_encode_return.Args": { - "full_name": "__wrappers__.test_deploy_encode_return.Args", - "members": { - "range_check_ptr": { - "cairo_type": "felt", - "offset": 1 - }, - "ret_value": { - "cairo_type": "(contract_address: felt)", - "offset": 0 - } - }, - "size": 2, - "type": "struct" - }, - "__wrappers__.test_deploy_encode_return.ImplicitArgs": { - "full_name": "__wrappers__.test_deploy_encode_return.ImplicitArgs", - "members": {}, - "size": 0, - "type": "struct" - }, - "__wrappers__.test_deploy_encode_return.Return": { - "cairo_type": "(range_check_ptr: felt, data_len: felt, data: felt*)", - "type": "type_definition" - }, - "__wrappers__.test_deploy_encode_return.SIZEOF_LOCALS": { - "type": "const", - "value": 1 - }, - "__wrappers__.test_deploy_encode_return.memcpy": { - "destination": "starkware.cairo.common.memcpy.memcpy", - "type": "alias" - }, - "__wrappers__.test_l1_handler_store_under_caller_address": { - "decorators": [ - "l1_handler" - ], - "pc": 518, - "type": "function" - }, - "__wrappers__.test_l1_handler_store_under_caller_address.Args": { - "full_name": "__wrappers__.test_l1_handler_store_under_caller_address.Args", - "members": {}, - "size": 0, - "type": "struct" - }, - "__wrappers__.test_l1_handler_store_under_caller_address.ImplicitArgs": { - "full_name": "__wrappers__.test_l1_handler_store_under_caller_address.ImplicitArgs", - "members": {}, - "size": 0, - "type": "struct" - }, - "__wrappers__.test_l1_handler_store_under_caller_address.Return": { - "cairo_type": "(syscall_ptr: felt*, pedersen_ptr: felt, range_check_ptr: felt, bitwise_ptr: felt, size: felt, retdata: felt*)", - "type": "type_definition" - }, - "__wrappers__.test_l1_handler_store_under_caller_address.SIZEOF_LOCALS": { - "type": "const", - "value": 0 - }, - "__wrappers__.test_l1_handler_store_under_caller_address.__wrapped_func": { - "destination": "__main__.test_l1_handler_store_under_caller_address", - "type": "alias" - }, - "__wrappers__.test_l1_handler_store_under_caller_address_encode_return.memcpy": { - "destination": "starkware.cairo.common.memcpy.memcpy", - "type": "alias" - }, - "__wrappers__.test_library_call": { - "decorators": [ - "external", - "raw_output" - ], - "pc": 544, - "type": "function" - }, - "__wrappers__.test_library_call.Args": { - "full_name": "__wrappers__.test_library_call.Args", - "members": {}, - "size": 0, - "type": "struct" - }, - "__wrappers__.test_library_call.ImplicitArgs": { - "full_name": "__wrappers__.test_library_call.ImplicitArgs", - "members": {}, - "size": 0, - "type": "struct" - }, - "__wrappers__.test_library_call.Return": { - "cairo_type": "(syscall_ptr: felt*, pedersen_ptr: felt, range_check_ptr: felt, bitwise_ptr: felt, size: felt, retdata: felt*)", - "type": "type_definition" - }, - "__wrappers__.test_library_call.SIZEOF_LOCALS": { - "type": "const", - "value": 0 - }, - "__wrappers__.test_library_call.__wrapped_func": { - "destination": "__main__.test_library_call", - "type": "alias" - }, - "__wrappers__.test_library_call_encode_return.memcpy": { - "destination": "starkware.cairo.common.memcpy.memcpy", - "type": "alias" - }, - "__wrappers__.test_nested_library_call": { - "decorators": [ - "external" - ], - "pc": 616, - "type": "function" - }, - "__wrappers__.test_nested_library_call.Args": { - "full_name": "__wrappers__.test_nested_library_call.Args", - "members": {}, - "size": 0, - "type": "struct" - }, - "__wrappers__.test_nested_library_call.ImplicitArgs": { - "full_name": "__wrappers__.test_nested_library_call.ImplicitArgs", - "members": {}, - "size": 0, - "type": "struct" - }, - "__wrappers__.test_nested_library_call.Return": { - "cairo_type": "(syscall_ptr: felt*, pedersen_ptr: felt, range_check_ptr: felt, bitwise_ptr: felt, size: felt, retdata: felt*)", - "type": "type_definition" - }, - "__wrappers__.test_nested_library_call.SIZEOF_LOCALS": { - "type": "const", - "value": 0 - }, - "__wrappers__.test_nested_library_call.__wrapped_func": { - "destination": "__main__.test_nested_library_call", - "type": "alias" - }, - "__wrappers__.test_nested_library_call_encode_return": { - "decorators": [], - "pc": 607, - "type": "function" - }, - "__wrappers__.test_nested_library_call_encode_return.Args": { - "full_name": "__wrappers__.test_nested_library_call_encode_return.Args", - "members": { - "range_check_ptr": { - "cairo_type": "felt", - "offset": 1 - }, - "ret_value": { - "cairo_type": "(result: felt)", - "offset": 0 - } - }, - "size": 2, - "type": "struct" - }, - "__wrappers__.test_nested_library_call_encode_return.ImplicitArgs": { - "full_name": "__wrappers__.test_nested_library_call_encode_return.ImplicitArgs", - "members": {}, - "size": 0, - "type": "struct" - }, - "__wrappers__.test_nested_library_call_encode_return.Return": { - "cairo_type": "(range_check_ptr: felt, data_len: felt, data: felt*)", - "type": "type_definition" - }, - "__wrappers__.test_nested_library_call_encode_return.SIZEOF_LOCALS": { - "type": "const", - "value": 1 - }, - "__wrappers__.test_nested_library_call_encode_return.memcpy": { - "destination": "starkware.cairo.common.memcpy.memcpy", - "type": "alias" - }, - "__wrappers__.test_storage_read_write": { - "decorators": [ - "external" - ], - "pc": 494, - "type": "function" - }, - "__wrappers__.test_storage_read_write.Args": { - "full_name": "__wrappers__.test_storage_read_write.Args", - "members": {}, - "size": 0, - "type": "struct" - }, - "__wrappers__.test_storage_read_write.ImplicitArgs": { - "full_name": "__wrappers__.test_storage_read_write.ImplicitArgs", - "members": {}, - "size": 0, - "type": "struct" - }, - "__wrappers__.test_storage_read_write.Return": { - "cairo_type": "(syscall_ptr: felt*, pedersen_ptr: felt, range_check_ptr: felt, bitwise_ptr: felt, size: felt, retdata: felt*)", - "type": "type_definition" - }, - "__wrappers__.test_storage_read_write.SIZEOF_LOCALS": { - "type": "const", - "value": 0 - }, - "__wrappers__.test_storage_read_write.__wrapped_func": { - "destination": "__main__.test_storage_read_write", - "type": "alias" - }, - "__wrappers__.test_storage_read_write_encode_return": { - "decorators": [], - "pc": 485, - "type": "function" - }, - "__wrappers__.test_storage_read_write_encode_return.Args": { - "full_name": "__wrappers__.test_storage_read_write_encode_return.Args", - "members": { - "range_check_ptr": { - "cairo_type": "felt", - "offset": 1 - }, - "ret_value": { - "cairo_type": "(result: felt)", - "offset": 0 - } - }, - "size": 2, - "type": "struct" - }, - "__wrappers__.test_storage_read_write_encode_return.ImplicitArgs": { - "full_name": "__wrappers__.test_storage_read_write_encode_return.ImplicitArgs", - "members": {}, - "size": 0, - "type": "struct" - }, - "__wrappers__.test_storage_read_write_encode_return.Return": { - "cairo_type": "(range_check_ptr: felt, data_len: felt, data: felt*)", - "type": "type_definition" - }, - "__wrappers__.test_storage_read_write_encode_return.SIZEOF_LOCALS": { - "type": "const", - "value": 1 - }, - "__wrappers__.test_storage_read_write_encode_return.memcpy": { - "destination": "starkware.cairo.common.memcpy.memcpy", - "type": "alias" - }, - "__wrappers__.test_storage_var": { - "decorators": [ - "external" - ], - "pc": 748, - "type": "function" - }, - "__wrappers__.test_storage_var.Args": { - "full_name": "__wrappers__.test_storage_var.Args", - "members": {}, - "size": 0, - "type": "struct" - }, - "__wrappers__.test_storage_var.ImplicitArgs": { - "full_name": "__wrappers__.test_storage_var.ImplicitArgs", - "members": {}, - "size": 0, - "type": "struct" - }, - "__wrappers__.test_storage_var.Return": { - "cairo_type": "(syscall_ptr: felt*, pedersen_ptr: starkware.cairo.common.cairo_builtins.HashBuiltin*, range_check_ptr: felt, bitwise_ptr: felt, size: felt, retdata: felt*)", - "type": "type_definition" - }, - "__wrappers__.test_storage_var.SIZEOF_LOCALS": { - "type": "const", - "value": 0 - }, - "__wrappers__.test_storage_var.__wrapped_func": { - "destination": "__main__.test_storage_var", - "type": "alias" - }, - "__wrappers__.test_storage_var_encode_return.memcpy": { - "destination": "starkware.cairo.common.memcpy.memcpy", - "type": "alias" - }, - "__wrappers__.with_arg": { - "decorators": [ - "external" - ], - "pc": 384, - "type": "function" - }, - "__wrappers__.with_arg.Args": { - "full_name": "__wrappers__.with_arg.Args", - "members": {}, - "size": 0, - "type": "struct" - }, - "__wrappers__.with_arg.ImplicitArgs": { - "full_name": "__wrappers__.with_arg.ImplicitArgs", - "members": {}, - "size": 0, - "type": "struct" - }, - "__wrappers__.with_arg.Return": { - "cairo_type": "(syscall_ptr: felt, pedersen_ptr: felt, range_check_ptr: felt, bitwise_ptr: felt, size: felt, retdata: felt*)", - "type": "type_definition" - }, - "__wrappers__.with_arg.SIZEOF_LOCALS": { - "type": "const", - "value": 0 - }, - "__wrappers__.with_arg.__wrapped_func": { - "destination": "__main__.with_arg", - "type": "alias" - }, - "__wrappers__.with_arg_encode_return.memcpy": { - "destination": "starkware.cairo.common.memcpy.memcpy", - "type": "alias" - }, - "__wrappers__.without_arg": { - "decorators": [ - "external" - ], - "pc": 346, - "type": "function" - }, - "__wrappers__.without_arg.Args": { - "full_name": "__wrappers__.without_arg.Args", - "members": {}, - "size": 0, - "type": "struct" - }, - "__wrappers__.without_arg.ImplicitArgs": { - "full_name": "__wrappers__.without_arg.ImplicitArgs", - "members": {}, - "size": 0, - "type": "struct" - }, - "__wrappers__.without_arg.Return": { - "cairo_type": "(syscall_ptr: felt, pedersen_ptr: felt, range_check_ptr: felt, bitwise_ptr: felt, size: felt, retdata: felt*)", - "type": "type_definition" - }, - "__wrappers__.without_arg.SIZEOF_LOCALS": { - "type": "const", - "value": 0 - }, - "__wrappers__.without_arg.__wrapped_func": { - "destination": "__main__.without_arg", - "type": "alias" - }, - "__wrappers__.without_arg_encode_return.memcpy": { - "destination": "starkware.cairo.common.memcpy.memcpy", - "type": "alias" - }, - "starkware.cairo.common.alloc.alloc": { - "decorators": [], - "pc": 0, - "type": "function" - }, - "starkware.cairo.common.alloc.alloc.Args": { - "full_name": "starkware.cairo.common.alloc.alloc.Args", - "members": {}, - "size": 0, - "type": "struct" - }, - "starkware.cairo.common.alloc.alloc.ImplicitArgs": { - "full_name": "starkware.cairo.common.alloc.alloc.ImplicitArgs", - "members": {}, - "size": 0, - "type": "struct" - }, - "starkware.cairo.common.alloc.alloc.Return": { - "cairo_type": "(ptr: felt*)", - "type": "type_definition" - }, - "starkware.cairo.common.alloc.alloc.SIZEOF_LOCALS": { - "type": "const", - "value": 0 - }, - "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.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.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.hash.hash2": { - "decorators": [], - "pc": 3, - "type": "function" - }, - "starkware.cairo.common.hash.hash2.Args": { - "full_name": "starkware.cairo.common.hash.hash2.Args", - "members": { - "x": { - "cairo_type": "felt", - "offset": 0 - }, - "y": { - "cairo_type": "felt", - "offset": 1 - } - }, - "size": 2, - "type": "struct" - }, - "starkware.cairo.common.hash.hash2.ImplicitArgs": { - "full_name": "starkware.cairo.common.hash.hash2.ImplicitArgs", - "members": { - "hash_ptr": { - "cairo_type": "starkware.cairo.common.cairo_builtins.HashBuiltin*", - "offset": 0 - } - }, - "size": 1, - "type": "struct" - }, - "starkware.cairo.common.hash.hash2.Return": { - "cairo_type": "(result: felt)", - "type": "type_definition" - }, - "starkware.cairo.common.hash.hash2.SIZEOF_LOCALS": { - "type": "const", - "value": 0 - }, - "starkware.cairo.common.hash_state.HashBuiltin": { - "destination": "starkware.cairo.common.cairo_builtins.HashBuiltin", - "type": "alias" - }, - "starkware.cairo.common.hash_state.HashState": { - "full_name": "starkware.cairo.common.hash_state.HashState", - "members": { - "current_hash": { - "cairo_type": "felt", - "offset": 0 - }, - "n_words": { - "cairo_type": "felt", - "offset": 1 - } - }, - "size": 2, - "type": "struct" - }, - "starkware.cairo.common.hash_state.get_fp_and_pc": { - "destination": "starkware.cairo.common.registers.get_fp_and_pc", - "type": "alias" - }, - "starkware.cairo.common.hash_state.hash2": { - "destination": "starkware.cairo.common.hash.hash2", - "type": "alias" - }, - "starkware.cairo.common.hash_state.hash_felts": { - "decorators": [], - "pc": 214, - "type": "function" - }, - "starkware.cairo.common.hash_state.hash_felts.Args": { - "full_name": "starkware.cairo.common.hash_state.hash_felts.Args", - "members": { - "data": { - "cairo_type": "felt*", - "offset": 0 - }, - "length": { - "cairo_type": "felt", - "offset": 1 - } - }, - "size": 2, - "type": "struct" - }, - "starkware.cairo.common.hash_state.hash_felts.ImplicitArgs": { - "full_name": "starkware.cairo.common.hash_state.hash_felts.ImplicitArgs", - "members": { - "hash_ptr": { - "cairo_type": "starkware.cairo.common.cairo_builtins.HashBuiltin*", - "offset": 0 - } - }, - "size": 1, - "type": "struct" - }, - "starkware.cairo.common.hash_state.hash_felts.Return": { - "cairo_type": "(hash: felt)", - "type": "type_definition" - }, - "starkware.cairo.common.hash_state.hash_felts.SIZEOF_LOCALS": { - "type": "const", - "value": 0 - }, - "starkware.cairo.common.hash_state.hash_felts_no_padding": { - "decorators": [], - "pc": 189, - "type": "function" - }, - "starkware.cairo.common.hash_state.hash_felts_no_padding.Args": { - "full_name": "starkware.cairo.common.hash_state.hash_felts_no_padding.Args", - "members": { - "data_length": { - "cairo_type": "felt", - "offset": 1 - }, - "data_ptr": { - "cairo_type": "felt*", - "offset": 0 - }, - "initial_hash": { - "cairo_type": "felt", - "offset": 2 - } - }, - "size": 3, - "type": "struct" - }, - "starkware.cairo.common.hash_state.hash_felts_no_padding.ImplicitArgs": { - "full_name": "starkware.cairo.common.hash_state.hash_felts_no_padding.ImplicitArgs", - "members": { - "hash_ptr": { - "cairo_type": "starkware.cairo.common.cairo_builtins.HashBuiltin*", - "offset": 0 - } - }, - "size": 1, - "type": "struct" - }, - "starkware.cairo.common.hash_state.hash_felts_no_padding.LoopLocals": { - "full_name": "starkware.cairo.common.hash_state.hash_felts_no_padding.LoopLocals", - "members": { - "cur_hash": { - "cairo_type": "felt", - "offset": 2 - }, - "data_ptr": { - "cairo_type": "felt*", - "offset": 0 - }, - "hash_ptr": { - "cairo_type": "starkware.cairo.common.cairo_builtins.HashBuiltin*", - "offset": 1 - } - }, - "size": 3, - "type": "struct" - }, - "starkware.cairo.common.hash_state.hash_felts_no_padding.Return": { - "cairo_type": "(hash: felt)", - "type": "type_definition" - }, - "starkware.cairo.common.hash_state.hash_felts_no_padding.SIZEOF_LOCALS": { - "type": "const", - "value": 1 - }, - "starkware.cairo.common.hash_state.hash_felts_no_padding.hash_loop": { - "pc": 202, - "type": "label" - }, - "starkware.cairo.common.hash_state.hash_finalize": { - "decorators": [], - "pc": 183, - "type": "function" - }, - "starkware.cairo.common.hash_state.hash_finalize.Args": { - "full_name": "starkware.cairo.common.hash_state.hash_finalize.Args", - "members": { - "hash_state_ptr": { - "cairo_type": "starkware.cairo.common.hash_state.HashState*", - "offset": 0 - } - }, - "size": 1, - "type": "struct" - }, - "starkware.cairo.common.hash_state.hash_finalize.ImplicitArgs": { - "full_name": "starkware.cairo.common.hash_state.hash_finalize.ImplicitArgs", - "members": { - "hash_ptr": { - "cairo_type": "starkware.cairo.common.cairo_builtins.HashBuiltin*", - "offset": 0 - } - }, - "size": 1, - "type": "struct" - }, - "starkware.cairo.common.hash_state.hash_finalize.Return": { - "cairo_type": "(hash: felt)", - "type": "type_definition" - }, - "starkware.cairo.common.hash_state.hash_finalize.SIZEOF_LOCALS": { - "type": "const", - "value": 0 - }, - "starkware.cairo.common.hash_state.hash_init": { - "decorators": [], - "pc": 130, - "type": "function" - }, - "starkware.cairo.common.hash_state.hash_init.Args": { - "full_name": "starkware.cairo.common.hash_state.hash_init.Args", - "members": {}, - "size": 0, - "type": "struct" - }, - "starkware.cairo.common.hash_state.hash_init.ImplicitArgs": { - "full_name": "starkware.cairo.common.hash_state.hash_init.ImplicitArgs", - "members": {}, - "size": 0, - "type": "struct" - }, - "starkware.cairo.common.hash_state.hash_init.Return": { - "cairo_type": "(hash_state_ptr: starkware.cairo.common.hash_state.HashState*)", - "type": "type_definition" - }, - "starkware.cairo.common.hash_state.hash_init.SIZEOF_LOCALS": { - "type": "const", - "value": 2 - }, - "starkware.cairo.common.hash_state.hash_update": { - "decorators": [], - "pc": 140, - "type": "function" - }, - "starkware.cairo.common.hash_state.hash_update.Args": { - "full_name": "starkware.cairo.common.hash_state.hash_update.Args", - "members": { - "data_length": { - "cairo_type": "felt", - "offset": 2 - }, - "data_ptr": { - "cairo_type": "felt*", - "offset": 1 - }, - "hash_state_ptr": { - "cairo_type": "starkware.cairo.common.hash_state.HashState*", - "offset": 0 - } - }, - "size": 3, - "type": "struct" - }, - "starkware.cairo.common.hash_state.hash_update.ImplicitArgs": { - "full_name": "starkware.cairo.common.hash_state.hash_update.ImplicitArgs", - "members": { - "hash_ptr": { - "cairo_type": "starkware.cairo.common.cairo_builtins.HashBuiltin*", - "offset": 0 - } - }, - "size": 1, - "type": "struct" - }, - "starkware.cairo.common.hash_state.hash_update.Return": { - "cairo_type": "(new_hash_state_ptr: starkware.cairo.common.hash_state.HashState*)", - "type": "type_definition" - }, - "starkware.cairo.common.hash_state.hash_update.SIZEOF_LOCALS": { - "type": "const", - "value": 2 - }, - "starkware.cairo.common.hash_state.hash_update_single": { - "decorators": [], - "pc": 156, - "type": "function" - }, - "starkware.cairo.common.hash_state.hash_update_single.Args": { - "full_name": "starkware.cairo.common.hash_state.hash_update_single.Args", - "members": { - "hash_state_ptr": { - "cairo_type": "starkware.cairo.common.hash_state.HashState*", - "offset": 0 - }, - "item": { - "cairo_type": "felt", - "offset": 1 - } - }, - "size": 2, - "type": "struct" - }, - "starkware.cairo.common.hash_state.hash_update_single.ImplicitArgs": { - "full_name": "starkware.cairo.common.hash_state.hash_update_single.ImplicitArgs", - "members": { - "hash_ptr": { - "cairo_type": "starkware.cairo.common.cairo_builtins.HashBuiltin*", - "offset": 0 - } - }, - "size": 1, - "type": "struct" - }, - "starkware.cairo.common.hash_state.hash_update_single.Return": { - "cairo_type": "(new_hash_state_ptr: starkware.cairo.common.hash_state.HashState*)", - "type": "type_definition" - }, - "starkware.cairo.common.hash_state.hash_update_single.SIZEOF_LOCALS": { - "type": "const", - "value": 2 - }, - "starkware.cairo.common.hash_state.hash_update_with_hashchain": { - "decorators": [], - "pc": 172, - "type": "function" - }, - "starkware.cairo.common.hash_state.hash_update_with_hashchain.Args": { - "full_name": "starkware.cairo.common.hash_state.hash_update_with_hashchain.Args", - "members": { - "data_length": { - "cairo_type": "felt", - "offset": 2 - }, - "data_ptr": { - "cairo_type": "felt*", - "offset": 1 - }, - "hash_state_ptr": { - "cairo_type": "starkware.cairo.common.hash_state.HashState*", - "offset": 0 - } - }, - "size": 3, - "type": "struct" - }, - "starkware.cairo.common.hash_state.hash_update_with_hashchain.ImplicitArgs": { - "full_name": "starkware.cairo.common.hash_state.hash_update_with_hashchain.ImplicitArgs", - "members": { - "hash_ptr": { - "cairo_type": "starkware.cairo.common.cairo_builtins.HashBuiltin*", - "offset": 0 - } - }, - "size": 1, - "type": "struct" - }, - "starkware.cairo.common.hash_state.hash_update_with_hashchain.Return": { - "cairo_type": "(new_hash_state_ptr: starkware.cairo.common.hash_state.HashState*)", - "type": "type_definition" - }, - "starkware.cairo.common.hash_state.hash_update_with_hashchain.SIZEOF_LOCALS": { - "type": "const", - "value": 0 - }, - "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_250_bit": { - "decorators": [ - "known_ap_change" - ], - "pc": 77, - "type": "function" - }, - "starkware.cairo.common.math.assert_250_bit.Args": { - "full_name": "starkware.cairo.common.math.assert_250_bit.Args", - "members": { - "value": { - "cairo_type": "felt", - "offset": 0 - } - }, - "size": 1, - "type": "struct" - }, - "starkware.cairo.common.math.assert_250_bit.HIGH_BOUND": { - "type": "const", - "value": 5316911983139663491615228241121378304 - }, - "starkware.cairo.common.math.assert_250_bit.ImplicitArgs": { - "full_name": "starkware.cairo.common.math.assert_250_bit.ImplicitArgs", - "members": { - "range_check_ptr": { - "cairo_type": "felt", - "offset": 0 - } - }, - "size": 1, - "type": "struct" - }, - "starkware.cairo.common.math.assert_250_bit.Return": { - "cairo_type": "()", - "type": "type_definition" - }, - "starkware.cairo.common.math.assert_250_bit.SHIFT": { - "type": "const", - "value": 340282366920938463463374607431768211456 - }, - "starkware.cairo.common.math.assert_250_bit.SIZEOF_LOCALS": { - "type": "const", - "value": 0 - }, - "starkware.cairo.common.math.assert_250_bit.UPPER_BOUND": { - "type": "const", - "value": 1809251394333065553493296640760748560207343510400633813116524750123642650624 - }, - "starkware.cairo.common.math.assert_250_bit.high": { - "cairo_type": "felt", - "full_name": "starkware.cairo.common.math.assert_250_bit.high", - "references": [ - { - "ap_tracking_data": { - "group": 10, - "offset": 0 - }, - "pc": 77, - "value": "[cast([fp + (-4)] + 1, felt*)]" - } - ], - "type": "reference" - }, - "starkware.cairo.common.math.assert_250_bit.low": { - "cairo_type": "felt", - "full_name": "starkware.cairo.common.math.assert_250_bit.low", - "references": [ - { - "ap_tracking_data": { - "group": 10, - "offset": 0 - }, - "pc": 77, - "value": "[cast([fp + (-4)], felt*)]" - } - ], - "type": "reference" - }, - "starkware.cairo.common.math.assert_250_bit.value": { - "cairo_type": "felt", - "full_name": "starkware.cairo.common.math.assert_250_bit.value", - "references": [ - { - "ap_tracking_data": { - "group": 10, - "offset": 0 - }, - "pc": 77, - "value": "[cast(fp + (-3), 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.cairo.common.registers.get_ap": { - "destination": "starkware.cairo.lang.compiler.lib.registers.get_ap", - "type": "alias" - }, - "starkware.cairo.common.registers.get_fp_and_pc": { - "destination": "starkware.cairo.lang.compiler.lib.registers.get_fp_and_pc", - "type": "alias" - }, - "starkware.cairo.lang.compiler.lib.registers.get_ap": { - "decorators": [ - "known_ap_change" - ], - "pc": 10, - "type": "function" - }, - "starkware.cairo.lang.compiler.lib.registers.get_ap.Args": { - "full_name": "starkware.cairo.lang.compiler.lib.registers.get_ap.Args", - "members": {}, - "size": 0, - "type": "struct" - }, - "starkware.cairo.lang.compiler.lib.registers.get_ap.ImplicitArgs": { - "full_name": "starkware.cairo.lang.compiler.lib.registers.get_ap.ImplicitArgs", - "members": {}, - "size": 0, - "type": "struct" - }, - "starkware.cairo.lang.compiler.lib.registers.get_ap.Return": { - "cairo_type": "(ap_val: felt*)", - "type": "type_definition" - }, - "starkware.cairo.lang.compiler.lib.registers.get_ap.SIZEOF_LOCALS": { - "type": "const", - "value": 0 - }, - "starkware.cairo.lang.compiler.lib.registers.get_fp_and_pc": { - "decorators": [], - "pc": 9, - "type": "function" - }, - "starkware.cairo.lang.compiler.lib.registers.get_fp_and_pc.Args": { - "full_name": "starkware.cairo.lang.compiler.lib.registers.get_fp_and_pc.Args", - "members": {}, - "size": 0, - "type": "struct" - }, - "starkware.cairo.lang.compiler.lib.registers.get_fp_and_pc.ImplicitArgs": { - "full_name": "starkware.cairo.lang.compiler.lib.registers.get_fp_and_pc.ImplicitArgs", - "members": {}, - "size": 0, - "type": "struct" - }, - "starkware.cairo.lang.compiler.lib.registers.get_fp_and_pc.Return": { - "cairo_type": "(fp_val: felt*, pc_val: felt*)", - "type": "type_definition" - }, - "starkware.cairo.lang.compiler.lib.registers.get_fp_and_pc.SIZEOF_LOCALS": { - "type": "const", - "value": 0 - }, - "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.storage.normalize_address": { - "decorators": [ - "known_ap_change" - ], - "pc": 90, - "type": "function" - }, - "starkware.starknet.common.storage.normalize_address.Args": { - "full_name": "starkware.starknet.common.storage.normalize_address.Args", - "members": { - "addr": { - "cairo_type": "felt", - "offset": 0 - } - }, - "size": 1, - "type": "struct" - }, - "starkware.starknet.common.storage.normalize_address.ImplicitArgs": { - "full_name": "starkware.starknet.common.storage.normalize_address.ImplicitArgs", - "members": { - "range_check_ptr": { - "cairo_type": "felt", - "offset": 0 - } - }, - "size": 1, - "type": "struct" - }, - "starkware.starknet.common.storage.normalize_address.Return": { - "cairo_type": "(res: felt)", - "type": "type_definition" - }, - "starkware.starknet.common.storage.normalize_address.SIZEOF_LOCALS": { - "type": "const", - "value": 0 - }, - "starkware.starknet.common.storage.normalize_address.addr": { - "cairo_type": "felt", - "full_name": "starkware.starknet.common.storage.normalize_address.addr", - "references": [ - { - "ap_tracking_data": { - "group": 11, - "offset": 0 - }, - "pc": 90, - "value": "[cast(fp + (-3), felt*)]" - } - ], - "type": "reference" - }, - "starkware.starknet.common.storage.normalize_address.is_250": { - "cairo_type": "felt", - "full_name": "starkware.starknet.common.storage.normalize_address.is_250", - "references": [ - { - "ap_tracking_data": { - "group": 11, - "offset": 2 - }, - "pc": 110, - "value": "[cast(ap + (-1), felt*)]" - } - ], - "type": "reference" - }, - "starkware.starknet.common.storage.normalize_address.is_small": { - "cairo_type": "felt", - "full_name": "starkware.starknet.common.storage.normalize_address.is_small", - "references": [ - { - "ap_tracking_data": { - "group": 11, - "offset": 1 - }, - "pc": 92, - "value": "[cast(ap + (-1), felt*)]" - } - ], - "type": "reference" - }, - "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.call_contract": { - "decorators": [], - "pc": 15, - "type": "function" - }, - "starkware.starknet.common.syscalls.call_contract.Args": { - "full_name": "starkware.starknet.common.syscalls.call_contract.Args", - "members": { - "calldata": { - "cairo_type": "felt*", - "offset": 3 - }, - "calldata_size": { - "cairo_type": "felt", - "offset": 2 - }, - "contract_address": { - "cairo_type": "felt", - "offset": 0 - }, - "function_selector": { - "cairo_type": "felt", - "offset": 1 - } - }, - "size": 4, - "type": "struct" - }, - "starkware.starknet.common.syscalls.call_contract.ImplicitArgs": { - "full_name": "starkware.starknet.common.syscalls.call_contract.ImplicitArgs", - "members": { - "syscall_ptr": { - "cairo_type": "felt*", - "offset": 0 - } - }, - "size": 1, - "type": "struct" - }, - "starkware.starknet.common.syscalls.call_contract.Return": { - "cairo_type": "(retdata_size: felt, retdata: felt*)", - "type": "type_definition" - }, - "starkware.starknet.common.syscalls.call_contract.SIZEOF_LOCALS": { - "type": "const", - "value": 0 - }, - "starkware.starknet.common.syscalls.call_contract.syscall_ptr": { - "cairo_type": "felt*", - "full_name": "starkware.starknet.common.syscalls.call_contract.syscall_ptr", - "references": [ - { - "ap_tracking_data": { - "group": 4, - "offset": 0 - }, - "pc": 15, - "value": "[cast(fp + (-7), felt**)]" - }, - { - "ap_tracking_data": { - "group": 4, - "offset": 1 - }, - "pc": 22, - "value": "cast([fp + (-7)] + 7, felt*)" - } - ], - "type": "reference" - }, - "starkware.starknet.common.syscalls.deploy": { - "decorators": [], - "pc": 39, - "type": "function" - }, - "starkware.starknet.common.syscalls.deploy.Args": { - "full_name": "starkware.starknet.common.syscalls.deploy.Args", - "members": { - "class_hash": { - "cairo_type": "felt", - "offset": 0 - }, - "constructor_calldata": { - "cairo_type": "felt*", - "offset": 3 - }, - "constructor_calldata_size": { - "cairo_type": "felt", - "offset": 2 - }, - "contract_address_salt": { - "cairo_type": "felt", - "offset": 1 - }, - "deploy_from_zero": { - "cairo_type": "felt", - "offset": 4 - } - }, - "size": 5, - "type": "struct" - }, - "starkware.starknet.common.syscalls.deploy.ImplicitArgs": { - "full_name": "starkware.starknet.common.syscalls.deploy.ImplicitArgs", - "members": { - "syscall_ptr": { - "cairo_type": "felt*", - "offset": 0 - } - }, - "size": 1, - "type": "struct" - }, - "starkware.starknet.common.syscalls.deploy.Return": { - "cairo_type": "(contract_address: felt)", - "type": "type_definition" - }, - "starkware.starknet.common.syscalls.deploy.SIZEOF_LOCALS": { - "type": "const", - "value": 0 - }, - "starkware.starknet.common.syscalls.deploy.syscall_ptr": { - "cairo_type": "felt*", - "full_name": "starkware.starknet.common.syscalls.deploy.syscall_ptr", - "references": [ - { - "ap_tracking_data": { - "group": 6, - "offset": 0 - }, - "pc": 39, - "value": "[cast(fp + (-8), felt**)]" - }, - { - "ap_tracking_data": { - "group": 6, - "offset": 1 - }, - "pc": 47, - "value": "cast([fp + (-8)] + 9, felt*)" - } - ], - "type": "reference" - }, - "starkware.starknet.common.syscalls.emit_event": { - "decorators": [], - "pc": 67, - "type": "function" - }, - "starkware.starknet.common.syscalls.emit_event.Args": { - "full_name": "starkware.starknet.common.syscalls.emit_event.Args", - "members": { - "data": { - "cairo_type": "felt*", - "offset": 3 - }, - "data_len": { - "cairo_type": "felt", - "offset": 2 - }, - "keys": { - "cairo_type": "felt*", - "offset": 1 - }, - "keys_len": { - "cairo_type": "felt", - "offset": 0 - } - }, - "size": 4, - "type": "struct" - }, - "starkware.starknet.common.syscalls.emit_event.ImplicitArgs": { - "full_name": "starkware.starknet.common.syscalls.emit_event.ImplicitArgs", - "members": { - "syscall_ptr": { - "cairo_type": "felt*", - "offset": 0 - } - }, - "size": 1, - "type": "struct" - }, - "starkware.starknet.common.syscalls.emit_event.Return": { - "cairo_type": "()", - "type": "type_definition" - }, - "starkware.starknet.common.syscalls.emit_event.SIZEOF_LOCALS": { - "type": "const", - "value": 0 - }, - "starkware.starknet.common.syscalls.emit_event.syscall_ptr": { - "cairo_type": "felt*", - "full_name": "starkware.starknet.common.syscalls.emit_event.syscall_ptr", - "references": [ - { - "ap_tracking_data": { - "group": 9, - "offset": 0 - }, - "pc": 67, - "value": "[cast(fp + (-7), felt**)]" - }, - { - "ap_tracking_data": { - "group": 9, - "offset": 1 - }, - "pc": 74, - "value": "cast([fp + (-7)] + 5, felt*)" - } - ], - "type": "reference" - }, - "starkware.starknet.common.syscalls.library_call": { - "decorators": [], - "pc": 27, - "type": "function" - }, - "starkware.starknet.common.syscalls.library_call.Args": { - "full_name": "starkware.starknet.common.syscalls.library_call.Args", - "members": { - "calldata": { - "cairo_type": "felt*", - "offset": 3 - }, - "calldata_size": { - "cairo_type": "felt", - "offset": 2 - }, - "class_hash": { - "cairo_type": "felt", - "offset": 0 - }, - "function_selector": { - "cairo_type": "felt", - "offset": 1 - } - }, - "size": 4, - "type": "struct" - }, - "starkware.starknet.common.syscalls.library_call.ImplicitArgs": { - "full_name": "starkware.starknet.common.syscalls.library_call.ImplicitArgs", - "members": { - "syscall_ptr": { - "cairo_type": "felt*", - "offset": 0 - } - }, - "size": 1, - "type": "struct" - }, - "starkware.starknet.common.syscalls.library_call.Return": { - "cairo_type": "(retdata_size: felt, retdata: felt*)", - "type": "type_definition" - }, - "starkware.starknet.common.syscalls.library_call.SIZEOF_LOCALS": { - "type": "const", - "value": 0 - }, - "starkware.starknet.common.syscalls.library_call.syscall_ptr": { - "cairo_type": "felt*", - "full_name": "starkware.starknet.common.syscalls.library_call.syscall_ptr", - "references": [ - { - "ap_tracking_data": { - "group": 5, - "offset": 0 - }, - "pc": 27, - "value": "[cast(fp + (-7), felt**)]" - }, - { - "ap_tracking_data": { - "group": 5, - "offset": 1 - }, - "pc": 34, - "value": "cast([fp + (-7)] + 7, felt*)" - } - ], - "type": "reference" - }, - "starkware.starknet.common.syscalls.storage_read": { - "decorators": [], - "pc": 51, - "type": "function" - }, - "starkware.starknet.common.syscalls.storage_read.Args": { - "full_name": "starkware.starknet.common.syscalls.storage_read.Args", - "members": { - "address": { - "cairo_type": "felt", - "offset": 0 - } - }, - "size": 1, - "type": "struct" - }, - "starkware.starknet.common.syscalls.storage_read.ImplicitArgs": { - "full_name": "starkware.starknet.common.syscalls.storage_read.ImplicitArgs", - "members": { - "syscall_ptr": { - "cairo_type": "felt*", - "offset": 0 - } - }, - "size": 1, - "type": "struct" - }, - "starkware.starknet.common.syscalls.storage_read.Return": { - "cairo_type": "(value: felt)", - "type": "type_definition" - }, - "starkware.starknet.common.syscalls.storage_read.SIZEOF_LOCALS": { - "type": "const", - "value": 0 - }, - "starkware.starknet.common.syscalls.storage_read.syscall_ptr": { - "cairo_type": "felt*", - "full_name": "starkware.starknet.common.syscalls.storage_read.syscall_ptr", - "references": [ - { - "ap_tracking_data": { - "group": 7, - "offset": 0 - }, - "pc": 51, - "value": "[cast(fp + (-4), felt**)]" - }, - { - "ap_tracking_data": { - "group": 7, - "offset": 1 - }, - "pc": 55, - "value": "cast([fp + (-4)] + 3, felt*)" - } - ], - "type": "reference" - }, - "starkware.starknet.common.syscalls.storage_write": { - "decorators": [], - "pc": 59, - "type": "function" - }, - "starkware.starknet.common.syscalls.storage_write.Args": { - "full_name": "starkware.starknet.common.syscalls.storage_write.Args", - "members": { - "address": { - "cairo_type": "felt", - "offset": 0 - }, - "value": { - "cairo_type": "felt", - "offset": 1 - } - }, - "size": 2, - "type": "struct" - }, - "starkware.starknet.common.syscalls.storage_write.ImplicitArgs": { - "full_name": "starkware.starknet.common.syscalls.storage_write.ImplicitArgs", - "members": { - "syscall_ptr": { - "cairo_type": "felt*", - "offset": 0 - } - }, - "size": 1, - "type": "struct" - }, - "starkware.starknet.common.syscalls.storage_write.Return": { - "cairo_type": "()", - "type": "type_definition" - }, - "starkware.starknet.common.syscalls.storage_write.SIZEOF_LOCALS": { - "type": "const", - "value": 0 - }, - "starkware.starknet.common.syscalls.storage_write.syscall_ptr": { - "cairo_type": "felt*", - "full_name": "starkware.starknet.common.syscalls.storage_write.syscall_ptr", - "references": [ - { - "ap_tracking_data": { - "group": 8, - "offset": 0 - }, - "pc": 59, - "value": "[cast(fp + (-5), felt**)]" - }, - { - "ap_tracking_data": { - "group": 8, - "offset": 1 - }, - "pc": 64, - "value": "cast([fp + (-5)] + 3, felt*)" - } - ], - "type": "reference" - }, - "starkware.starknet.core.os.contract_address.contract_address.CONTRACT_ADDRESS_PREFIX": { - "type": "const", - "value": 523065374597054866729014270389667305596563390979550329787219 - }, - "starkware.starknet.core.os.contract_address.contract_address.HashBuiltin": { - "destination": "starkware.cairo.common.cairo_builtins.HashBuiltin", - "type": "alias" - }, - "starkware.starknet.core.os.contract_address.contract_address.get_contract_address": { - "decorators": [], - "pc": 225, - "type": "function" - }, - "starkware.starknet.core.os.contract_address.contract_address.get_contract_address.Args": { - "full_name": "starkware.starknet.core.os.contract_address.contract_address.get_contract_address.Args", - "members": { - "class_hash": { - "cairo_type": "felt", - "offset": 1 - }, - "constructor_calldata": { - "cairo_type": "felt*", - "offset": 3 - }, - "constructor_calldata_size": { - "cairo_type": "felt", - "offset": 2 - }, - "deployer_address": { - "cairo_type": "felt", - "offset": 4 - }, - "salt": { - "cairo_type": "felt", - "offset": 0 - } - }, - "size": 5, - "type": "struct" - }, - "starkware.starknet.core.os.contract_address.contract_address.get_contract_address.ImplicitArgs": { - "full_name": "starkware.starknet.core.os.contract_address.contract_address.get_contract_address.ImplicitArgs", - "members": { - "hash_ptr": { - "cairo_type": "starkware.cairo.common.cairo_builtins.HashBuiltin*", - "offset": 0 - }, - "range_check_ptr": { - "cairo_type": "felt", - "offset": 1 - } - }, - "size": 2, - "type": "struct" - }, - "starkware.starknet.core.os.contract_address.contract_address.get_contract_address.Return": { - "cairo_type": "(contract_address: felt)", - "type": "type_definition" - }, - "starkware.starknet.core.os.contract_address.contract_address.get_contract_address.SIZEOF_LOCALS": { - "type": "const", - "value": 0 - }, - "starkware.starknet.core.os.contract_address.contract_address.hash_finalize": { - "destination": "starkware.cairo.common.hash_state.hash_finalize", - "type": "alias" - }, - "starkware.starknet.core.os.contract_address.contract_address.hash_init": { - "destination": "starkware.cairo.common.hash_state.hash_init", - "type": "alias" - }, - "starkware.starknet.core.os.contract_address.contract_address.hash_update": { - "destination": "starkware.cairo.common.hash_state.hash_update", - "type": "alias" - }, - "starkware.starknet.core.os.contract_address.contract_address.hash_update_single": { - "destination": "starkware.cairo.common.hash_state.hash_update_single", - "type": "alias" - }, - "starkware.starknet.core.os.contract_address.contract_address.hash_update_with_hashchain": { - "destination": "starkware.cairo.common.hash_state.hash_update_with_hashchain", - "type": "alias" - }, - "starkware.starknet.core.os.contract_address.contract_address.normalize_address": { - "destination": "starkware.starknet.common.storage.normalize_address", - "type": "alias" - } - }, - "main_scope": "__main__", - "prime": "0x800000000000011000000000000000000000000000000000000000000000001", - "reference_manager": { - "references": [ - { - "ap_tracking_data": { - "group": 4, - "offset": 0 - }, - "pc": 15, - "value": "[cast(fp + (-7), felt**)]" - }, - { - "ap_tracking_data": { - "group": 5, - "offset": 0 - }, - "pc": 27, - "value": "[cast(fp + (-7), felt**)]" - }, - { - "ap_tracking_data": { - "group": 6, - "offset": 0 - }, - "pc": 39, - "value": "[cast(fp + (-8), felt**)]" - }, - { - "ap_tracking_data": { - "group": 7, - "offset": 0 - }, - "pc": 51, - "value": "[cast(fp + (-4), felt**)]" - }, - { - "ap_tracking_data": { - "group": 8, - "offset": 0 - }, - "pc": 59, - "value": "[cast(fp + (-5), felt**)]" - }, - { - "ap_tracking_data": { - "group": 9, - "offset": 0 - }, - "pc": 67, - "value": "[cast(fp + (-7), felt**)]" - }, - { - "ap_tracking_data": { - "group": 10, - "offset": 0 - }, - "pc": 77, - "value": "[cast(fp + (-3), felt*)]" - }, - { - "ap_tracking_data": { - "group": 10, - "offset": 0 - }, - "pc": 77, - "value": "[cast([fp + (-4)], felt*)]" - }, - { - "ap_tracking_data": { - "group": 10, - "offset": 0 - }, - "pc": 77, - "value": "[cast([fp + (-4)] + 1, felt*)]" - }, - { - "ap_tracking_data": { - "group": 11, - "offset": 0 - }, - "pc": 90, - "value": "[cast(fp + (-3), felt*)]" - }, - { - "ap_tracking_data": { - "group": 11, - "offset": 1 - }, - "pc": 92, - "value": "[cast(ap + (-1), felt*)]" - }, - { - "ap_tracking_data": { - "group": 11, - "offset": 2 - }, - "pc": 110, - "value": "[cast(ap + (-1), felt*)]" - }, - { - "ap_tracking_data": { - "group": 41, - "offset": 0 - }, - "pc": 453, - "value": "[cast(fp + (-3), felt*)]" - }, - { - "ap_tracking_data": { - "group": 41, - "offset": 1 - }, - "pc": 455, - "value": "[cast(fp, felt*)]" - } - ] - } - } -} \ No newline at end of file diff --git a/cairo-contracts/src/accounts/argent/ArgentAccount.cairo b/cairo-contracts/src/accounts/argent/ArgentAccount.cairo deleted file mode 100644 index 5548e6bf04..0000000000 --- a/cairo-contracts/src/accounts/argent/ArgentAccount.cairo +++ /dev/null @@ -1,398 +0,0 @@ -%lang starknet - -from starkware.cairo.common.cairo_builtins import HashBuiltin, SignatureBuiltin, EcOpBuiltin -from starkware.cairo.common.alloc import alloc -from starkware.cairo.common.math import assert_not_zero -from starkware.starknet.common.syscalls import get_tx_info, library_call, get_contract_address - -from src.accounts.argent.calls import CallArray, execute_multicall - -from src.accounts.argent.library import ( - ArgentModel, - assert_only_self, - assert_correct_tx_version, - assert_non_reentrant, - assert_initialized, - assert_no_self_call, -) - -// -// @title ArgentAccount -// @author Argent Labs -// @notice Main account for Argent on Starknet -// - -// /////////////////// -// CONSTANTS -// /////////////////// - -const NAME = 'ArgentAccount'; -const VERSION = '0.2.4'; - -// /////////////////// -// EVENTS -// /////////////////// - -@event -func account_created(account: felt, key: felt, guardian: felt) { -} - -@event -func transaction_executed(hash: felt, response_len: felt, response: felt*) { -} - -// /////////////////// -// ACCOUNT INTERFACE -// /////////////////// - -@external -func __validate__{ - syscall_ptr: felt*, - pedersen_ptr: HashBuiltin*, - ecdsa_ptr: SignatureBuiltin*, - ec_op_ptr: EcOpBuiltin*, - range_check_ptr, -}(call_array_len: felt, call_array: CallArray*, calldata_len: felt, calldata: felt*) { - alloc_locals; - - // make sure the account is initialized - assert_initialized(); - - // get the tx info - let (tx_info) = get_tx_info(); - - if (call_array_len == 1) { - if (call_array[0].to == tx_info.account_contract_address) { - // a * b == 0 --> a == 0 OR b == 0 - tempvar signer_condition = ( - call_array[0].selector - ArgentModel.ESCAPE_GUARDIAN_SELECTOR - ) * (call_array[0].selector - ArgentModel.TRIGGER_ESCAPE_GUARDIAN_SELECTOR); - tempvar guardian_condition = ( - call_array[0].selector - ArgentModel.ESCAPE_SIGNER_SELECTOR - ) * (call_array[0].selector - ArgentModel.TRIGGER_ESCAPE_SIGNER_SELECTOR); - if (signer_condition == 0) { - // validate signer signature - ArgentModel.validate_signer_signature( - tx_info.transaction_hash, tx_info.signature_len, tx_info.signature - ); - return (); - } - if (guardian_condition == 0) { - // validate guardian signature - ArgentModel.validate_guardian_signature( - tx_info.transaction_hash, tx_info.signature_len, tx_info.signature - ); - return (); - } - with_attr error_message("argent: forbidden call") { - assert_not_zero( - call_array[0].selector - ArgentModel.EXECUTE_AFTER_UPGRADE_SELECTOR - ); - } - } - } else { - // make sure no call is to the account - assert_no_self_call(tx_info.account_contract_address, call_array_len, call_array); - } - // validate signer and guardian signatures - ArgentModel.validate_signer_signature( - tx_info.transaction_hash, tx_info.signature_len, tx_info.signature - ); - ArgentModel.validate_guardian_signature( - tx_info.transaction_hash, tx_info.signature_len - 2, tx_info.signature + 2 - ); - - return (); -} - -@external -@raw_output -func __execute__{syscall_ptr: felt*, pedersen_ptr: HashBuiltin*, range_check_ptr}( - call_array_len: felt, call_array: CallArray*, calldata_len: felt, calldata: felt* -) -> (retdata_size: felt, retdata: felt*) { - alloc_locals; - - let (tx_info) = get_tx_info(); - - // block transaction with version != 1 or QUERY - assert_correct_tx_version(tx_info.version); - - // no reentrant call to prevent signature reutilization - assert_non_reentrant(); - - // execute calls - let (retdata_len, retdata) = execute_multicall(call_array_len, call_array, calldata); - - // emit event - transaction_executed.emit( - hash=tx_info.transaction_hash, response_len=retdata_len, response=retdata - ); - return (retdata_size=retdata_len, retdata=retdata); -} - -@external -func __validate_declare__{ - syscall_ptr: felt*, - pedersen_ptr: HashBuiltin*, - ecdsa_ptr: SignatureBuiltin*, - ec_op_ptr: EcOpBuiltin*, - range_check_ptr, -}(class_hash: felt) { - alloc_locals; - // get the tx info - let (tx_info) = get_tx_info(); - // validate signatures - ArgentModel.validate_signer_signature( - tx_info.transaction_hash, tx_info.signature_len, tx_info.signature - ); - ArgentModel.validate_guardian_signature( - tx_info.transaction_hash, tx_info.signature_len - 2, tx_info.signature + 2 - ); - return (); -} - -@raw_input -@external -func __validate_deploy__{ - syscall_ptr: felt*, - pedersen_ptr: HashBuiltin*, - ecdsa_ptr: SignatureBuiltin*, - ec_op_ptr: EcOpBuiltin*, - range_check_ptr, -}(selector: felt, calldata_size: felt, calldata: felt*) { - alloc_locals; - // get the tx info - let (tx_info) = get_tx_info(); - // validate signatures - ArgentModel.validate_signer_signature( - tx_info.transaction_hash, tx_info.signature_len, tx_info.signature - ); - ArgentModel.validate_guardian_signature( - tx_info.transaction_hash, tx_info.signature_len - 2, tx_info.signature + 2 - ); - return (); -} - -@view -func isValidSignature{ - syscall_ptr: felt*, pedersen_ptr: HashBuiltin*, ec_op_ptr: EcOpBuiltin*, range_check_ptr -}(hash: felt, sig_len: felt, sig: felt*) -> (isValid: felt) { - let (isValid) = ArgentModel.is_valid_signature(hash, sig_len, sig); - return (isValid=isValid); -} - -@view -func supportsInterface{syscall_ptr: felt*, pedersen_ptr: HashBuiltin*, range_check_ptr}( - interfaceId: felt -) -> (success: felt) { - let (success) = ArgentModel.supports_interface(interfaceId); - return (success=success); -} - -// /////////////////// -// EXTERNAL FUNCTIONS -// /////////////////// - -// @dev Initialises the account with the signer and an optional guardian. -// Must be called immediately after the account is deployed. -// @param signer The signer public key -// @param guardian The guardian public key -@external -func initialize{syscall_ptr: felt*, pedersen_ptr: HashBuiltin*, range_check_ptr}( - signer: felt, guardian: felt -) { - ArgentModel.initialize(signer, guardian); - let (self) = get_contract_address(); - account_created.emit(account=self, key=signer, guardian=guardian); - return (); -} - -// @dev Upgrades the implementation of the account and delegate calls {execute_after_upgrade} if additional data is provided. -// Must be called via {__execute__} and authorised by the signer and a guardian. -// @param implementation The class hash of the new implementation -// @param calldata The calldata to pass to {execute_after_upgrade} -// @return retdata The return of the library call to {execute_after_upgrade} -@external -func upgrade{syscall_ptr: felt*, pedersen_ptr: HashBuiltin*, range_check_ptr}( - implementation: felt, calldata_len: felt, calldata: felt* -) -> (retdata_len: felt, retdata: felt*) { - // upgrades the implementation - ArgentModel.upgrade(implementation); - // library call to implementation.execute_after_upgrade - let (retdata_size: felt, retdata: felt*) = library_call( - class_hash=implementation, - function_selector=ArgentModel.EXECUTE_AFTER_UPGRADE_SELECTOR, - calldata_size=calldata_len, - calldata=calldata, - ); - return (retdata_len=retdata_size, retdata=retdata); -} - -// @dev Logic or multicall to execute after an upgrade. -// Can only be called by the account after a call to {upgrade}. -// @param call_array The multicall to execute -// @param calldata The calldata associated to the multicall -// @return retdata An array containing the output of the calls -@external -func execute_after_upgrade{syscall_ptr: felt*, pedersen_ptr: HashBuiltin*, range_check_ptr}( - call_array_len: felt, call_array: CallArray*, calldata_len: felt, calldata: felt* -) -> (retdata_len: felt, retdata: felt*) { - alloc_locals; - // only self - assert_only_self(); - // only calls to external contract - let (self) = get_contract_address(); - assert_no_self_call(self, call_array_len, call_array); - // execute calls - let (retdata_len, retdata) = execute_multicall(call_array_len, call_array, calldata); - return (retdata_len=retdata_len, retdata=retdata); -} - -// @dev Changes the signer. -// Must be called via {__execute__} and authorised by the signer and a guardian. -// @param newSigner The public key of the new signer -@external -func changeSigner{syscall_ptr: felt*, pedersen_ptr: HashBuiltin*, range_check_ptr}( - newSigner: felt -) { - ArgentModel.change_signer(newSigner); - return (); -} - -// @dev Changes the guardian. -// Must be called via {__execute__} and authorised by the signer and a guardian. -// @param newGuardian The public key of the new guardian -@external -func changeGuardian{syscall_ptr: felt*, pedersen_ptr: HashBuiltin*, range_check_ptr}( - newGuardian: felt -) { - ArgentModel.change_guardian(newGuardian); - return (); -} - -// @dev Changes the guardian backup. -// Must be called via {__execute__} and authorised by the signer and a guardian. -// @param newGuardian The public key of the new guardian backup -@external -func changeGuardianBackup{syscall_ptr: felt*, pedersen_ptr: HashBuiltin*, range_check_ptr}( - newGuardian: felt -) { - ArgentModel.change_guardian_backup(newGuardian); - return (); -} - -// @dev Triggers the escape of the guardian when it is lost or compromised. -// Must be called via {__execute__} and authorised by the signer alone. -// Can override an ongoing escape of the signer. -@external -func triggerEscapeGuardian{syscall_ptr: felt*, pedersen_ptr: HashBuiltin*, range_check_ptr}() { - ArgentModel.trigger_escape_guardian(); - return (); -} - -// @dev Triggers the escape of the signer when it is lost or compromised. -// Must be called via {__execute__} and authorised by a guardian alone. -// Cannot override an ongoing escape of the guardian. -@external -func triggerEscapeSigner{syscall_ptr: felt*, pedersen_ptr: HashBuiltin*, range_check_ptr}() { - ArgentModel.trigger_escape_signer(); - return (); -} - -// @dev Cancels an ongoing escape if any. -// Must be called via {__execute__} and authorised by the signer and a guardian. -@external -func cancelEscape{syscall_ptr: felt*, pedersen_ptr: HashBuiltin*, range_check_ptr}() { - ArgentModel.cancel_escape(); - return (); -} - -// @dev Escapes the guardian after the escape period of 7 days. -// Must be called via {__execute__} and authorised by the signer alone. -// @param newGuardian The public key of the new guardian -@external -func escapeGuardian{syscall_ptr: felt*, pedersen_ptr: HashBuiltin*, range_check_ptr}( - newGuardian: felt -) { - ArgentModel.escape_guardian(newGuardian); - return (); -} - -// @dev Escapes the signer after the escape period of 7 days. -// Must be called via {__execute__} and authorised by a guardian alone. -// @param newSigner The public key of the new signer -@external -func escapeSigner{syscall_ptr: felt*, pedersen_ptr: HashBuiltin*, range_check_ptr}( - newSigner: felt -) { - ArgentModel.escape_signer(newSigner); - return (); -} - -// /////////////////// -// VIEW FUNCTIONS -// /////////////////// - -// @dev Gets the current signer -// @return signer The public key of the signer -@view -func getSigner{syscall_ptr: felt*, pedersen_ptr: HashBuiltin*, range_check_ptr}() -> ( - signer: felt -) { - let (res) = ArgentModel.get_signer(); - return (signer=res); -} - -// @dev Gets the current guardian -// @return guardian The public key of the guardian -@view -func getGuardian{syscall_ptr: felt*, pedersen_ptr: HashBuiltin*, range_check_ptr}() -> ( - guardian: felt -) { - let (res) = ArgentModel.get_guardian(); - return (guardian=res); -} - -// @dev Gets the current guardian backup -// @return guardianBackup The public key of the guardian backup -@view -func getGuardianBackup{syscall_ptr: felt*, pedersen_ptr: HashBuiltin*, range_check_ptr}() -> ( - guardianBackup: felt -) { - let (res) = ArgentModel.get_guardian_backup(); - return (guardianBackup=res); -} - -// @dev Gets the details of the ongoing escape -// @return activeAt The timestamp at which the escape can be executed -// @return type The type of the ongoing escape: 0=no escape, 1=guardian escape, 2=signer escape -@view -func getEscape{syscall_ptr: felt*, pedersen_ptr: HashBuiltin*, range_check_ptr}() -> ( - activeAt: felt, type: felt -) { - let (activeAt, type) = ArgentModel.get_escape(); - return (activeAt=activeAt, type=type); -} - -// @dev Gets the version of the account implementation -// @return version The current version as a short string -@view -func getVersion() -> (version: felt) { - return (version=VERSION); -} - -// @dev Gets the name of the account implementation -// @return name The name as a short string -@view -func getName() -> (name: felt) { - return (name=NAME); -} - -// @dev DEPRECATED: Remove when isValidSignature() is widely used -@view -func is_valid_signature{ - syscall_ptr: felt*, pedersen_ptr: HashBuiltin*, ec_op_ptr: EcOpBuiltin*, range_check_ptr -}(hash: felt, sig_len: felt, sig: felt*) -> (is_valid: felt) { - let (is_valid) = ArgentModel.is_valid_signature(hash, sig_len, sig); - return (is_valid=is_valid); -} diff --git a/cairo-contracts/src/counter.cairo b/cairo-contracts/src/counter.cairo deleted file mode 100644 index ad2db442d5..0000000000 --- a/cairo-contracts/src/counter.cairo +++ /dev/null @@ -1,26 +0,0 @@ -// Declare this file as a Starknet contract. -%lang starknet - -from starkware.cairo.common.cairo_builtins import HashBuiltin - -// Define a storage variable. -@storage_var -func balance() -> (res: felt) { -} - -// Increases the balance by the given amount. -@external -func increase_balance{syscall_ptr: felt*, pedersen_ptr: HashBuiltin*, range_check_ptr}( - amount: felt -) { - let (res) = balance.read(); - balance.write(res + amount); - return (); -} - -// Returns the current balance. -@view -func get_balance{syscall_ptr: felt*, pedersen_ptr: HashBuiltin*, range_check_ptr}() -> (res: felt) { - let (res) = balance.read(); - return (res=res); -} diff --git a/cairo-contracts/src/test_contracts/send_message.cairo b/cairo-contracts/src/test_contracts/send_message.cairo deleted file mode 100644 index 5540ad94e5..0000000000 --- a/cairo-contracts/src/test_contracts/send_message.cairo +++ /dev/null @@ -1,10 +0,0 @@ -%lang starknet - -from starkware.starknet.common.messages import send_message_to_l1 -from starkware.cairo.common.alloc import alloc - -@external -func send_message_l2_to_l1{syscall_ptr : felt*}(to_address: felt, payload_len: felt, payload: felt*) { - send_message_to_l1(to_address, payload_len, payload); - return (); -} diff --git a/cairo-contracts/src/test_contracts/test.cairo b/cairo-contracts/src/test_contracts/test.cairo deleted file mode 100644 index ccdb69102f..0000000000 --- a/cairo-contracts/src/test_contracts/test.cairo +++ /dev/null @@ -1,188 +0,0 @@ -%lang starknet - -from starkware.cairo.common.bool import FALSE -from starkware.cairo.common.cairo_builtins import BitwiseBuiltin, HashBuiltin -from starkware.starknet.common.syscalls import ( - storage_read, - storage_write, - library_call, - deploy, - call_contract, -) -from starkware.starknet.core.os.contract_address.contract_address import get_contract_address - -@event -func Event(value: felt) { -} - -@storage_var -func number_map(key: felt) -> (value: felt) { -} - -@constructor -func constructor{syscall_ptr: felt*}(address: felt, value: felt) { - storage_write(address=address, value=value); - return (); -} - -@external -func without_arg() { - return (); -} - -@external -func emit_event{syscall_ptr: felt*, range_check_ptr}() { - Event.emit(1); - return (); -} - -@external -func with_arg(num: felt) { - assert num = 25; - return (); -} - -@external -func return_result(num: felt) -> (result: felt) { - return (result=num); -} - -@external -func bitwise_and{bitwise_ptr: BitwiseBuiltin*}(x: felt, y: felt) { - bitwise_ptr.x = x; - bitwise_ptr.y = y; - let x_and_y = bitwise_ptr.x_and_y; - let x_xor_y = bitwise_ptr.x_xor_y; - let x_or_y = bitwise_ptr.x_or_y; - let bitwise_ptr = bitwise_ptr + BitwiseBuiltin.SIZE; - assert x_and_y = 15; - return (); -} - -@external -func sqrt{range_check_ptr}(value: felt) { - alloc_locals; - local root: felt; - - %{ - from starkware.python.math_utils import isqrt - value = ids.value % PRIME - assert value < 2 ** 250, f"value={value} is outside of the range [0, 2**250)." - assert 2 ** 250 < PRIME - ids.root = isqrt(value) - %} - - assert root = 9; - return (); -} - -@external -func test_storage_read_write{syscall_ptr: felt*}(address: felt, value: felt) -> (result: felt) { - storage_write(address=address, value=value); - let (read_value) = storage_read(address=address); - return (result=read_value); -} - -@l1_handler -func test_l1_handler_store_under_caller_address{syscall_ptr: felt*}(from_address: felt, value: felt) { - storage_write(address=from_address, value=value); - return (); -} - -@external -@raw_output -func test_library_call{syscall_ptr: felt*}( - class_hash: felt, selector: felt, calldata_len: felt, calldata: felt* -) -> (retdata_size: felt, retdata: felt*) { - let (retdata_size: felt, retdata: felt*) = library_call( - class_hash=class_hash, - function_selector=selector, - calldata_size=calldata_len, - calldata=calldata, - ); - return (retdata_size=retdata_size, retdata=retdata); -} - -@external -func test_nested_library_call{syscall_ptr: felt*}( - class_hash: felt, lib_selector: felt, nested_selector: felt, calldata_len: felt, calldata: felt* -) -> (result: felt) { - alloc_locals; - assert calldata_len = 2; - local nested_library_calldata: felt* = new (class_hash, nested_selector, 2, - calldata[0] + 1, calldata[1] + 1); - let (retdata_size: felt, retdata: felt*) = library_call( - class_hash=class_hash, - function_selector=lib_selector, - calldata_size=5, - calldata=nested_library_calldata, - ); - - let (retdata_size: felt, retdata: felt*) = library_call( - class_hash=class_hash, - function_selector=nested_selector, - calldata_size=calldata_len, - calldata=calldata, - ); - - return (result=0); -} - -@external -@raw_output -func test_call_contract{syscall_ptr: felt*}( - contract_address: felt, function_selector: felt, calldata_len: felt, calldata: felt* -) -> (retdata_size: felt, retdata: felt*) { - let (retdata_size: felt, retdata: felt*) = call_contract( - contract_address=contract_address, - function_selector=function_selector, - calldata_size=calldata_len, - calldata=calldata, - ); - return (retdata_size=retdata_size, retdata=retdata); -} - -@external -func test_deploy{syscall_ptr: felt*}( - class_hash: felt, - contract_address_salt: felt, - constructor_calldata_len: felt, - constructor_calldata: felt*, - deploy_from_zero: felt, -) -> (contract_address: felt) { - let (contract_address) = deploy( - class_hash=class_hash, - contract_address_salt=contract_address_salt, - constructor_calldata_size=constructor_calldata_len, - constructor_calldata=constructor_calldata, - deploy_from_zero=deploy_from_zero, - ); - return (contract_address=contract_address); -} - -@external -func test_storage_var{syscall_ptr: felt*, pedersen_ptr: HashBuiltin*, range_check_ptr}() { - number_map.write(key=1, value=39); - let (val) = number_map.read(key=1); - assert val = 39; - return (); -} - -@external -func test_contract_address{pedersen_ptr: HashBuiltin*, range_check_ptr}( - salt: felt, - class_hash: felt, - constructor_calldata_len: felt, - constructor_calldata: felt*, - deployer_address: felt, -) -> (contract_address: felt) { - let (contract_address) = get_contract_address{hash_ptr=pedersen_ptr}( - salt=salt, - class_hash=class_hash, - constructor_calldata_size=constructor_calldata_len, - constructor_calldata=constructor_calldata, - deployer_address=deployer_address, - ); - - return (contract_address=contract_address); -} diff --git a/crates/client/commitment-state-diff/src/lib.rs b/crates/client/commitment-state-diff/src/lib.rs index c41d7a237e..9f2626ca6e 100644 --- a/crates/client/commitment-state-diff/src/lib.rs +++ b/crates/client/commitment-state-diff/src/lib.rs @@ -5,8 +5,7 @@ use std::task::Poll; use futures::channel::mpsc; use futures::{Stream, StreamExt}; -use indexmap::IndexMap; -use indexmap::IndexSet; +use indexmap::{IndexMap, IndexSet}; use mp_hashers::HasherT; use mp_storage::{SN_COMPILED_CLASS_HASH_PREFIX, SN_CONTRACT_CLASS_HASH_PREFIX, SN_NONCE_PREFIX, SN_STORAGE_PREFIX}; use pallet_starknet_runtime_api::StarknetRuntimeApi; @@ -242,9 +241,9 @@ pub async fn verify_l2(mut rx: mpsc::Receiver) { // let mut storage_tree = StateCommitmentTree::::default(); // let default_storage_updates = IndexMap::::default(); -// let storage_updates = csd.storage_updates.get(&address).unwrap_or(&default_storage_updates); -// for (key, value) in storage_updates { -// storage_tree.set((*key).into(), (*value).into()); +// let storage_updates = +// csd.storage_updates.get(&address).unwrap_or(&default_storage_updates); for (key, +// value) in storage_updates { storage_tree.set((*key).into(), (*value).into()); // } // let storage_root = storage_tree.commit(); @@ -265,9 +264,9 @@ pub async fn verify_l2(mut rx: mpsc::Receiver) { // .class_hash_to_compiled_class_hash // .iter() // .map(|(_, compiled_class_hash)| { -// calculate_class_commitment_leaf_hash::((*compiled_class_hash).into()) -// }) -// .collect(); +// +// calculate_class_commitment_leaf_hash::((*compiled_class_hash).into()) +// }) .collect(); // calculate_class_commitment_tree_root_hash::(&class_hashes) // }; diff --git a/crates/client/deoxys/Cargo.toml b/crates/client/deoxys/Cargo.toml index d46db9dccd..8dac442d37 100644 --- a/crates/client/deoxys/Cargo.toml +++ b/crates/client/deoxys/Cargo.toml @@ -36,11 +36,11 @@ rodio = { version = "0.17", optional = true } serde = { workspace = true, default-features = true } sp-core = { workspace = true, features = ["std"] } starknet-core = { workspace = true } -starknet-providers = { workspace = true } starknet-ff = { workspace = true, default-features = false, features = [ "alloc", "serde", ] } +starknet-providers = { workspace = true } starknet_api = { workspace = true, default-features = false } tokio = { workspace = true, features = ["macros", "test-util", "parking_lot"] } url = { workspace = true } diff --git a/crates/client/deoxys/src/state_updates.rs b/crates/client/deoxys/src/state_updates.rs index fe49353b90..b3357b85a9 100644 --- a/crates/client/deoxys/src/state_updates.rs +++ b/crates/client/deoxys/src/state_updates.rs @@ -262,7 +262,9 @@ where )); for storage_diff in diffs { let storage_key = StarknetStorageKey(PatriciaKey( - Felt252Wrapper::from(storage_diff.key).try_into().map_err(|_| BuildCommitmentStateDiffError::ConversionError)?, + Felt252Wrapper::from(storage_diff.key) + .try_into() + .map_err(|_| BuildCommitmentStateDiffError::ConversionError)?, )); let value = storage_diff.value; @@ -270,14 +272,18 @@ where Entry::Occupied(mut entry) => { entry.get_mut().insert( storage_key, - Felt252Wrapper::from(value).try_into().map_err(|_| BuildCommitmentStateDiffError::ConversionError)?, + Felt252Wrapper::from(value) + .try_into() + .map_err(|_| BuildCommitmentStateDiffError::ConversionError)?, ); } Entry::Vacant(entry) => { let mut contract_storage = IndexMap::default(); contract_storage.insert( storage_key, - Felt252Wrapper::from(value).try_into().map_err(|_| BuildCommitmentStateDiffError::ConversionError)?, + Felt252Wrapper::from(value) + .try_into() + .map_err(|_| BuildCommitmentStateDiffError::ConversionError)?, ); entry.insert(contract_storage); } @@ -300,7 +306,9 @@ where let contract_address = ContractAddress(PatriciaKey( Felt252Wrapper::from(*nonce.0).try_into().map_err(|_| BuildCommitmentStateDiffError::ConversionError)?, )); - let nonce_value = Nonce(Felt252Wrapper::from(*nonce.1).try_into().map_err(|_| BuildCommitmentStateDiffError::ConversionError)?); + let nonce_value = Nonce( + Felt252Wrapper::from(*nonce.1).try_into().map_err(|_| BuildCommitmentStateDiffError::ConversionError)?, + ); commitment_state_diff.address_to_nonce.insert(contract_address, nonce_value); } diff --git a/crates/client/rpc/src/lib.rs b/crates/client/rpc/src/lib.rs index 8d94f7ed95..0808661440 100644 --- a/crates/client/rpc/src/lib.rs +++ b/crates/client/rpc/src/lib.rs @@ -47,11 +47,12 @@ use starknet_api::transaction::Calldata; use starknet_core::types::{ BlockHashAndNumber, BlockId, BlockTag, BlockWithTxHashes, BlockWithTxs, BroadcastedDeclareTransaction, BroadcastedDeployAccountTransaction, BroadcastedInvokeTransaction, BroadcastedTransaction, ContractClass, - DeclareTransactionReceipt, DeclareTransactionResult, DeployAccountTransactionReceipt, DeployTransactionReceipt, - DeployAccountTransactionResult, EventFilterWithPage, EventsPage, ExecutionResult, FeeEstimate, FieldElement, - FunctionCall, InvokeTransactionReceipt, InvokeTransactionResult, L1HandlerTransactionReceipt, - MaybePendingBlockWithTxHashes, MaybePendingBlockWithTxs, MaybePendingTransactionReceipt, StateDiff, StateUpdate, - SyncStatus, SyncStatusType, Transaction, TransactionExecutionStatus, TransactionFinalityStatus, TransactionReceipt, + DeclareTransactionReceipt, DeclareTransactionResult, DeployAccountTransactionReceipt, + DeployAccountTransactionResult, DeployTransactionReceipt, EventFilterWithPage, EventsPage, ExecutionResult, + FeeEstimate, FieldElement, FunctionCall, InvokeTransactionReceipt, InvokeTransactionResult, + L1HandlerTransactionReceipt, MaybePendingBlockWithTxHashes, MaybePendingBlockWithTxs, + MaybePendingTransactionReceipt, StateDiff, StateUpdate, SyncStatus, SyncStatusType, Transaction, + TransactionExecutionStatus, TransactionFinalityStatus, TransactionReceipt, }; use starknet_core::utils::get_selector_from_name; @@ -506,7 +507,10 @@ where starknet_block .transactions() .iter() - .find(|tx| tx.compute_hash::(chain_id, false, Some(starknet_block.header().block_number)).0 == transaction_hash) + .find(|tx| { + tx.compute_hash::(chain_id, false, Some(starknet_block.header().block_number)).0 + == transaction_hash + }) .map(|tx| to_starknet_core_tx(tx.clone(), transaction_hash)) }; @@ -832,12 +836,13 @@ where let chain_id = self.chain_id()?; let block_hash = starknet_block.header().hash::(); - let actual_status = - if starknet_block.header().block_number <= mc_deoxys::l1::ETHEREUM_STATE_UPDATE.lock().unwrap().block_number.0 { - BlockStatus::AcceptedOnL1.into() - } else { - BlockStatus::AcceptedOnL2.into() - }; + let actual_status = if starknet_block.header().block_number + <= mc_deoxys::l1::ETHEREUM_STATE_UPDATE.lock().unwrap().block_number.0 + { + BlockStatus::AcceptedOnL1.into() + } else { + BlockStatus::AcceptedOnL2.into() + }; let transaction_hashes = if let Some(tx_hashes) = self.get_cached_transaction_hashes(block_hash.into()) { let mut v = Vec::with_capacity(tx_hashes.len()); @@ -851,7 +856,10 @@ where } v } else { - starknet_block.transactions_hashes::(chain_id.0.into(), Some(starknet_block.header().block_number)).map(FieldElement::from).collect() + starknet_block + .transactions_hashes::(chain_id.0.into(), Some(starknet_block.header().block_number)) + .map(FieldElement::from) + .collect() }; let parent_blockhash = starknet_block.header().parent_block_hash; @@ -1076,12 +1084,13 @@ where let starknet_block = get_block_by_block_hash(self.client.as_ref(), substrate_block_hash).unwrap_or_default(); let block_hash = starknet_block.header().hash::(); - let actual_status = - if starknet_block.header().block_number <= mc_deoxys::l1::ETHEREUM_STATE_UPDATE.lock().unwrap().block_number.0 { - BlockStatus::AcceptedOnL1.into() - } else { - BlockStatus::AcceptedOnL2.into() - }; + let actual_status = if starknet_block.header().block_number + <= mc_deoxys::l1::ETHEREUM_STATE_UPDATE.lock().unwrap().block_number.0 + { + BlockStatus::AcceptedOnL1.into() + } else { + BlockStatus::AcceptedOnL2.into() + }; let chain_id = self.chain_id()?; let chain_id = Felt252Wrapper(chain_id.0); @@ -1153,7 +1162,8 @@ where let old_root = if starknet_block.header().block_number > 0 { let parent_block_hash = - (TryInto::::try_into(Felt252Wrapper::from(starknet_block.header().parent_block_hash))).unwrap(); + (TryInto::::try_into(Felt252Wrapper::from(starknet_block.header().parent_block_hash))) + .unwrap(); let substrate_parent_block_hash = self.substrate_block_hash_from_starknet_block(BlockId::Hash(parent_block_hash)).map_err(|e| { error!("'{e}'"); @@ -1162,7 +1172,7 @@ where let parent_block = get_block_by_block_hash(self.client.as_ref(), substrate_parent_block_hash).unwrap_or_default(); - Felt252Wrapper::from(parent_block.header().global_state_root).into() + Felt252Wrapper::from(parent_block.header().global_state_root).into() } else { FieldElement::default() }; @@ -1309,7 +1319,10 @@ where starknet_block .transactions() .iter() - .find(|tx| tx.compute_hash::(chain_id, false, Some(starknet_block.header().block_number)).0 == transaction_hash) + .find(|tx| { + tx.compute_hash::(chain_id, false, Some(starknet_block.header().block_number)).0 + == transaction_hash + }) .map(|tx| to_starknet_core_tx(tx.clone(), transaction_hash)) }; @@ -1482,12 +1495,13 @@ where events_converted.last().unwrap().data[2] }; - let actual_status = - if starknet_block.header().block_number <= mc_deoxys::l1::ETHEREUM_STATE_UPDATE.lock().unwrap().block_number.0 { - TransactionFinalityStatus::AcceptedOnL1.into() - } else { - TransactionFinalityStatus::AcceptedOnL2.into() - }; + let actual_status = if starknet_block.header().block_number + <= mc_deoxys::l1::ETHEREUM_STATE_UPDATE.lock().unwrap().block_number.0 + { + TransactionFinalityStatus::AcceptedOnL1.into() + } else { + TransactionFinalityStatus::AcceptedOnL2.into() + }; let messages = self .client .runtime_api() diff --git a/crates/client/settlement/Cargo.toml b/crates/client/settlement/Cargo.toml index 7d0543245e..47e557bd1d 100644 --- a/crates/client/settlement/Cargo.toml +++ b/crates/client/settlement/Cargo.toml @@ -33,10 +33,10 @@ sp-runtime = { workspace = true, default-features = true } # Starknet mp-block = { workspace = true, default-features = true } mp-digest-log = { workspace = true, features = ["std"] } +mp-felt = { workspace = true, default-features = true } mp-hashers = { workspace = true, default-features = true } mp-messages = { workspace = true, default-features = true } mp-snos-output = { workspace = true, default-features = true } -mp-felt = { workspace = true, default-features = true } mp-transactions = { workspace = true, default-features = true } starknet-crypto = { workspace = true, default-features = true } starknet_api = { workspace = true, default-features = true } diff --git a/crates/client/settlement/src/sync_state.rs b/crates/client/settlement/src/sync_state.rs index df89632870..918ec688e3 100644 --- a/crates/client/settlement/src/sync_state.rs +++ b/crates/client/settlement/src/sync_state.rs @@ -185,7 +185,9 @@ where let fee_token_address = substrate_client.runtime_api().fee_token_address(substrate_hash)?; let config_hash = pedersen_hash_array(&[ - StarkFelt::from(Felt252Wrapper::from(FieldElement::from_byte_slice_be(SN_OS_CONFIG_HASH_VERSION.as_bytes()).unwrap())), + StarkFelt::from(Felt252Wrapper::from( + FieldElement::from_byte_slice_be(SN_OS_CONFIG_HASH_VERSION.as_bytes()).unwrap(), + )), chain_id.into(), fee_token_address.0.0, ]); @@ -257,7 +259,8 @@ where if let Transaction::L1Handler(l1_handler) = tx { messages_to_l2.push(l1_handler.clone().into()); } - let tx_hash = TransactionHash(tx.compute_hash::(chain_id, false, Some(next_block.header().block_number)).into()); + let tx_hash = + TransactionHash(tx.compute_hash::(chain_id, false, Some(next_block.header().block_number)).into()); substrate_client .runtime_api() .get_tx_messages_to_l1(substrate_block_hash, tx_hash)? diff --git a/crates/node/src/commands/run.rs b/crates/node/src/commands/run.rs index 8a0ebac8be..2b0b473f41 100644 --- a/crates/node/src/commands/run.rs +++ b/crates/node/src/commands/run.rs @@ -4,8 +4,8 @@ use std::result::Result as StdResult; use clap::ValueHint::FilePath; use madara_runtime::SealingMode; use mc_deoxys::l2::fetch_genesis_block; -use reqwest::Url; use mc_settlement::SettlementLayer; +use reqwest::Url; use sc_cli::{Result, RpcMethods, RunCmd, SubstrateCli}; use sc_service::BasePath; use serde::{Deserialize, Serialize}; @@ -201,8 +201,9 @@ pub fn run_node(mut cli: Cli) -> Result<()> { l1_endpoint, cache, fetch_block_config, - genesis_block - ).map_err(sc_cli::Error::Service) + genesis_block, + ) + .map_err(sc_cli::Error::Service) }) } diff --git a/crates/node/src/service.rs b/crates/node/src/service.rs index e36bf82aab..88fe5a61e0 100644 --- a/crates/node/src/service.rs +++ b/crates/node/src/service.rs @@ -273,7 +273,7 @@ pub fn new_full( l1_url: Url, cache_more_things: bool, fetch_config: mc_deoxys::FetchConfig, - genesis_block: mp_block::Block + genesis_block: mp_block::Block, ) -> Result { let build_import_queue = if sealing.is_default() { build_aura_grandpa_import_queue } else { build_manual_seal_import_queue }; diff --git a/crates/pallets/starknet/src/lib.rs b/crates/pallets/starknet/src/lib.rs index 1bcba8b0d8..678cf38270 100644 --- a/crates/pallets/starknet/src/lib.rs +++ b/crates/pallets/starknet/src/lib.rs @@ -96,7 +96,7 @@ use mp_transactions::{ }; use sp_runtime::traits::UniqueSaturatedInto; use sp_runtime::DigestItem; -use starknet_api::api_core::{ChainId, CompiledClassHash, ContractAddress, EntryPointSelector, Nonce, ClassHash}; +use starknet_api::api_core::{ChainId, ClassHash, CompiledClassHash, ContractAddress, EntryPointSelector, Nonce}; use starknet_api::block::{BlockNumber, BlockTimestamp}; use starknet_api::deprecated_contract_class::EntryPointType; use starknet_api::hash::StarkFelt; diff --git a/crates/primitives/commitments/src/lib.rs b/crates/primitives/commitments/src/lib.rs index 89009d7493..3050c02ba0 100644 --- a/crates/primitives/commitments/src/lib.rs +++ b/crates/primitives/commitments/src/lib.rs @@ -343,10 +343,21 @@ where /// for details. pub fn calculate_event_hash(event: &Event) -> FieldElement { let keys_hash = H::compute_hash_on_elements( - &event.content.keys.iter().map(|key| FieldElement::from(Felt252Wrapper::from(key.0))).collect::>(), + &event + .content + .keys + .iter() + .map(|key| FieldElement::from(Felt252Wrapper::from(key.0))) + .collect::>(), ); let data_hash = H::compute_hash_on_elements( - &event.content.data.0.iter().map(|data| FieldElement::from(Felt252Wrapper::from(*data))).collect::>(), + &event + .content + .data + .0 + .iter() + .map(|data| FieldElement::from(Felt252Wrapper::from(*data))) + .collect::>(), ); let from_address = FieldElement::from(Felt252Wrapper::from(event.from_address.0.0)); H::compute_hash_on_elements(&[from_address, keys_hash, data_hash]) diff --git a/scripts/da_devnet.sh b/scripts/da_devnet.sh deleted file mode 100755 index 12424e962b..0000000000 --- a/scripts/da_devnet.sh +++ /dev/null @@ -1,69 +0,0 @@ -#!/bin/bash - -# [ethereum, celestia, avail] -DA_LAYER=$1 -MADARA_PATH=$2 - -if [ -z $MADARA_PATH ]; then - MADARA_PATH="$HOME/.madara" -fi - -if [ ! -f "$MADARA_PATH/da-config.json" ]; then - echo "{}" > $MADARA_PATH/da-config.json -fi - -if [ "$DA_LAYER" = "ethereum" ]; then - echo "Ethereum DA Test:" - ./zaun/scripts/sn-base-dev.sh target zaun 2> /dev/null - - echo -e "\t anvil logs -> target/anvil.log" - echo -e "\t to kill anvil -> ./zaun/scripts/sn-base-kill.sh target" -elif [ "$DA_LAYER" = "celestia" ]; then - if ! command -v celestia > /dev/null - then - echo "please install jq" - exit 1 - fi - rm target/celestia.log - echo "Celestia DA Test:" - - celestia light start --core.ip consensus-full-arabica-9.celestia-arabica.com --p2p.network arabica 1>target/celestia.log --keyring.accname da-test 2>&1 & - - sleep 3 - - CELESTIA_JWT=$(celestia light auth admin --p2p.network arabica-9) - jq -r '.auth_token = "'$CELESTIA_JWT'"' $MADARA_PATH/da-config.json > $MADARA_PATH/da-config-tmp.json - mv $MADARA_PATH/da-config-tmp.json $MADARA_PATH/da-config.json - - export CELESTIA_NODE_AUTH_TOKEN=$CELESTIA_JWT - echo "celestia account balance $(celestia rpc state Balance | jq '.result.amount')" -elif [ "$DA_LAYER" = "avail" ]; then - echo "Avail DA Test:" - - if [ ! -d "avail" ]; then - echo "Cloning Avail repository" - git clone https://github.com/availproject/avail 2> /dev/null - fi - - # Navigate to cloned directory - cd avail - - # Check if data-avail binary exists - if [ ! -f "./target/release/data-avail" ]; then - # Build the project - echo "Building repository" - cargo build --release 2> /dev/null - fi - - # End avail if we exit - trap 'pkill -f "data-avail"' EXIT - - # Run data-avail and redirect logs and errors - echo "Launching Avail" - ./target/release/data-avail --dev --tmp --rpc-port 9934 --ws-port 9945 --port 30334 1>../target/avail.log 2> /dev/null & - - # Navigate back to original directory - cd .. - - sleep 5 -fi diff --git a/scripts/stop_da_devnet.sh b/scripts/stop_da_devnet.sh deleted file mode 100755 index 934ac275dc..0000000000 --- a/scripts/stop_da_devnet.sh +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/bash - -# [ethereum, celestia, avail] -DA_LAYER=$1 - -if [ "$DA_LAYER" = "ethereum" ]; then - echo "Killing Anvil:" - ./zaun/scripts/sn-base-kill.sh target -elif [ "$DA_LAYER" = "celestia" ]; then - # TODO: Kill Celestia - echo "Killing Celestia:" -elif [ "$DA_LAYER" = "avail" ]; then - # TODO: Kill Avail - echo "Killing Avail:" -fi diff --git a/starknet-e2e-test/Cargo.toml b/starknet-e2e-test/Cargo.toml deleted file mode 100644 index 15e1525a8b..0000000000 --- a/starknet-e2e-test/Cargo.toml +++ /dev/null @@ -1,46 +0,0 @@ -[package] -name = "starknet-e2e-test" -version = "0.1.0" -edition = "2021" - -[dependencies] -anyhow = "1.0.72" -assert_matches = "1.5.0" -async-trait = "0.1" -ethers = { workspace = true } -ethers-solc = { workspace = true } -flate2 = { workspace = true } -home = "0.5.5" -reqwest = "0.11.18" -rstest = "0.18.1" -serde = { version = "1.0.179", features = ["derive"] } -serde_json = "1.0.107" -tempfile = "3.2" -test-context = "0.1.3" -thiserror = { workspace = true } -tokio = { version = "1.29.1", features = ["rt", "macros", "parking_lot"] } -url = "2.4.1" - -# Starknet -starknet-accounts = { workspace = true } -starknet-contract = { workspace = true } -starknet-core = { workspace = true } -starknet-crypto = { workspace = true } -starknet-ff = { workspace = true } -starknet-providers = { workspace = true } -starknet-signers = { workspace = true } -starknet_api = { workspace = true, default-features = true } - -# Madara -madara-runtime = { workspace = true } -mc-settlement = { workspace = true } -mp-messages = { workspace = true } -mp-snos-output = { workspace = true } - -[[test]] -name = "ethereum_core_contract" -path = "ethereum_core_contract.rs" - -[[test]] -name = "ethereum_e2e_settlement" -path = "ethereum_e2e_settlement.rs" diff --git a/starknet-e2e-test/README.md b/starknet-e2e-test/README.md deleted file mode 100644 index bea602335e..0000000000 --- a/starknet-e2e-test/README.md +++ /dev/null @@ -1,121 +0,0 @@ -# Integration tests - -This crate contains integration tests run against a fully-fledged Madara node. - -In order to run all tests: - -```shell -cargo test --package starknet-e2e-test -- --nocapture -``` - -In order to run a specific test case: - -```shell -cargo test --package starknet-e2e-test -- --nocapture -``` - -## Madara runner - -Sometimes you might want more control over the launched node. Here is how you -can instantiate Madara runner which will run a node and provide you with a -client: - -```rust -use madara_test_runner::{MadaraRunner, Settlement}; - -let madara_client = MadaraRunner::new( - Some(Settlement::Ethereum), - Some(format!("/tmp/madara").into()), -) -.await; -``` - -Available arguments: - -- `settlement` [Optional] - which settlement layer to use (can be - `Settlement::Ethereum` for now) -- `base_path` [Optional] - override Madara base path which is used for storing - configs and other assets - -Note that DA & settlement configs are expected to be stored in "data path" which -is `base_path/chains/` (for tests it's `dev`). - -## Logging - -When you run integration tests for the first time, cargo needs to build the -Madara binary first - it takes some time (depending on your h/w) and you might -see " has been running for over 60 seconds" in your console -which is fine and it will eventually terminate. - -However, if there are some building or launch errors, the process will stuck -(under the hood it will try to reconnect to the node, but the node fails to -start). In order to troubleshoot such issues you can enable Madara logs. Simply -run tests with `MADARA_LOG` environment variable set: - -```shell -MADARA_LOG=1 cargo test --package starknet-rpc-test -- --nocapture -``` - -The logs will be available at: - -- `/target/madara-log/madara-stderr-log.txt` -- `/target/madara-log/madara-stdout-log.txt` - -It can also be helpful if you want to troubleshoot some issue with debug/trace -logs. - -## Parallel instances - -Note that cargo might run tests in parallel meaning that there can be multiple -running Madara instance at a single point of time. In order to avoid concurrent -access to e.g. config files you can override Madara base path and use unique -temporary directories for each instance. - -Here is how you can do that using `test_context` and `tempfile` crate: - -```rust -use tempfile::TempDir; -use test_context::{test_context, AsyncTestContext}; -use async_trait::async_trait; -use madara_node_runner::MadaraRunner; - -struct Context { - pub madara_path: TempDir, -} - -#[async_trait] -impl AsyncTestContext for Context { - async fn setup() -> Self { - let madara_path = TempDir::with_prefix("madara").expect("Failed to create Madara path"); - Self { madara_path } - } - - async fn teardown(self) { - self.madara_path.close().expect("Failed to clean up"); - } -} - -#[test_context(Context)] -#[rstest] -#[tokio::test] -async fn my_test_case(ctx: &mut Context) -> Result<(), anyhow::Error> { - let madara = MadaraRunner::new( - None, - Some(ctx.madara_path.path().into()), - ) - .await; - - todo!() -} -``` - -## Anvil - -By default, integration tests involving Ethereum contracts will try to find -Anvil at `~/.foundry/bin/anvil`. -Alternatively you can specify the Anvil binary location by setting `ANVIL_PATH` -environment variable. - -IMPORTANT: make sure your Anvil version uses a compatiuble `ethers-rs` library -version. -In case of an issue, try to update both dependencies first. diff --git a/starknet-e2e-test/contracts/Makefile b/starknet-e2e-test/contracts/Makefile deleted file mode 100644 index d281ddd542..0000000000 --- a/starknet-e2e-test/contracts/Makefile +++ /dev/null @@ -1,8 +0,0 @@ -.PHONY: artifacts - -artifacts: - mkdir artifacts || true - forge build - forge build --root ../../madara-zaun - cp build/UnsafeProxy.sol/UnsafeProxy.json artifacts/ - cp ../../madara-zaun/out/StarknetValidium.sol/Starknet.json artifacts/ \ No newline at end of file diff --git a/starknet-e2e-test/contracts/README.md b/starknet-e2e-test/contracts/README.md deleted file mode 100644 index aece112c2d..0000000000 --- a/starknet-e2e-test/contracts/README.md +++ /dev/null @@ -1,30 +0,0 @@ -# Solidity contracts - -This folder contains compiled contracts that are used for integration / e2e -tests of Madara L1 <> L2 messaging. - -## Compilation - -First make sure you have -[Foundry](https://book.getfoundry.sh/getting-started/installation) installed. - -Starknet contract sources live in [madara-zaun](../madara-zaun/) folder which is -git submodule pointing at -[zaun repo](https://github.com/keep-starknet-strange/zaun). If you haven't -cloned the submodules together with the Madara repository, run: - -```bash -git submodule update --init -``` - -If `zaun` submodule is out of sync, do: - -```bash -git submodule sync --recursive -``` - -In this folder run: - -```bash -make artifacts -``` diff --git a/starknet-e2e-test/contracts/artifacts/Starknet.json b/starknet-e2e-test/contracts/artifacts/Starknet.json deleted file mode 100644 index 3bcbb0ec80..0000000000 --- a/starknet-e2e-test/contracts/artifacts/Starknet.json +++ /dev/null @@ -1,8228 +0,0 @@ -{ - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "changedBy", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "oldConfigHash", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "newConfigHash", - "type": "uint256" - } - ], - "name": "ConfigHashChanged", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "uint256", - "name": "fromAddress", - "type": "uint256" - }, - { - "indexed": true, - "internalType": "address", - "name": "toAddress", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256[]", - "name": "payload", - "type": "uint256[]" - } - ], - "name": "ConsumedMessageToL1", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "fromAddress", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "toAddress", - "type": "uint256" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "selector", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256[]", - "name": "payload", - "type": "uint256[]" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - } - ], - "name": "ConsumedMessageToL2", - "type": "event" - }, - { - "anonymous": false, - "inputs": [], - "name": "Finalized", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "uint256", - "name": "fromAddress", - "type": "uint256" - }, - { - "indexed": true, - "internalType": "address", - "name": "toAddress", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256[]", - "name": "payload", - "type": "uint256[]" - } - ], - "name": "LogMessageToL1", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "fromAddress", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "toAddress", - "type": "uint256" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "selector", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256[]", - "name": "payload", - "type": "uint256[]" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "fee", - "type": "uint256" - } - ], - "name": "LogMessageToL2", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "acceptedGovernor", - "type": "address" - } - ], - "name": "LogNewGovernorAccepted", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "nominatedGovernor", - "type": "address" - } - ], - "name": "LogNominatedGovernor", - "type": "event" - }, - { - "anonymous": false, - "inputs": [], - "name": "LogNominationCancelled", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "operator", - "type": "address" - } - ], - "name": "LogOperatorAdded", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "operator", - "type": "address" - } - ], - "name": "LogOperatorRemoved", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "removedGovernor", - "type": "address" - } - ], - "name": "LogRemovedGovernor", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes32", - "name": "stateTransitionFact", - "type": "bytes32" - } - ], - "name": "LogStateTransitionFact", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "globalRoot", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "int256", - "name": "blockNumber", - "type": "int256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "blockHash", - "type": "uint256" - } - ], - "name": "LogStateUpdate", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "fromAddress", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "toAddress", - "type": "uint256" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "selector", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256[]", - "name": "payload", - "type": "uint256[]" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - } - ], - "name": "MessageToL2Canceled", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "fromAddress", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "toAddress", - "type": "uint256" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "selector", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256[]", - "name": "payload", - "type": "uint256[]" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - } - ], - "name": "MessageToL2CancellationStarted", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "changedBy", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "oldProgramHash", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "newProgramHash", - "type": "uint256" - } - ], - "name": "ProgramHashChanged", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "toAddress", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "selector", - "type": "uint256" - }, - { - "internalType": "uint256[]", - "name": "payload", - "type": "uint256[]" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - } - ], - "name": "cancelL1ToL2Message", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "configHash", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "fromAddress", - "type": "uint256" - }, - { - "internalType": "uint256[]", - "name": "payload", - "type": "uint256[]" - } - ], - "name": "consumeMessageFromL2", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "finalize", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "getMaxL1MsgFee", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [], - "name": "identify", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "initialize", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "isFinalized", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "isFrozen", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "user", - "type": "address" - } - ], - "name": "isOperator", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "msgHash", - "type": "bytes32" - } - ], - "name": "l1ToL2MessageCancellations", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "l1ToL2MessageNonce", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "msgHash", - "type": "bytes32" - } - ], - "name": "l1ToL2Messages", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "msgHash", - "type": "bytes32" - } - ], - "name": "l2ToL1Messages", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "messageCancellationDelay", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "programHash", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "newOperator", - "type": "address" - } - ], - "name": "registerOperator", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "toAddress", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "selector", - "type": "uint256" - }, - { - "internalType": "uint256[]", - "name": "payload", - "type": "uint256[]" - } - ], - "name": "sendMessageToL2", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "newConfigHash", - "type": "uint256" - } - ], - "name": "setConfigHash", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "delayInSeconds", - "type": "uint256" - } - ], - "name": "setMessageCancellationDelay", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "newProgramHash", - "type": "uint256" - } - ], - "name": "setProgramHash", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "starknetAcceptGovernance", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "starknetCancelNomination", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "user", - "type": "address" - } - ], - "name": "starknetIsGovernor", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "newGovernor", - "type": "address" - } - ], - "name": "starknetNominateNewGovernor", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "governorForRemoval", - "type": "address" - } - ], - "name": "starknetRemoveGovernor", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "toAddress", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "selector", - "type": "uint256" - }, - { - "internalType": "uint256[]", - "name": "payload", - "type": "uint256[]" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - } - ], - "name": "startL1ToL2MessageCancellation", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "stateBlockHash", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "stateBlockNumber", - "outputs": [ - { - "internalType": "int256", - "name": "", - "type": "int256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "stateRoot", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "removedOperator", - "type": "address" - } - ], - "name": "unregisterOperator", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256[]", - "name": "programOutput", - "type": "uint256[]" - } - ], - "name": "updateState", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": { - "object": "0x60a060405234801561001057600080fd5b5030606081901b608052612cee610031600039806109365250612cee6000f3fe6080604052600436106101e35760003560e01c80638303bd8a1161010257806396115bc211610095578063e1f1176d11610064578063e1f1176d14610515578063e37fec251461052a578063e87e73321461053f578063eeb728661461055f576101e3565b806396115bc2146104955780639be446bf146104b5578063a46efaf3146104d5578063c99d397f146104f5576101e3565b80638d4e4083116100d15780638d4e40831461043657806391a66a261461044b578063946be3ed1461046b5780639588eca214610480576101e3565b80638303bd8a146103cc57806384f921cd146103e1578063853e2461146104015780638a9bf09014610421576101e3565b80633e3aa6c51161017a5780636170ff1b116101495780636170ff1b1461034c5780636d70f7ae1461036c57806377c7d7a91461038c5780637a98660b146103ac576101e3565b80633e3aa6c5146102e1578063439fab91146103025780634bb278f31461032257806354eccba414610337576101e3565b806335befa5d116101b657806335befa5d146102755780633682a4501461028a578063382d83e3146102ac5780633d07b336146102c1576101e3565b8063018cccdf146101e857806301a01590146102135780632c9dd5c01461024057806333eeb14714610260575b600080fd5b3480156101f457600080fd5b506101fd610581565b60405161020a919061235d565b60405180910390f35b34801561021f57600080fd5b5061023361022e366004611f37565b6105c6565b60405161020a9190612352565b34801561024c57600080fd5b506101fd61025b3660046120ae565b6105d7565b34801561026c57600080fd5b506102336106ba565b34801561028157600080fd5b506101fd6106bf565b34801561029657600080fd5b506102aa6102a5366004611f37565b6106d2565b005b3480156102b857600080fd5b506101fd610773565b3480156102cd57600080fd5b506102aa6102dc366004611f9a565b610786565b6102f46102ef3660046120f8565b61081a565b60405161020a929190612366565b34801561030e57600080fd5b506102aa61031d366004611fb2565b610934565b34801561032e57600080fd5b506102aa610a7c565b34801561034357600080fd5b506101fd610b14565b34801561035857600080fd5b506101fd610367366004612149565b610b20565b34801561037857600080fd5b50610233610387366004611f37565b610c62565b34801561039857600080fd5b506101fd6103a7366004611f9a565b610c8f565b3480156103b857600080fd5b506101fd6103c7366004612149565b610caa565b3480156103d857600080fd5b506101fd610d61565b3480156103ed57600080fd5b506102aa6103fc366004611f37565b610d84565b34801561040d57600080fd5b506102aa61041c366004611f5a565b610d8d565b34801561042d57600080fd5b506101fd610ef3565b34801561044257600080fd5b50610233610f16565b34801561045757600080fd5b506102aa610466366004611f37565b610f39565b34801561047757600080fd5b506102aa610f42565b34801561048c57600080fd5b506101fd610f4c565b3480156104a157600080fd5b506102aa6104b0366004611f37565b610f5c565b3480156104c157600080fd5b506101fd6104d0366004611f9a565b610ff2565b3480156104e157600080fd5b506101fd6104f0366004611f9a565b610ffc565b34801561050157600080fd5b506102aa610510366004611f9a565b611006565b34801561052157600080fd5b506101fd611059565b34801561053657600080fd5b506102aa61107c565b34801561054b57600080fd5b506102aa61055a366004611f9a565b611084565b34801561056b57600080fd5b50610574611118565b60405161020a91906123a3565b60006105c16040518060400160405280602081526020017f535441524b4e45545f312e305f4d5347494e475f4c31544f4c325f4e4f4e434581525061114f565b905090565b60006105d182611183565b92915050565b60405160009081906105f59086903390869088908290602001612235565b60405160208183030381529060405280519060200120905060006106176111b2565b600083815260209190915260409020541161064d5760405162461bcd60e51b8152600401610644906128ee565b60405180910390fd5b336001600160a01b0316857f7a06c571aa77f34d9706c51e5d8122b5595aebeaa34233bfe866f22befb973b186866040516106899291906122ab565b60405180910390a3600161069b6111b2565b6000838152602091909152604090208054919091039055949350505050565b600090565b60006106c96111d5565b60010154905090565b6106db33611183565b6106f75760405162461bcd60e51b81526004016106449061283c565b61070081610c62565b61077057600161070e61121f565b6001600160a01b0383166000908152602091909152604090819020805460ff191692151592909217909155517f50a18c352ee1c02ffe058e15c2eb6e58be387c81e73cc1e17035286e54c19a5790610767908390612297565b60405180910390a15b50565b600061077d6111d5565b60020154905090565b61078e610f16565b156107ab5760405162461bcd60e51b815260040161064490612819565b6107b433611183565b6107d05760405162461bcd60e51b81526004016106449061283c565b337f393c6beb5756a944b2967f15f31ff671e312e945d7a84fd3bdcfd6b408b2dc796107fa611059565b83604051610809929190612366565b60405180910390a261077081611242565b6000806000341161083d5760405162461bcd60e51b815260040161064490612a3d565b610845610b14565b3411156108645760405162461bcd60e51b8152600401610644906125b0565b600061086e610581565b90506108b26040518060400160405280602081526020017f535441524b4e45545f312e305f4d5347494e475f4c31544f4c325f4e4f4e434581525082600101611260565b8587336001600160a01b03167fdb80dd488acf86d17c747445b0eabb5d57c541d3bd7b6b87af987858e5066b2b888886346040516108f394939291906122e3565b60405180910390a4600061090a8888888886611293565b9050346001016109186112d4565b6000838152602091909152604090205597909650945050505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031630141561097d5760405162461bcd60e51b81526004016106449061267c565b60006109876106ba565b602090810291508101808310156109b05760405162461bcd60e51b81526004016106449061288a565b60006109be82848688612abf565b8101906109cb9190611f37565b90503660006109dc8582888a612abf565b915091506109ea8282610a78565b3660006109f98887818c612abf565b90925090506001600160a01b03851615610a2457610a188583836112f7565b50505050505050610a78565b610a2c61141c565b15610a54578015610a4f5760405162461bcd60e51b81526004016106449061261e565b610a70565b610a5e828261142d565b610a68828261148d565b610a706114e7565b505050505050505b5050565b610a8533611183565b610aa15760405162461bcd60e51b81526004016106449061283c565b610aa9610f16565b15610ac65760405162461bcd60e51b815260040161064490612819565b610ae9604051806060016040528060318152602001612c88603191396001611260565b6040517f6823b073d48d6e3a7d385eeb601452d680e74bb46afe3255a7d778f3a9b1768190600090a1565b670de0b6b3a764000090565b60008486336001600160a01b03167f8abd2ec2e0a10c82f5b60ea00455fa96c41fd144f225fcc52b8d83d94f803ed8878787604051610b61939291906122bf565b60405180910390a46000610b788787878787611293565b90506000610b846112d4565b60008381526020919091526040902054905080610bb35760405162461bcd60e51b81526004016106449061277d565b6000610bbd61153e565b60008481526020919091526040902054905080610bec5760405162461bcd60e51b8152600401610644906129fb565b6000610bf6610d61565b8201905081811015610c1a5760405162461bcd60e51b815260040161064490612510565b80421015610c3a5760405162461bcd60e51b815260040161064490612547565b6000610c446112d4565b60008681526020919091526040902055509198975050505050505050565b6000610c6c61121f565b6001600160a01b0392909216600090815260209290925250604090205460ff1690565b6000610c996112d4565b600092835260205250604090205490565b60008486336001600160a01b03167f2e00dccd686fd6823ec7dc3e125582aa82881b6ff5f6b5a73856e1ea8338a3be878787604051610ceb939291906122bf565b60405180910390a46000610d028787878787611293565b90506000610d0e6112d4565b60008381526020919091526040902054905080610d3d5760405162461bcd60e51b81526004016106449061277d565b42610d4661153e565b60008481526020919091526040902055509695505050505050565b60006105c16040518060600160405280602d8152602001612bf1602d913961114f565b61077081611561565b610d9633610c62565b610db25760405162461bcd60e51b815260040161064490612952565b6000610dbc6111d5565b600101549050610dcc838361163c565b82826004818110610dd957fe5b90506020020135610de8611059565b14610e055760405162461bcd60e51b8152600401610644906124b6565b610e198383610e126111d5565b919061165c565b6005610e396001610e2c85848189612a94565b610e346111b2565b611706565b01610e536000610e4b85848189612a94565b610e346112d4565b01828114610e735760405162461bcd60e51b815260040161064490612746565b6000610e7d6111d5565b90507fd342ddf7a308dec111745b00315c14b7efb2bdae570a6856e088ed0c65a3576c816000015482600101548360020154604051610ebe93929190612a7e565b60405180910390a182600101816001015414610eec5760405162461bcd60e51b8152600401610644906125e7565b5050505050565b60006105c1604051806060016040528060238152602001612bce6023913961114f565b60006105c1604051806060016040528060318152602001612c886031913961114f565b61077081611afb565b610f4a611bf0565b565b6000610f566111d5565b54905090565b610f6533611183565b610f815760405162461bcd60e51b81526004016106449061283c565b610f8a81610c62565b15610770576000610f9961121f565b6001600160a01b0383166000908152602091909152604090819020805460ff191692151592909217909155517fec5f6c3a91a1efb1f9a308bb33c6e9e66bf9090fad0732f127dfdbf516d0625d90610767908390612297565b6000610c9961153e565b6000610c996111b2565b61100e610f16565b1561102b5760405162461bcd60e51b815260040161064490612819565b61103433611183565b6110505760405162461bcd60e51b81526004016106449061283c565b61077081611c45565b60006105c1604051806060016040528060218152602001612c1e6021913961114f565b610f4a611c67565b61108c610f16565b156110a95760405162461bcd60e51b815260040161064490612819565b6110b233611183565b6110ce5760405162461bcd60e51b81526004016106449061283c565b337f600a61c1b32ac42fb2fe76e8fc7582a98106668fc16dcd85567cd3937363e49b6110f8610ef3565b83604051611107929190612366565b60405180910390a261077081611cea565b60408051808201909152601981527f537461726b576172655f537461726b6e65745f323032335f3600000000000000602082015290565b600080826040516020016111639190612216565b60408051601f198184030181529190528051602090910120549392505050565b60008061118e611d0c565b6001600160a01b039390931660009081526020939093525050604090205460ff1690565b60006105c1604051806060016040528060238152602001612c3f60239139611d55565b600080604051806060016040528060278152602001612ba7602791396040516020016112019190612216565b60408051601f19818403018152919052805160209091012092915050565b60006105c1604051806060016040528060288152602001612b4f60289139611d55565b610770604051806060016040528060218152602001612c1e60219139825b6000826040516020016112739190612216565b604051602081830303815290604052805190602001209050818155505050565b6040516000906112b390339088908590899088908a90829060200161225f565b60405160208183030381529060405280519060200120905095945050505050565b60006105c1604051806060016040528060268152602001612c6260269139611d55565b611309836001600160a01b0316611d88565b6113255760405162461bcd60e51b8152600401610644906123d6565b60006060846001600160a01b031663439fab9160e01b858560405160240161134e929190612374565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b031990941693909317909252905161138c9190612216565b600060405180830381855af49150503d80600081146113c7576040519150601f19603f3d011682016040523d82523d6000602084013e6113cc565b606091505b50915091508181906113f15760405162461bcd60e51b815260040161064491906123a3565b5080518190156114145760405162461bcd60e51b815260040161064491906123a3565b505050505050565b6000611426610ef3565b1515905090565b60c0811461144d5760405162461bcd60e51b81526004016106449061242d565b600061145c6020828486612abf565b8101906114699190611f9a565b9050806114885760405162461bcd60e51b8152600401610644906126e3565b505050565b600080600061149a611ed4565b6114a68587018761201f565b93509350935093506114b784611cea565b6114c083611d8e565b6114d2816114cc6111d5565b90611db0565b6114db82611242565b61141462069780611c45565b60006114f1611d0c565b6001810154909150600160a01b900460ff16156115205760405162461bcd60e51b8152600401610644906124e3565b60018101805460ff60a01b1916600160a01b17905561077033611dca565b60006105c1604051806060016040528060308152602001612b7760309139611d55565b61156a33611183565b6115865760405162461bcd60e51b81526004016106449061283c565b336001600160a01b03821614156115af5760405162461bcd60e51b8152600401610644906129a7565b60006115b9611d0c565b90506115c482611183565b6115e05760405162461bcd60e51b8152600401610644906129d5565b6001600160a01b03821660009081526020829052604090819020805460ff19169055517fd75f94825e770b8b512be8e74759e252ad00e102e38f50cce2f7c6f868a2959990611630908490612297565b60405180910390a15050565b60058111610a785760405162461bcd60e51b8152600401610644906127ab565b6001838101805490910190558181600281811061167557fe5b9050602002013583600101541461169e5760405162461bcd60e51b815260040161064490612979565b818160038181106116ab57fe5b60200291909101356002850155503660006116c68484611e50565b915091506116d48282611e6c565b8554146116f35760405162461bcd60e51b815260040161064490612487565b6116fd8282611e8a565b90945550505050565b6000808484600081811061171657fe5b905060200201359050634000000081106117425760405162461bcd60e51b81526004016106449061270f565b6001818101600088611755576004611758565b60025b905060005b82841015611a4a578382018881106117875760405162461bcd60e51b815260040161064490612402565b60008a8a8381811061179557fe5b905060200201359050634000000081106117c15760405162461bcd60e51b81526004016106449061264c565b8181016001018a8111156117e75760405162461bcd60e51b8152600401610644906127e2565b8c156118c55760008c8c8990849261180193929190612a94565b604051602001611812929190612201565b6040516020818303038152906040528051906020012090508c8c60018a0181811061183957fe5b905060200201356001600160a01b03168d8d60008b0181811061185857fe5b905060200201357f4264ac208b5fde633ccdd42e0f12c3d6d443a4f3779bbf886925b94665b63a228f8f60038d0190879261189593929190612a94565b6040516118a39291906122ab565b60405180910390a3600090815260208b90526040902080546001019055611a40565b60008c8c899084926118d993929190612a94565b6040516020016118ea929190612201565b60408051601f1981840301815291815281516020928301206000818152928e90529120549091508061192e5760405162461bcd60e51b8152600401610644906128ee565b600091825260208c9052604082208290559490940160001901938c8c60028a0181811061195757fe5b90506020020135905060608d8d60058b0190859261197793929190612a94565b80806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505090508d8d60038b018181106119c857fe5b905060200201358e8e60018c018181106119de57fe5b905060200201358f8f60008d018181106119f457fe5b905060200201356001600160a01b03167f9592d37825c744e33fa80c469683bbd04d336241bb600b574758efd182abe26a8486604051611a3592919061230a565b60405180910390a450505b955061175d915050565b828414611a695760405162461bcd60e51b81526004016106449061270f565b8015611aed576000336001600160a01b031682604051611a8890612232565b60006040518083038185875af1925050503d8060008114611ac5576040519150601f19603f3d011682016040523d82523d6000602084013e611aca565b606091505b5050905080611aeb5760405162461bcd60e51b815260040161064490612925565b505b509198975050505050505050565b611b0433611183565b611b205760405162461bcd60e51b81526004016106449061283c565b6000611b2a611d0c565b90506001600160a01b038216611b525760405162461bcd60e51b815260040161064490612865565b611b5b82611183565b15611b785760405162461bcd60e51b81526004016106449061245d565b60018101546001600160a01b031615611ba35760405162461bcd60e51b8152600401610644906128b7565b6001810180546001600160a01b0319166001600160a01b0384161790556040517f6166272c8d3f5f579082f2827532732f97195007983bb5b83ac12c56700b01a690611630908490612297565b6000611bfa611d0c565b60018101549091506001600160a01b03163314611c295760405162461bcd60e51b8152600401610644906126ac565b611c3233611dca565b60010180546001600160a01b0319169055565b6107706040518060600160405280602d8152602001612bf1602d913982611260565b611c7033611183565b611c8c5760405162461bcd60e51b81526004016106449061283c565b6000611c96611d0c565b60018101549091506001600160a01b031615610770576001810180546001600160a01b03191690556040517f7a8dc7dd7fffb43c4807438fa62729225156941e641fd877938f4edade3429f590600090a150565b610770604051806060016040528060238152602001612bce6023913982611260565b6000806040518060400160405280601c81526020017f535441524b4e45545f312e305f474f5645524e414e43455f494e464f000000008152506040516020016112019190612216565b60008082604051602001611d699190612216565b60408051601f1981840301815291905280516020909101209392505050565b3b151590565b610770604051806060016040528060228152602001612b2d6022913982611e99565b805182556020810151600183015560400151600290910155565b611dd381611183565b15611df05760405162461bcd60e51b81526004016106449061245d565b6000611dfa611d0c565b6001600160a01b03831660009081526020829052604090819020805460ff19166001179055519091507fcfb473e6c03f9a29ddaf990e736fa3de5188a0bd85d684f5b6e164ebfbfff5d290611630908490612297565b366000611e606002828587612a94565b915091505b9250929050565b600082826000818110611e7b57fe5b90506020020135905092915050565b600082826001818110611e7b57fe5b6000611ea48361114f565b6001600160a01b031614611eca5760405162461bcd60e51b81526004016106449061258b565b610a788282611260565b60405180606001604052806000815260200160008152602001600081525090565b60008083601f840112611f06578182fd5b50813567ffffffffffffffff811115611f1d578182fd5b6020830191508360208083028501011115611e6557600080fd5b600060208284031215611f48578081fd5b8135611f5381612b17565b9392505050565b60008060208385031215611f6c578081fd5b823567ffffffffffffffff811115611f82578182fd5b611f8e85828601611ef5565b90969095509350505050565b600060208284031215611fab578081fd5b5035919050565b60008060208385031215611fc4578182fd5b823567ffffffffffffffff80821115611fdb578384fd5b818501915085601f830112611fee578384fd5b813581811115611ffc578485fd5b86602082850101111561200d578485fd5b60209290920196919550909350505050565b60008060008084860360c0811215612035578283fd5b85359450602086013561204781612b17565b9350604086013592506060605f1982011215612061578182fd5b506040516060810181811067ffffffffffffffff82111715612081578283fd5b8060405250606086013581526080860135602082015260a086013560408201528091505092959194509250565b6000806000604084860312156120c2578283fd5b83359250602084013567ffffffffffffffff8111156120df578283fd5b6120eb86828701611ef5565b9497909650939450505050565b6000806000806060858703121561210d578384fd5b8435935060208501359250604085013567ffffffffffffffff811115612131578283fd5b61213d87828801611ef5565b95989497509550505050565b600080600080600060808688031215612160578081fd5b8535945060208601359350604086013567ffffffffffffffff811115612184578182fd5b61219088828901611ef5565b96999598509660600135949350505050565b81835260006001600160fb1b038311156121ba578081fd5b6020830280836020870137939093016020019283525090919050565b60006001600160fb1b038311156121eb578081fd5b6020830280838637939093019283525090919050565b600061220e8284866121d6565b949350505050565b60008251612228818460208701612ae7565b9190910192915050565b90565b60008682528560208301528460408301526122546060830184866121d6565b979650505050505050565b600088825287602083015286604083015285606083015284608083015261228a60a0830184866121d6565b9998505050505050505050565b6001600160a01b0391909116815260200190565b60006020825261220e6020830184866121a2565b6000604082526122d36040830185876121a2565b9050826020830152949350505050565b6000606082526122f76060830186886121a2565b6020830194909452506040015292915050565b604080825283519082018190526000906020906060840190828701845b8281101561234357815184529284019290840190600101612327565b50505092019290925292915050565b901515815260200190565b90815260200190565b918252602082015260400190565b60006020825282602083015282846040840137818301604090810191909152601f909201601f19160101919050565b60006020825282518060208401526123c2816040850160208701612ae7565b601f01601f19169190910160400192915050565b602080825260129082015271115250d7d393d517d057d0d3d395149050d560721b604082015260600190565b602080825260119082015270135154d4d051d157d513d3d7d4d213d495607a1b604082015260600190565b602080825260169082015275494c4c4547414c5f494e49545f444154415f53495a4560501b604082015260600190565b60208082526010908201526f20a62922a0a22cafa3a7ab22a92727a960811b604082015260600190565b6020808252601590820152741253959053125117d41491559253d554d7d493d3d5605a1b604082015260600190565b6020808252601390820152720929cac82989288be869e9c8c928ebe9082a69606b1b604082015260600190565b6020808252601390820152721053149150511657d253925512505312569151606a1b604082015260600190565b6020808252601c908201527f43414e43454c5f414c4c4f5745445f54494d455f4f564552464c4f5700000000604082015260600190565b60208082526024908201527f4d4553534147455f43414e43454c4c4154494f4e5f4e4f545f414c4c4f57454460408201526317d6515560e21b606082015260800190565b6020808252600b908201526a1053149150511657d4d15560aa1b604082015260600190565b60208082526017908201527f4d41585f4c315f4d53475f4645455f4558434545444544000000000000000000604082015260600190565b6020808252601a908201527f494e56414c49445f46494e414c5f424c4f434b5f4e554d424552000000000000604082015260600190565b602080825260149082015273554e45585045435445445f494e49545f4441544160601b604082015260600190565b6020808252601690820152750929cac82989288bea082b2989e8288be988a9c8ea8960531b604082015260600190565b6020808252601690820152751112549150d517d0d0531317d11254d0531313d5d15160521b604082015260600190565b60208082526017908201527f4f4e4c595f43414e4449444154455f474f5645524e4f52000000000000000000604082015260600190565b6020808252601290820152712120a22fa4a724aa24a0a624ad20aa24a7a760711b604082015260600190565b6020808252601c908201527f494e56414c49445f4d4553534147455f5345474d454e545f53495a4500000000604082015260600190565b60208082526018908201527f535441524b4e45545f4f55545055545f544f4f5f4c4f4e470000000000000000604082015260600190565b6020808252601490820152731393d7d35154d4d051d157d513d7d0d05390d15360621b604082015260600190565b60208082526019908201527f535441524b4e45545f4f55545055545f544f4f5f53484f525400000000000000604082015260600190565b60208082526019908201527f5452554e43415445445f4d4553534147455f5041594c4f414400000000000000604082015260600190565b60208082526009908201526811925390531256915160ba1b604082015260600190565b6020808252600f908201526e4f4e4c595f474f5645524e414e434560881b604082015260600190565b6020808252600b908201526a4241445f4144445245535360a81b604082015260600190565b6020808252601390820152721253925517d110551057d513d3d7d4d3505313606a1b604082015260600190565b60208082526017908201527f4f544845525f43414e4449444154455f50454e44494e47000000000000000000604082015260600190565b6020808252601a908201527f494e56414c49445f4d4553534147455f544f5f434f4e53554d45000000000000604082015260600190565b60208082526013908201527211551217d514905394d1915497d19052531151606a1b604082015260600190565b6020808252600d908201526c27a7262cafa7a822a920aa27a960991b604082015260600190565b60208082526014908201527324a72b20a624a22fa12627a1a5afa72aa6a122a960611b604082015260600190565b602080825260149082015273474f5645524e4f525f53454c465f52454d4f564560601b604082015260600190565b6020808252600c908201526b2727aa2fa3a7ab22a92727a960a11b604082015260600190565b60208082526022908201527f4d4553534147455f43414e43454c4c4154494f4e5f4e4f545f52455155455354604082015261115160f21b606082015260800190565b60208082526021908201527f4c315f4d53475f4645455f4d5553545f42455f475245415445525f5448414e5f6040820152600360fc1b606082015260800190565b9283526020830191909152604082015260600190565b60008085851115612aa3578182fd5b83861115612aaf578182fd5b5050602083020193919092039150565b60008085851115612ace578081fd5b83861115612ada578081fd5b5050820193919092039150565b60005b83811015612b02578181015183820152602001612aea565b83811115612b11576000848401525b50505050565b6001600160a01b038116811461077057600080fdfe535441524b4e45545f312e305f494e49545f56455249464945525f41444452455353535441524b4e45545f312e305f524f4c45535f4f50455241544f52535f4d415050494e475f544147535441524b4e45545f312e305f4d5347494e475f4c31544f4c325f43414e43454c4c4154494f4e5f4d41505050494e47535441524b4e45545f312e305f494e49545f535441524b4e45545f53544154455f535452554354535441524b4e45545f312e305f494e49545f50524f4752414d5f484153485f55494e54535441524b4e45545f312e305f4d5347494e475f4c31544f4c325f43414e43454c4c4154494f4e5f44454c4159535441524b4e45545f312e305f535441524b4e45545f434f4e4649475f48415348535441524b4e45545f312e305f4d5347494e475f4c32544f4c315f4d41505050494e47535441524b4e45545f312e305f4d5347494e475f4c31544f4c325f4d41505050494e475f5632535441524b574152455f434f4e5452414354535f474f564552454e45445f46494e414c495a41424c455f312e305f544147a2646970667358221220749105af4323f28521c03a1b6b128ff7ceb5750ce7bcf9475b742af277f1611264736f6c634300060c0033", - "sourceMap": "729:7138:37:-:0;;;;;;;;;;;;-1:-1:-1;489:4:4;473:21;;;;;;729:7138:37;;;;;;;", - "linkReferences": {} - }, - "deployedBytecode": { - "object": "0x6080604052600436106101e35760003560e01c80638303bd8a1161010257806396115bc211610095578063e1f1176d11610064578063e1f1176d14610515578063e37fec251461052a578063e87e73321461053f578063eeb728661461055f576101e3565b806396115bc2146104955780639be446bf146104b5578063a46efaf3146104d5578063c99d397f146104f5576101e3565b80638d4e4083116100d15780638d4e40831461043657806391a66a261461044b578063946be3ed1461046b5780639588eca214610480576101e3565b80638303bd8a146103cc57806384f921cd146103e1578063853e2461146104015780638a9bf09014610421576101e3565b80633e3aa6c51161017a5780636170ff1b116101495780636170ff1b1461034c5780636d70f7ae1461036c57806377c7d7a91461038c5780637a98660b146103ac576101e3565b80633e3aa6c5146102e1578063439fab91146103025780634bb278f31461032257806354eccba414610337576101e3565b806335befa5d116101b657806335befa5d146102755780633682a4501461028a578063382d83e3146102ac5780633d07b336146102c1576101e3565b8063018cccdf146101e857806301a01590146102135780632c9dd5c01461024057806333eeb14714610260575b600080fd5b3480156101f457600080fd5b506101fd610581565b60405161020a919061235d565b60405180910390f35b34801561021f57600080fd5b5061023361022e366004611f37565b6105c6565b60405161020a9190612352565b34801561024c57600080fd5b506101fd61025b3660046120ae565b6105d7565b34801561026c57600080fd5b506102336106ba565b34801561028157600080fd5b506101fd6106bf565b34801561029657600080fd5b506102aa6102a5366004611f37565b6106d2565b005b3480156102b857600080fd5b506101fd610773565b3480156102cd57600080fd5b506102aa6102dc366004611f9a565b610786565b6102f46102ef3660046120f8565b61081a565b60405161020a929190612366565b34801561030e57600080fd5b506102aa61031d366004611fb2565b610934565b34801561032e57600080fd5b506102aa610a7c565b34801561034357600080fd5b506101fd610b14565b34801561035857600080fd5b506101fd610367366004612149565b610b20565b34801561037857600080fd5b50610233610387366004611f37565b610c62565b34801561039857600080fd5b506101fd6103a7366004611f9a565b610c8f565b3480156103b857600080fd5b506101fd6103c7366004612149565b610caa565b3480156103d857600080fd5b506101fd610d61565b3480156103ed57600080fd5b506102aa6103fc366004611f37565b610d84565b34801561040d57600080fd5b506102aa61041c366004611f5a565b610d8d565b34801561042d57600080fd5b506101fd610ef3565b34801561044257600080fd5b50610233610f16565b34801561045757600080fd5b506102aa610466366004611f37565b610f39565b34801561047757600080fd5b506102aa610f42565b34801561048c57600080fd5b506101fd610f4c565b3480156104a157600080fd5b506102aa6104b0366004611f37565b610f5c565b3480156104c157600080fd5b506101fd6104d0366004611f9a565b610ff2565b3480156104e157600080fd5b506101fd6104f0366004611f9a565b610ffc565b34801561050157600080fd5b506102aa610510366004611f9a565b611006565b34801561052157600080fd5b506101fd611059565b34801561053657600080fd5b506102aa61107c565b34801561054b57600080fd5b506102aa61055a366004611f9a565b611084565b34801561056b57600080fd5b50610574611118565b60405161020a91906123a3565b60006105c16040518060400160405280602081526020017f535441524b4e45545f312e305f4d5347494e475f4c31544f4c325f4e4f4e434581525061114f565b905090565b60006105d182611183565b92915050565b60405160009081906105f59086903390869088908290602001612235565b60405160208183030381529060405280519060200120905060006106176111b2565b600083815260209190915260409020541161064d5760405162461bcd60e51b8152600401610644906128ee565b60405180910390fd5b336001600160a01b0316857f7a06c571aa77f34d9706c51e5d8122b5595aebeaa34233bfe866f22befb973b186866040516106899291906122ab565b60405180910390a3600161069b6111b2565b6000838152602091909152604090208054919091039055949350505050565b600090565b60006106c96111d5565b60010154905090565b6106db33611183565b6106f75760405162461bcd60e51b81526004016106449061283c565b61070081610c62565b61077057600161070e61121f565b6001600160a01b0383166000908152602091909152604090819020805460ff191692151592909217909155517f50a18c352ee1c02ffe058e15c2eb6e58be387c81e73cc1e17035286e54c19a5790610767908390612297565b60405180910390a15b50565b600061077d6111d5565b60020154905090565b61078e610f16565b156107ab5760405162461bcd60e51b815260040161064490612819565b6107b433611183565b6107d05760405162461bcd60e51b81526004016106449061283c565b337f393c6beb5756a944b2967f15f31ff671e312e945d7a84fd3bdcfd6b408b2dc796107fa611059565b83604051610809929190612366565b60405180910390a261077081611242565b6000806000341161083d5760405162461bcd60e51b815260040161064490612a3d565b610845610b14565b3411156108645760405162461bcd60e51b8152600401610644906125b0565b600061086e610581565b90506108b26040518060400160405280602081526020017f535441524b4e45545f312e305f4d5347494e475f4c31544f4c325f4e4f4e434581525082600101611260565b8587336001600160a01b03167fdb80dd488acf86d17c747445b0eabb5d57c541d3bd7b6b87af987858e5066b2b888886346040516108f394939291906122e3565b60405180910390a4600061090a8888888886611293565b9050346001016109186112d4565b6000838152602091909152604090205597909650945050505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031630141561097d5760405162461bcd60e51b81526004016106449061267c565b60006109876106ba565b602090810291508101808310156109b05760405162461bcd60e51b81526004016106449061288a565b60006109be82848688612abf565b8101906109cb9190611f37565b90503660006109dc8582888a612abf565b915091506109ea8282610a78565b3660006109f98887818c612abf565b90925090506001600160a01b03851615610a2457610a188583836112f7565b50505050505050610a78565b610a2c61141c565b15610a54578015610a4f5760405162461bcd60e51b81526004016106449061261e565b610a70565b610a5e828261142d565b610a68828261148d565b610a706114e7565b505050505050505b5050565b610a8533611183565b610aa15760405162461bcd60e51b81526004016106449061283c565b610aa9610f16565b15610ac65760405162461bcd60e51b815260040161064490612819565b610ae9604051806060016040528060318152602001612c88603191396001611260565b6040517f6823b073d48d6e3a7d385eeb601452d680e74bb46afe3255a7d778f3a9b1768190600090a1565b670de0b6b3a764000090565b60008486336001600160a01b03167f8abd2ec2e0a10c82f5b60ea00455fa96c41fd144f225fcc52b8d83d94f803ed8878787604051610b61939291906122bf565b60405180910390a46000610b788787878787611293565b90506000610b846112d4565b60008381526020919091526040902054905080610bb35760405162461bcd60e51b81526004016106449061277d565b6000610bbd61153e565b60008481526020919091526040902054905080610bec5760405162461bcd60e51b8152600401610644906129fb565b6000610bf6610d61565b8201905081811015610c1a5760405162461bcd60e51b815260040161064490612510565b80421015610c3a5760405162461bcd60e51b815260040161064490612547565b6000610c446112d4565b60008681526020919091526040902055509198975050505050505050565b6000610c6c61121f565b6001600160a01b0392909216600090815260209290925250604090205460ff1690565b6000610c996112d4565b600092835260205250604090205490565b60008486336001600160a01b03167f2e00dccd686fd6823ec7dc3e125582aa82881b6ff5f6b5a73856e1ea8338a3be878787604051610ceb939291906122bf565b60405180910390a46000610d028787878787611293565b90506000610d0e6112d4565b60008381526020919091526040902054905080610d3d5760405162461bcd60e51b81526004016106449061277d565b42610d4661153e565b60008481526020919091526040902055509695505050505050565b60006105c16040518060600160405280602d8152602001612bf1602d913961114f565b61077081611561565b610d9633610c62565b610db25760405162461bcd60e51b815260040161064490612952565b6000610dbc6111d5565b600101549050610dcc838361163c565b82826004818110610dd957fe5b90506020020135610de8611059565b14610e055760405162461bcd60e51b8152600401610644906124b6565b610e198383610e126111d5565b919061165c565b6005610e396001610e2c85848189612a94565b610e346111b2565b611706565b01610e536000610e4b85848189612a94565b610e346112d4565b01828114610e735760405162461bcd60e51b815260040161064490612746565b6000610e7d6111d5565b90507fd342ddf7a308dec111745b00315c14b7efb2bdae570a6856e088ed0c65a3576c816000015482600101548360020154604051610ebe93929190612a7e565b60405180910390a182600101816001015414610eec5760405162461bcd60e51b8152600401610644906125e7565b5050505050565b60006105c1604051806060016040528060238152602001612bce6023913961114f565b60006105c1604051806060016040528060318152602001612c886031913961114f565b61077081611afb565b610f4a611bf0565b565b6000610f566111d5565b54905090565b610f6533611183565b610f815760405162461bcd60e51b81526004016106449061283c565b610f8a81610c62565b15610770576000610f9961121f565b6001600160a01b0383166000908152602091909152604090819020805460ff191692151592909217909155517fec5f6c3a91a1efb1f9a308bb33c6e9e66bf9090fad0732f127dfdbf516d0625d90610767908390612297565b6000610c9961153e565b6000610c996111b2565b61100e610f16565b1561102b5760405162461bcd60e51b815260040161064490612819565b61103433611183565b6110505760405162461bcd60e51b81526004016106449061283c565b61077081611c45565b60006105c1604051806060016040528060218152602001612c1e6021913961114f565b610f4a611c67565b61108c610f16565b156110a95760405162461bcd60e51b815260040161064490612819565b6110b233611183565b6110ce5760405162461bcd60e51b81526004016106449061283c565b337f600a61c1b32ac42fb2fe76e8fc7582a98106668fc16dcd85567cd3937363e49b6110f8610ef3565b83604051611107929190612366565b60405180910390a261077081611cea565b60408051808201909152601981527f537461726b576172655f537461726b6e65745f323032335f3600000000000000602082015290565b600080826040516020016111639190612216565b60408051601f198184030181529190528051602090910120549392505050565b60008061118e611d0c565b6001600160a01b039390931660009081526020939093525050604090205460ff1690565b60006105c1604051806060016040528060238152602001612c3f60239139611d55565b600080604051806060016040528060278152602001612ba7602791396040516020016112019190612216565b60408051601f19818403018152919052805160209091012092915050565b60006105c1604051806060016040528060288152602001612b4f60289139611d55565b610770604051806060016040528060218152602001612c1e60219139825b6000826040516020016112739190612216565b604051602081830303815290604052805190602001209050818155505050565b6040516000906112b390339088908590899088908a90829060200161225f565b60405160208183030381529060405280519060200120905095945050505050565b60006105c1604051806060016040528060268152602001612c6260269139611d55565b611309836001600160a01b0316611d88565b6113255760405162461bcd60e51b8152600401610644906123d6565b60006060846001600160a01b031663439fab9160e01b858560405160240161134e929190612374565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b031990941693909317909252905161138c9190612216565b600060405180830381855af49150503d80600081146113c7576040519150601f19603f3d011682016040523d82523d6000602084013e6113cc565b606091505b50915091508181906113f15760405162461bcd60e51b815260040161064491906123a3565b5080518190156114145760405162461bcd60e51b815260040161064491906123a3565b505050505050565b6000611426610ef3565b1515905090565b60c0811461144d5760405162461bcd60e51b81526004016106449061242d565b600061145c6020828486612abf565b8101906114699190611f9a565b9050806114885760405162461bcd60e51b8152600401610644906126e3565b505050565b600080600061149a611ed4565b6114a68587018761201f565b93509350935093506114b784611cea565b6114c083611d8e565b6114d2816114cc6111d5565b90611db0565b6114db82611242565b61141462069780611c45565b60006114f1611d0c565b6001810154909150600160a01b900460ff16156115205760405162461bcd60e51b8152600401610644906124e3565b60018101805460ff60a01b1916600160a01b17905561077033611dca565b60006105c1604051806060016040528060308152602001612b7760309139611d55565b61156a33611183565b6115865760405162461bcd60e51b81526004016106449061283c565b336001600160a01b03821614156115af5760405162461bcd60e51b8152600401610644906129a7565b60006115b9611d0c565b90506115c482611183565b6115e05760405162461bcd60e51b8152600401610644906129d5565b6001600160a01b03821660009081526020829052604090819020805460ff19169055517fd75f94825e770b8b512be8e74759e252ad00e102e38f50cce2f7c6f868a2959990611630908490612297565b60405180910390a15050565b60058111610a785760405162461bcd60e51b8152600401610644906127ab565b6001838101805490910190558181600281811061167557fe5b9050602002013583600101541461169e5760405162461bcd60e51b815260040161064490612979565b818160038181106116ab57fe5b60200291909101356002850155503660006116c68484611e50565b915091506116d48282611e6c565b8554146116f35760405162461bcd60e51b815260040161064490612487565b6116fd8282611e8a565b90945550505050565b6000808484600081811061171657fe5b905060200201359050634000000081106117425760405162461bcd60e51b81526004016106449061270f565b6001818101600088611755576004611758565b60025b905060005b82841015611a4a578382018881106117875760405162461bcd60e51b815260040161064490612402565b60008a8a8381811061179557fe5b905060200201359050634000000081106117c15760405162461bcd60e51b81526004016106449061264c565b8181016001018a8111156117e75760405162461bcd60e51b8152600401610644906127e2565b8c156118c55760008c8c8990849261180193929190612a94565b604051602001611812929190612201565b6040516020818303038152906040528051906020012090508c8c60018a0181811061183957fe5b905060200201356001600160a01b03168d8d60008b0181811061185857fe5b905060200201357f4264ac208b5fde633ccdd42e0f12c3d6d443a4f3779bbf886925b94665b63a228f8f60038d0190879261189593929190612a94565b6040516118a39291906122ab565b60405180910390a3600090815260208b90526040902080546001019055611a40565b60008c8c899084926118d993929190612a94565b6040516020016118ea929190612201565b60408051601f1981840301815291815281516020928301206000818152928e90529120549091508061192e5760405162461bcd60e51b8152600401610644906128ee565b600091825260208c9052604082208290559490940160001901938c8c60028a0181811061195757fe5b90506020020135905060608d8d60058b0190859261197793929190612a94565b80806020026020016040519081016040528093929190818152602001838360200280828437600081840152601f19601f8201169050808301925050505050505090508d8d60038b018181106119c857fe5b905060200201358e8e60018c018181106119de57fe5b905060200201358f8f60008d018181106119f457fe5b905060200201356001600160a01b03167f9592d37825c744e33fa80c469683bbd04d336241bb600b574758efd182abe26a8486604051611a3592919061230a565b60405180910390a450505b955061175d915050565b828414611a695760405162461bcd60e51b81526004016106449061270f565b8015611aed576000336001600160a01b031682604051611a8890612232565b60006040518083038185875af1925050503d8060008114611ac5576040519150601f19603f3d011682016040523d82523d6000602084013e611aca565b606091505b5050905080611aeb5760405162461bcd60e51b815260040161064490612925565b505b509198975050505050505050565b611b0433611183565b611b205760405162461bcd60e51b81526004016106449061283c565b6000611b2a611d0c565b90506001600160a01b038216611b525760405162461bcd60e51b815260040161064490612865565b611b5b82611183565b15611b785760405162461bcd60e51b81526004016106449061245d565b60018101546001600160a01b031615611ba35760405162461bcd60e51b8152600401610644906128b7565b6001810180546001600160a01b0319166001600160a01b0384161790556040517f6166272c8d3f5f579082f2827532732f97195007983bb5b83ac12c56700b01a690611630908490612297565b6000611bfa611d0c565b60018101549091506001600160a01b03163314611c295760405162461bcd60e51b8152600401610644906126ac565b611c3233611dca565b60010180546001600160a01b0319169055565b6107706040518060600160405280602d8152602001612bf1602d913982611260565b611c7033611183565b611c8c5760405162461bcd60e51b81526004016106449061283c565b6000611c96611d0c565b60018101549091506001600160a01b031615610770576001810180546001600160a01b03191690556040517f7a8dc7dd7fffb43c4807438fa62729225156941e641fd877938f4edade3429f590600090a150565b610770604051806060016040528060238152602001612bce6023913982611260565b6000806040518060400160405280601c81526020017f535441524b4e45545f312e305f474f5645524e414e43455f494e464f000000008152506040516020016112019190612216565b60008082604051602001611d699190612216565b60408051601f1981840301815291905280516020909101209392505050565b3b151590565b610770604051806060016040528060228152602001612b2d6022913982611e99565b805182556020810151600183015560400151600290910155565b611dd381611183565b15611df05760405162461bcd60e51b81526004016106449061245d565b6000611dfa611d0c565b6001600160a01b03831660009081526020829052604090819020805460ff19166001179055519091507fcfb473e6c03f9a29ddaf990e736fa3de5188a0bd85d684f5b6e164ebfbfff5d290611630908490612297565b366000611e606002828587612a94565b915091505b9250929050565b600082826000818110611e7b57fe5b90506020020135905092915050565b600082826001818110611e7b57fe5b6000611ea48361114f565b6001600160a01b031614611eca5760405162461bcd60e51b81526004016106449061258b565b610a788282611260565b60405180606001604052806000815260200160008152602001600081525090565b60008083601f840112611f06578182fd5b50813567ffffffffffffffff811115611f1d578182fd5b6020830191508360208083028501011115611e6557600080fd5b600060208284031215611f48578081fd5b8135611f5381612b17565b9392505050565b60008060208385031215611f6c578081fd5b823567ffffffffffffffff811115611f82578182fd5b611f8e85828601611ef5565b90969095509350505050565b600060208284031215611fab578081fd5b5035919050565b60008060208385031215611fc4578182fd5b823567ffffffffffffffff80821115611fdb578384fd5b818501915085601f830112611fee578384fd5b813581811115611ffc578485fd5b86602082850101111561200d578485fd5b60209290920196919550909350505050565b60008060008084860360c0811215612035578283fd5b85359450602086013561204781612b17565b9350604086013592506060605f1982011215612061578182fd5b506040516060810181811067ffffffffffffffff82111715612081578283fd5b8060405250606086013581526080860135602082015260a086013560408201528091505092959194509250565b6000806000604084860312156120c2578283fd5b83359250602084013567ffffffffffffffff8111156120df578283fd5b6120eb86828701611ef5565b9497909650939450505050565b6000806000806060858703121561210d578384fd5b8435935060208501359250604085013567ffffffffffffffff811115612131578283fd5b61213d87828801611ef5565b95989497509550505050565b600080600080600060808688031215612160578081fd5b8535945060208601359350604086013567ffffffffffffffff811115612184578182fd5b61219088828901611ef5565b96999598509660600135949350505050565b81835260006001600160fb1b038311156121ba578081fd5b6020830280836020870137939093016020019283525090919050565b60006001600160fb1b038311156121eb578081fd5b6020830280838637939093019283525090919050565b600061220e8284866121d6565b949350505050565b60008251612228818460208701612ae7565b9190910192915050565b90565b60008682528560208301528460408301526122546060830184866121d6565b979650505050505050565b600088825287602083015286604083015285606083015284608083015261228a60a0830184866121d6565b9998505050505050505050565b6001600160a01b0391909116815260200190565b60006020825261220e6020830184866121a2565b6000604082526122d36040830185876121a2565b9050826020830152949350505050565b6000606082526122f76060830186886121a2565b6020830194909452506040015292915050565b604080825283519082018190526000906020906060840190828701845b8281101561234357815184529284019290840190600101612327565b50505092019290925292915050565b901515815260200190565b90815260200190565b918252602082015260400190565b60006020825282602083015282846040840137818301604090810191909152601f909201601f19160101919050565b60006020825282518060208401526123c2816040850160208701612ae7565b601f01601f19169190910160400192915050565b602080825260129082015271115250d7d393d517d057d0d3d395149050d560721b604082015260600190565b602080825260119082015270135154d4d051d157d513d3d7d4d213d495607a1b604082015260600190565b602080825260169082015275494c4c4547414c5f494e49545f444154415f53495a4560501b604082015260600190565b60208082526010908201526f20a62922a0a22cafa3a7ab22a92727a960811b604082015260600190565b6020808252601590820152741253959053125117d41491559253d554d7d493d3d5605a1b604082015260600190565b6020808252601390820152720929cac82989288be869e9c8c928ebe9082a69606b1b604082015260600190565b6020808252601390820152721053149150511657d253925512505312569151606a1b604082015260600190565b6020808252601c908201527f43414e43454c5f414c4c4f5745445f54494d455f4f564552464c4f5700000000604082015260600190565b60208082526024908201527f4d4553534147455f43414e43454c4c4154494f4e5f4e4f545f414c4c4f57454460408201526317d6515560e21b606082015260800190565b6020808252600b908201526a1053149150511657d4d15560aa1b604082015260600190565b60208082526017908201527f4d41585f4c315f4d53475f4645455f4558434545444544000000000000000000604082015260600190565b6020808252601a908201527f494e56414c49445f46494e414c5f424c4f434b5f4e554d424552000000000000604082015260600190565b602080825260149082015273554e45585045435445445f494e49545f4441544160601b604082015260600190565b6020808252601690820152750929cac82989288bea082b2989e8288be988a9c8ea8960531b604082015260600190565b6020808252601690820152751112549150d517d0d0531317d11254d0531313d5d15160521b604082015260600190565b60208082526017908201527f4f4e4c595f43414e4449444154455f474f5645524e4f52000000000000000000604082015260600190565b6020808252601290820152712120a22fa4a724aa24a0a624ad20aa24a7a760711b604082015260600190565b6020808252601c908201527f494e56414c49445f4d4553534147455f5345474d454e545f53495a4500000000604082015260600190565b60208082526018908201527f535441524b4e45545f4f55545055545f544f4f5f4c4f4e470000000000000000604082015260600190565b6020808252601490820152731393d7d35154d4d051d157d513d7d0d05390d15360621b604082015260600190565b60208082526019908201527f535441524b4e45545f4f55545055545f544f4f5f53484f525400000000000000604082015260600190565b60208082526019908201527f5452554e43415445445f4d4553534147455f5041594c4f414400000000000000604082015260600190565b60208082526009908201526811925390531256915160ba1b604082015260600190565b6020808252600f908201526e4f4e4c595f474f5645524e414e434560881b604082015260600190565b6020808252600b908201526a4241445f4144445245535360a81b604082015260600190565b6020808252601390820152721253925517d110551057d513d3d7d4d3505313606a1b604082015260600190565b60208082526017908201527f4f544845525f43414e4449444154455f50454e44494e47000000000000000000604082015260600190565b6020808252601a908201527f494e56414c49445f4d4553534147455f544f5f434f4e53554d45000000000000604082015260600190565b60208082526013908201527211551217d514905394d1915497d19052531151606a1b604082015260600190565b6020808252600d908201526c27a7262cafa7a822a920aa27a960991b604082015260600190565b60208082526014908201527324a72b20a624a22fa12627a1a5afa72aa6a122a960611b604082015260600190565b602080825260149082015273474f5645524e4f525f53454c465f52454d4f564560601b604082015260600190565b6020808252600c908201526b2727aa2fa3a7ab22a92727a960a11b604082015260600190565b60208082526022908201527f4d4553534147455f43414e43454c4c4154494f4e5f4e4f545f52455155455354604082015261115160f21b606082015260800190565b60208082526021908201527f4c315f4d53475f4645455f4d5553545f42455f475245415445525f5448414e5f6040820152600360fc1b606082015260800190565b9283526020830191909152604082015260600190565b60008085851115612aa3578182fd5b83861115612aaf578182fd5b5050602083020193919092039150565b60008085851115612ace578081fd5b83861115612ada578081fd5b5050820193919092039150565b60005b83811015612b02578181015183820152602001612aea565b83811115612b11576000848401525b50505050565b6001600160a01b038116811461077057600080fdfe535441524b4e45545f312e305f494e49545f56455249464945525f41444452455353535441524b4e45545f312e305f524f4c45535f4f50455241544f52535f4d415050494e475f544147535441524b4e45545f312e305f4d5347494e475f4c31544f4c325f43414e43454c4c4154494f4e5f4d41505050494e47535441524b4e45545f312e305f494e49545f535441524b4e45545f53544154455f535452554354535441524b4e45545f312e305f494e49545f50524f4752414d5f484153485f55494e54535441524b4e45545f312e305f4d5347494e475f4c31544f4c325f43414e43454c4c4154494f4e5f44454c4159535441524b4e45545f312e305f535441524b4e45545f434f4e4649475f48415348535441524b4e45545f312e305f4d5347494e475f4c32544f4c315f4d41505050494e47535441524b4e45545f312e305f4d5347494e475f4c31544f4c325f4d41505050494e475f5632535441524b574152455f434f4e5452414354535f474f564552454e45445f46494e414c495a41424c455f312e305f544147a2646970667358221220749105af4323f28521c03a1b6b128ff7ceb5750ce7bcf9475b742af277f1611264736f6c634300060c0033", - "sourceMap": "729:7138:37:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1928:133:17;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;599:112:16;;;;;;;;;;-1:-1:-1;599:112:16;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;4556:497:17:-;;;;;;;;;;-1:-1:-1;4556:497:17;;;;;:::i;:::-;;:::i;778:86:10:-;;;;;;;;;;;;;:::i;5456:102:37:-;;;;;;;;;;;;;:::i;540:233:3:-;;;;;;;;;;-1:-1:-1;540:233:3;;;;;:::i;:::-;;:::i;:::-;;5617:99:37;;;;;;;;;;;;;:::i;2248:198::-;;;;;;;;;;-1:-1:-1;2248:198:37;;;;;:::i;:::-;;:::i;3591:844:17:-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;1486:1028:10:-;;;;;;;;;;-1:-1:-1;1486:1028:10;;;;;:::i;:::-;;:::i;705:144:1:-;;;;;;;;;;;;;:::i;1074:103:17:-;;;;;;;;;;;;;:::i;5649:1148::-;;;;;;;;;;-1:-1:-1;5649:1148:17;;;;;:::i;:::-;;:::i;1038:114:3:-;;;;;;;;;;-1:-1:-1;1038:114:3;;;;;:::i;:::-;;:::i;1324:122:17:-;;;;;;;;;;-1:-1:-1;1324:122:17;;;;;:::i;:::-;;:::i;5059:584::-;;;;;;;;;;-1:-1:-1;5059:584:17;;;;;:::i;:::-;;:::i;2067:152::-;;;;;;;;;;;;;:::i;840:121:16:-;;;;;;;;;;-1:-1:-1;840:121:16;;;;;:::i;:::-;;:::i;6058:1807:37:-;;;;;;;;;;-1:-1:-1;6058:1807:37;;;;;:::i;:::-;;:::i;2699:120::-;;;;;;;;;;;;;:::i;493:112:1:-;;;;;;;;;;;;;:::i;717:117:16:-;;;;;;;;;;-1:-1:-1;717:117:16;;;;;:::i;:::-;;:::i;967:81::-;;;;;;;;;;;;;:::i;5300:95:37:-;;;;;;;;;;;;;:::i;779:253:3:-;;;;;;;;;;-1:-1:-1;779:253:3;;;;;:::i;:::-;;:::i;2591:146:17:-;;;;;;;;;;-1:-1:-1;2591:146:17;;;;;:::i;:::-;;:::i;1452:122::-;;;;;;;;;;-1:-1:-1;1452:122:17;;;;;:::i;:::-;;:::i;2452:183:37:-;;;;;;;;;;-1:-1:-1;2452:183:37;;;;;:::i;:::-;;:::i;3415:118::-;;;;;;;;;;;;;:::i;1054:81:16:-;;;;;;;;;;;;;:::i;2037:205:37:-;;;;;;;;;;-1:-1:-1;2037:205:37;;;;;:::i;:::-;;:::i;5123:118::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;1928:133:17:-;1979:7;2005:49;2031:22;;;;;;;;;;;;;;;;;2005:25;:49::i;:::-;1998:56;;1928:133;:::o;599:112:16:-;664:4;687:17;699:4;687:11;:17::i;:::-;680:24;599:112;-1:-1:-1;;599:112:16:o;4556:497:17:-;4750:75;;4686:7;;;;4750:75;;4767:11;;4788:10;;4801:7;;;;;;4750:75;;;:::i;:::-;;;;;;;;;;;;;4727:108;;;;;;4709:126;;4882:1;4854:16;:14;:16::i;:::-;:25;;;;;;;;;;;;;:29;4846:68;;;;-1:-1:-1;;;4846:68:17;;;;;;;:::i;:::-;;;;;;;;;4929:53;;4962:10;;4949:11;;4929:53;;;;4974:7;;;;4929:53;:::i;:::-;;;;;;;;5021:1;4992:16;:14;:16::i;:::-;:25;;;;;;;;;;;;:30;;;;;;;;:25;4556:497;-1:-1:-1;;;;4556:497:17:o;778:86:10:-;829:4;778:86;:::o;5456:102:37:-;5507:6;5532:7;:5;:7::i;:::-;:19;;;5525:26;;5456:102;:::o;540:233:3:-;292:23:8;304:10;292:11;:23::i;:::-;284:51;;;;-1:-1:-1;;;284:51:8;;;;;;;:::i;:::-;635:23:3::1;646:11;635:10;:23::i;:::-;630:137;;704:4;674:14;:12;:14::i;:::-;-1:-1:-1::0;;;;;674:27:3;::::1;;::::0;;;::::1;::::0;;;;;;;;;:34;;-1:-1:-1;;674:34:3::1;::::0;::::1;;::::0;;;::::1;::::0;;;727:29;::::1;::::0;::::1;::::0;674:27;;727:29:::1;:::i;:::-;;;;;;;;630:137;540:233:::0;:::o;5617:99:37:-;5666:7;5692;:5;:7::i;:::-;:17;;;5685:24;;5617:99;:::o;2248:198::-;654:13:1;:11;:13::i;:::-;653:14;645:36;;;;-1:-1:-1;;;645:36:1;;;;;;;:::i;:::-;292:23:8::1;304:10;292:11;:23::i;:::-;284:51;;;::::0;-1:-1:-1;;;284:51:8;;::::1;::::0;::::1;;;:::i;:::-;2364:10:37::2;2346:58;2376:12;:10;:12::i;:::-;2390:13;2346:58;;;;;;;:::i;:::-;;;;;;;;2414:25;2425:13;2414:10;:25::i;3591:844:17:-:0;3746:7;3755;3794:1;3782:9;:13;3774:59;;;;-1:-1:-1;;;3774:59:17;;;;;;;:::i;:::-;3864:16;:14;:16::i;:::-;3851:9;:29;;3843:65;;;;-1:-1:-1;;;3843:65:17;;;;;;;:::i;:::-;3918:13;3934:20;:18;:20::i;:::-;3918:36;;3964:60;3990:22;;;;;;;;;;;;;;;;;4014:5;4022:1;4014:9;3964:25;:60::i;:::-;4039:74;;4077:8;;4066:9;;4054:10;;4039:74;;;;4087:7;;;;4096:5;;4103:9;;4039:74;:::i;:::-;;;;;;;;4123:15;4141:53;4158:9;4169:8;4179:7;;4188:5;4141:16;:53::i;:::-;4123:71;;4382:9;4394:1;4382:13;4354:16;:14;:16::i;:::-;:25;;;;;;;;;;;;:41;:25;4422:5;;-1:-1:-1;3591:844:17;-1:-1:-1;;;;;3591:844:17:o;1486:1028:10:-;571:4:4;-1:-1:-1;;;;;554:5:4;:22;;;546:57;;;;-1:-1:-1;;;546:57:4;;;;;;;:::i;:::-;1564:17:10::1;1589:19;:17;:19::i;:::-;1584:2;:24:::0;;::::1;::::0;-1:-1:-1;1645:14:10;::::1;1677:31:::0;;::::1;;1669:63;;;::::0;-1:-1:-1;;;1669:63:10;;::::1;::::0;::::1;;;:::i;:::-;1742:18;1774:32;1789:16:::0;1779:9;1774:4;;:32:::1;:::i;:::-;1763:55;;;;;;;:::i;:::-;1742:76:::0;-1:-1:-1;1829:35:10::1;;1867:16;1873:9:::0;1829:35;1867:4;;:16:::1;:::i;:::-;1829:54;;;;1894:49;1922:20;;1894:27;:49::i;:::-;1954:23;;1980;:4:::0;1985:16;1980:4;;:23:::1;:::i;:::-;1954:49:::0;;-1:-1:-1;1954:49:10;-1:-1:-1;;;;;;2098:26:10;::::1;::::0;2094:122:::1;;2140:45;2164:10;2176:8;;2140:23;:45::i;:::-;2199:7;;;;;;;;;2094:122;2230:15;:13;:15::i;:::-;2226:282;;;2269:20:::0;;2261:53:::1;;;::::0;-1:-1:-1;;;2261:53:10;;::::1;::::0;::::1;;;:::i;:::-;2226:282;;;2394:26;2411:8;;2394:16;:26::i;:::-;2434:33;2458:8;;2434:23;:33::i;:::-;2481:16;:14;:16::i;:::-;613:1:4;;;;;;;;1486:1028:10::0;;:::o;705:144:1:-;292:23:8;304:10;292:11;:23::i;:::-;284:51;;;;-1:-1:-1;;;284:51:8;;;;;;;:::i;:::-;654:13:1::1;:11;:13::i;:::-;653:14;645:36;;;::::0;-1:-1:-1;;;645:36:1;;::::1;::::0;::::1;;;:::i;:::-;772:44:::2;798:11;;;;;;;;;;;;;;;;;811:4;772:25;:44::i;:::-;831:11;::::0;::::2;::::0;;;::::2;705:144::o:0;1074:103:17:-;1060:7;1074:103;:::o;5649:1148::-;5847:68;;5823:7;;5890:8;;5879:9;;5867:10;;5847:68;;;;5900:7;;;;5909:5;;5847:68;:::i;:::-;;;;;;;;6133:15;6151:53;6168:9;6179:8;6189:7;;6198:5;6151:16;:53::i;:::-;6133:71;;6214:21;6238:16;:14;:16::i;:::-;:25;;;;;;;;;;;;;;-1:-1:-1;6281:18:17;6273:51;;;;-1:-1:-1;;;6273:51:17;;;;;;;:::i;:::-;6335:19;6357:28;:26;:28::i;:::-;:37;;;;;;;;;;;;;;-1:-1:-1;6412:16:17;6404:63;;;;-1:-1:-1;;;6404:63:17;;;;;;;:::i;:::-;6478:25;6520:26;:24;:26::i;:::-;6506:11;:40;6478:68;;6585:11;6564:17;:32;;6556:73;;;;-1:-1:-1;;;6556:73:17;;;;;;;:::i;:::-;6666:17;6647:15;:36;;6639:85;;;;-1:-1:-1;;;6639:85:17;;;;;;;:::i;:::-;6763:1;6735:16;:14;:16::i;:::-;:25;;;;;;;;;;;;:29;-1:-1:-1;6735:25:17;;5649:1148;-1:-1:-1;;;;;;;;5649:1148:17:o;1038:114:3:-;1102:4;1125:14;:12;:14::i;:::-;-1:-1:-1;;;;;1125:20:3;;;;;;;;;;;;;-1:-1:-1;1125:20:3;;;;;;;1038:114::o;1324:122:17:-;1388:7;1414:16;:14;:16::i;:::-;:25;;;;;;-1:-1:-1;1414:25:17;;;;;1324:122::o;5059:584::-;5268:79;;5244:7;;5322:8;;5311:9;;5299:10;;5268:79;;;;5332:7;;;;5341:5;;5268:79;:::i;:::-;;;;;;;;5357:15;5375:53;5392:9;5403:8;5413:7;;5422:5;5375:16;:53::i;:::-;5357:71;;5438:21;5462:16;:14;:16::i;:::-;:25;;;;;;;;;;;;;;-1:-1:-1;5505:17:17;5497:50;;;;-1:-1:-1;;;5497:50:17;;;;;;;:::i;:::-;5597:15;5557:28;:26;:28::i;:::-;:37;;;;;;;;;;;;:55;-1:-1:-1;5557:37:17;5059:584;-1:-1:-1;;;;;;5059:584:17:o;2067:152::-;2124:7;2150:62;2176:35;;;;;;;;;;;;;;;;;2150:25;:62::i;840:121:16:-;919:35;935:18;919:15;:35::i;6058:1807:37:-;341:22:9;352:10;341;:22::i;:::-;333:48;;;;-1:-1:-1;;;333:48:9;;;;;;;:::i;:::-;6331:25:37::1;6359:7;:5;:7::i;:::-;:19;;;6331:47;;6425:38;6449:13;;6425:23;:38::i;:::-;6544:13;;833:1:15;6544:48:37;;;;;;;;;;;;;6528:12;:10;:12::i;:::-;:64;6507:130;;;::::0;-1:-1:-1;;;6507:130:37;;::::1;::::0;::::1;;;:::i;:::-;6648:29;6663:13;;6648:7;:5;:7::i;:::-;:14:::0;:29;:14:::1;:29::i;:::-;880:1:15;6985:155:37;7054:4;7072:28;:13:::0;880:1:15;7072:13:37;;:28:::1;:::i;:::-;7114:16;:14;:16::i;:::-;6985:30;:155::i;:::-;6969:171;7205:156;7274:5;7293:28;:13:::0;6969:171;7293:13;;:28:::1;:::i;:::-;7335:16;:14;:16::i;7205:156::-;7189:172;7379:36:::0;;::::1;7371:73;;;::::0;-1:-1:-1;;;7371:73:37;;::::1;::::0;::::1;;;:::i;:::-;7588:34;7625:7;:5;:7::i;:::-;7588:44;;7647:71;7662:6;:17;;;7681:6;:18;;;7701:6;:16;;;7647:71;;;;;;;;:::i;:::-;;;;;;;;7805:18;7826:1;7805:22;7783:6;:18;;;:44;7775:83;;;::::0;-1:-1:-1;;;7775:83:37;;::::1;::::0;::::1;;;:::i;:::-;391:1:9;;;6058:1807:37::0;;:::o;2699:120::-;2743:7;2769:43;2795:16;;;;;;;;;;;;;;;;;2769:25;:43::i;493:112:1:-;537:4;560:38;586:11;;;;;;;;;;;;;;;;;560:25;:38::i;717:117:16:-;794:33;815:11;794:20;:33::i;967:81::-;1022:19;:17;:19::i;:::-;967:81::o;5300:95:37:-;5344:7;5370;:5;:7::i;:::-;:18;;-1:-1:-1;5300:95:37;:::o;779:253:3:-;292:23:8;304:10;292:11;:23::i;:::-;284:51;;;;-1:-1:-1;;;284:51:8;;;;;;;:::i;:::-;879:27:3::1;890:15;879:10;:27::i;:::-;875:151;;;956:5;922:14;:12;:14::i;:::-;-1:-1:-1::0;;;;;922:31:3;::::1;;::::0;;;::::1;::::0;;;;;;;;;:39;;-1:-1:-1;;922:39:3::1;::::0;::::1;;::::0;;;::::1;::::0;;;980:35;::::1;::::0;::::1;::::0;922:31;;980:35:::1;:::i;2591:146:17:-:0;2667:7;2693:28;:26;:28::i;1452:122::-;1516:7;1542:16;:14;:16::i;2452:183:37:-;654:13:1;:11;:13::i;:::-;653:14;645:36;;;;-1:-1:-1;;;645:36:1;;;;;;;:::i;:::-;292:23:8::1;304:10;292:11;:23::i;:::-;284:51;;;::::0;-1:-1:-1;;;284:51:8;;::::1;::::0;::::1;;;:::i;:::-;2588:40:37::2;2613:14;2588:24;:40::i;3415:118::-:0;3458:7;3484:42;3510:15;;;;;;;;;;;;;;;;;3484:25;:42::i;1054:81:16:-;1109:19;:17;:19::i;2037:205:37:-;654:13:1;:11;:13::i;:::-;653:14;645:36;;;;-1:-1:-1;;;645:36:1;;;;;;;:::i;:::-;292:23:8::1;304:10;292:11;:23::i;:::-;284:51;;;::::0;-1:-1:-1;;;284:51:8;;::::1;::::0;::::1;;;:::i;:::-;2156:10:37::2;2137:61;2168:13;:11;:13::i;:::-;2183:14;2137:61;;;;;;;:::i;:::-;;;;;;;;2208:27;2220:14;2208:11;:27::i;5123:118::-:0;5200:34;;;;;;;;;;;;;;;;;5123:118;:::o;1465:209:12:-;1530:14;1556:12;1598:4;1581:22;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;1581:22:12;;;;;;1571:33;;1581:22;1571:33;;;;1647:11;;;-1:-1:-1;;;1623:45:12:o;1988:189:0:-;2055:4;2071:32;2106:19;:17;:19::i;:::-;-1:-1:-1;;;;;2142:28:0;;;;:22;:28;;;;;;;;-1:-1:-1;;2142:28:0;;;;;;;1988:189::o;1754:168:17:-;1803:35;1857:58;1894:20;;;;;;;;;;;;;;;;;1857:36;:58::i;3722:232:37:-;3762:39;3813:16;3859;;;;;;;;;;;;;;;;;3842:34;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;3842:34:37;;;;;;3832:45;;3842:34;3832:45;;;;;;-1:-1:-1;;3896:52:37:o;318:170:18:-;374:32;425:56;459:21;;;;;;;;;;;;;;;;;425:33;:56::i;3242:110:37:-;3296:49;3322:15;;;;;;;;;;;;;;;;;3339:5;1680:192:12;1756:12;1798:4;1781:22;;;;;;;;:::i;:::-;;;;;;;;;;;;;1771:33;;;;;;1756:48;;1850:5;1844:4;1837:19;1823:43;;;:::o;3048:481:17:-;3280:228;;3215:7;;3280:228;;3326:10;;3359:9;;3390:5;;3417:8;;3447:7;;;;;;3280:228;;;:::i;:::-;;;;;;;;;;;;;3253:269;;;;;;3234:288;;3048:481;;;;;;;:::o;1580:168::-;1629:35;1683:58;1720:20;;;;;;;;;;;;;;;;;1683:36;:58::i;2520:540:10:-;2648:36;-1:-1:-1;;;;;2648:34:10;;;:36::i;:::-;2640:67;;;;-1:-1:-1;;;2640:67:10;;;;;;;:::i;:::-;2879:57;;2788:12;;2802:23;;-1:-1:-1;;;;;2829:36:10;;;-1:-1:-1;;;2902:24:10;2879:57;;2928:7;;;;2879:57;;;:::i;:::-;;;;-1:-1:-1;;2879:57:10;;;;;;;;;;;;;;-1:-1:-1;;;;;2879:57:10;-1:-1:-1;;;;;;2879:57:10;;;;;;;;;;;2829:117;;;;2879:57;2829:117;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2787:159;;;;2964:7;2980:10;2956:36;;;;;-1:-1:-1;;;2956:36:10;;;;;;;;:::i;:::-;-1:-1:-1;3010:17:10;;:10;;:22;3002:51;;;;-1:-1:-1;;;3002:51:10;;;;;;;;:::i;:::-;;2520:540;;;;;:::o;3960:105:37:-;4017:4;4040:13;:11;:13::i;:::-;:18;;;-1:-1:-1;3960:105:37;:::o;4172:266::-;4275:6;4260:21;;4252:56;;;;-1:-1:-1;;;4252:56:37;;;;;;;:::i;:::-;4318:20;4352:9;4358:2;4318:20;4352:4;;:9;:::i;:::-;4341:32;;;;;;;:::i;:::-;4318:55;-1:-1:-1;4391:17:37;4383:48;;;;-1:-1:-1;;;4383:48:37;;;;;;;:::i;:::-;4172:266;;;:::o;4544:505::-;4640:20;4674:17;4705:19;4738:39;;:::i;:::-;4790:66;;;;4801:4;4790:66;:::i;:::-;4626:230;;;;;;;;4867:25;4879:12;4867:11;:25::i;:::-;4902:29;4921:9;4902:18;:29::i;:::-;4941:26;4954:12;4941:7;:5;:7::i;:::-;:12;;:26::i;:::-;4977:23;4988:11;4977:10;:23::i;:::-;5010:32;5035:6;5010:24;:32::i;1665:317:0:-;1710:32;1745:19;:17;:19::i;:::-;1783:15;;;;;;-1:-1:-1;;;;1783:15:0;;;;1782:16;1774:48;;;;-1:-1:-1;;;1774:48:0;;;;;;;:::i;:::-;1850:4;1832:15;;:22;;-1:-1:-1;;;;1832:22:0;-1:-1:-1;;;1832:22:0;;;1946:29;1964:10;1946:17;:29::i;2743:221:17:-;2828:35;2886:71;2923:33;;;;;;;;;;;;;;;;;2886:36;:71::i;4088:402:0:-;292:23:8;304:10;292:11;:23::i;:::-;284:51;;;;-1:-1:-1;;;284:51:8;;;;;;;:::i;:::-;-1:-1:-1;;;;;4183:32:0;::::1;:10;:32;;4175:65;;;::::0;-1:-1:-1;;;4175:65:0;;::::1;::::0;::::1;;;:::i;:::-;4250:32;4285:19;:17;:19::i;:::-;4250:54;;4322:31;4334:18;4322:11;:31::i;:::-;4314:56;;;::::0;-1:-1:-1;;;4314:56:0;;::::1;::::0;::::1;;;:::i;:::-;-1:-1:-1::0;;;;;4380:42:0;::::1;4425:5;4380:42:::0;;;::::1;::::0;;;;;;;;:50;;-1:-1:-1;;4380:50:0::1;::::0;;4445:38;::::1;::::0;::::1;::::0;4380:42;;4445:38:::1;:::i;:::-;;;;;;;;345:1:8;4088:402:0::0;:::o;1965:151:15:-;880:1;2047:32;;2039:70;;;;-1:-1:-1;;;2039:70:15;;;;;;;:::i;598:803:19:-;808:1;787:17;;;:22;;;;;;;870:14;;726:1:15;870:50:19;;;;;;;;;;;;;848:5;:17;;;840:80;819:147;;;;-1:-1:-1;;;819:147:19;;;;;;;:::i;:::-;995:14;;779:1:15;995:48:19;;;;;;;;;;;;;;977:15;;;:66;-1:-1:-1;1054:41:19;;1098:46;1129:14;;1098:30;:46::i;:::-;1054:90;;;;1195:62;1234:22;;1195:38;:62::i;:::-;1175:16;;:82;1154:150;;;;-1:-1:-1;;;1154:150:19;;;;;;;:::i;:::-;1333:61;1371:22;;1333:37;:61::i;:::-;1314:80;;;-1:-1:-1;;;;598:803:19:o;2748:3369:15:-;2921:7;2940:26;2969:18;;2988:1;2969:21;;;;;;;;;;;;;2940:50;;3029:5;3008:18;:26;3000:67;;;;-1:-1:-1;;;3000:67:15;;;;;;;:::i;:::-;3095:1;3134:27;;;3078:14;3214:8;:80;;1399:1;3214:80;;;1059:1;3214:80;3172:132;;3315:20;3349:2443;3365:17;3356:6;:26;3349:2443;;;3428:26;;;3476:47;;;3468:77;;;;-1:-1:-1;;;3468:77:15;;;;;;;:::i;:::-;3560:21;3584:18;;3603:19;3584:39;;;;;;;;;;;;;3560:63;;3661:5;3645:13;:21;3637:56;;;;-1:-1:-1;;;3637:56:15;;;;;;;:::i;:::-;3728:39;;;3750:1;3728:39;3789:38;;;;3781:76;;;;-1:-1:-1;;;3781:76:15;;;;;;;:::i;:::-;3876:8;3872:1877;;;3904:19;3974:18;;3993:6;3974:36;4000:9;3974:36;;;;;;;:::i;:::-;3957:54;;;;;;;;;:::i;:::-;;;;;;;;;;;;;3926:103;;;;;;3904:125;;4237:18;;999:1;4256:6;:40;4237:60;;;;;;;;;;;;;-1:-1:-1;;;;;4053:394:15;4118:18;;941:1;4137:6;:42;4118:62;;;;;;;;;;;;;4053:394;4364:18;;1111:1;4383:6;:34;4364:64;4418:9;4364:64;;;;;;;:::i;:::-;4053:394;;;;;;;:::i;:::-;;;;;;;;4465:21;;;;;;;;;;;:26;;4490:1;4465:26;;;3872:1877;;;4552:19;4626:18;;4645:6;4626:36;4652:9;4626:36;;;;;;;:::i;:::-;4609:54;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;4609:54:15;;;;;;4574:111;;4609:54;4574:111;;;;4708:21;4732;;;;;;;;;;4574:111;;-1:-1:-1;4732:21:15;4775:56;;;;-1:-1:-1;;;4775:56:15;;;;;;;:::i;:::-;4932:1;4908:21;;;;;;;;;;:25;;;4853:33;;;;-1:-1:-1;;4853:33:15;;4986:18;;1283:1;5005:35;;4986:55;;;;;;;;;;;;;4970:71;;5059:29;5124:18;;1451:1;5143:6;:34;5124:64;5178:9;5124:64;;;;;;;:::i;:::-;5059:147;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5534:18;;1339:1;5553:6;:38;5534:58;;;;;;;;;;;;;5419:18;;1230:1;5438:6;:40;5419:60;;;;;;;;;;;;;5307:18;;1172:1;5326:6;:42;5307:62;;;;;;;;;;;;;-1:-1:-1;;;;;5229:505:15;;5646:12;5711:5;5229:505;;;;;;;:::i;:::-;;;;;;;;3872:1877;;;5772:9;-1:-1:-1;3349:2443:15;;-1:-1:-1;;3349:2443:15;;5819:17;5809:6;:27;5801:68;;;;-1:-1:-1;;;5801:68:15;;;;;;;:::i;:::-;5884:16;;5880:207;;5983:40;;5965:12;;5983:10;;6006:12;;5983:40;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5964:59;;;6045:7;6037:39;;;;-1:-1:-1;;;6037:39:15;;;;;;;:::i;:::-;5880:207;;-1:-1:-1;6104:6:15;;2748:3369;-1:-1:-1;;;;;;;;2748:3369:15:o;2537:447:0:-;292:23:8;304:10;292:11;:23::i;:::-;284:51;;;;-1:-1:-1;;;284:51:8;;;;;;;:::i;:::-;2622:32:0::1;2657:19;:17;:19::i;:::-;2622:54:::0;-1:-1:-1;;;;;;2694:27:0;::::1;2686:51;;;::::0;-1:-1:-1;;;2686:51:0;;::::1;::::0;::::1;;;:::i;:::-;2756:24;2768:11;2756;:24::i;:::-;2755:25;2747:54;;;::::0;-1:-1:-1;;;2747:54:0;;::::1;::::0;::::1;;;:::i;:::-;2819:21;::::0;::::1;::::0;-1:-1:-1;;;;;2819:21:0::1;:37:::0;2811:73:::1;;;::::0;-1:-1:-1;;;2811:73:0;;::::1;::::0;::::1;;;:::i;:::-;2894:21;::::0;::::1;:35:::0;;-1:-1:-1;;;;;;2894:35:0::1;-1:-1:-1::0;;;;;2894:35:0;::::1;;::::0;;2944:33:::1;::::0;::::1;::::0;::::1;::::0;2894:35;;2944:33:::1;:::i;3649:382::-:0;3778:32;3813:19;:17;:19::i;:::-;3864:21;;;;;;-1:-1:-1;;;;;;3864:21:0;3850:10;:35;3842:71;;;;-1:-1:-1;;;3842:71:0;;;;;;;:::i;:::-;3949:29;3967:10;3949:17;:29::i;:::-;3988:21;;:36;;-1:-1:-1;;;;;;3988:36:0;;;3649:382::o;2225:162:17:-;2302:78;2328:35;;;;;;;;;;;;;;;;;2365:14;2302:25;:78::i;2251:280:0:-;292:23:8;304:10;292:11;:23::i;:::-;284:51;;;;-1:-1:-1;;;284:51:8;;;;;;;:::i;:::-;2314:32:0::1;2349:19;:17;:19::i;:::-;2382:21;::::0;::::1;::::0;;;-1:-1:-1;;;;;;2382:21:0::1;:37:::0;2378:147:::1;;2435:21;::::0;::::1;:36:::0;;-1:-1:-1;;;;;;2435:36:0::1;::::0;;2490:24:::1;::::0;::::1;::::0;-1:-1:-1;;2490:24:0::1;345:1:8;2251:280:0:o:0;2884:112:37:-;2939:50;2965:16;;;;;;;;;;;;;;;;;2983:5;2939:25;:50::i;343:250:16:-;404:32;448:16;494:28;;;;;;;;;;;;;;;;;477:46;;;;;;;;:::i;258:298:12:-;358:50;424:16;470:4;453:22;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;453:22:12;;;;;;443:33;;453:22;443:33;;;;;;-1:-1:-1;;;495:55:12:o;346:190:11:-;475:20;521:8;;;346:190::o;3539:130:37:-;3601:61;3634:20;;;;;;;;;;;;;;;;;3656:5;3601:32;:61::i;227:222:19:-;324:20;;305:39;;374:21;;;;354:17;;;:41;423:19;;;405:15;;;;:37;227:222::o;3309:334:0:-;3384:24;3396:11;3384;:24::i;:::-;3383:25;3375:54;;;;-1:-1:-1;;;3375:54:0;;;;;;;:::i;:::-;3439:32;3474:19;:17;:19::i;:::-;-1:-1:-1;;;;;3503:35:0;;:22;:35;;;;;;;;;;;;:42;;-1:-1:-1;;3503:42:0;-1:-1:-1;3503:42:0;;;3601:35;3503;;-1:-1:-1;3601:35:0;;;;3503;;3601;:::i;2225:210:15:-;2329:18;;2370:58;2426:1;2329:18;2370:11;;:58;:::i;:::-;2363:65;;;;2225:210;;;;;;:::o;171:177::-;284:7;314:24;;339:1;314:27;;;;;;;;;;;;;307:34;;171:177;;;;:::o;413:176::-;525:7;555:24;;580:1;555:27;;;;;;2472:189:12;2596:3;2563:21;2579:4;2563:15;:21::i;:::-;-1:-1:-1;;;;;2563:37:12;;2555:61;;;;-1:-1:-1;;;2555:61:12;;;;;;;:::i;:::-;2626:28;2642:4;2648:5;2626:15;:28::i;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;:::o;313:352::-;;;443:3;436:4;428:6;424:17;420:27;410:2;;-1:-1;;451:12;410:2;-1:-1;481:20;;521:18;510:30;;507:2;;;-1:-1;;543:12;507:2;587:4;579:6;575:17;563:29;;638:3;587:4;;622:6;618:17;579:6;604:32;;601:41;598:2;;;655:1;;645:12;2106:241;;2210:2;2198:9;2189:7;2185:23;2181:32;2178:2;;;-1:-1;;2216:12;2178:2;85:6;72:20;97:33;124:5;97:33;:::i;:::-;2268:63;2172:175;-1:-1;;;2172:175::o;2618:397::-;;;2757:2;2745:9;2736:7;2732:23;2728:32;2725:2;;;-1:-1;;2763:12;2725:2;2821:17;2808:31;2859:18;2851:6;2848:30;2845:2;;;-1:-1;;2881:12;2845:2;2919:80;2991:7;2982:6;2971:9;2967:22;2919:80;:::i;:::-;2901:98;;;;-1:-1;2719:296;-1:-1;;;;2719:296::o;3022:241::-;;3126:2;3114:9;3105:7;3101:23;3097:32;3094:2;;;-1:-1;;3132:12;3094:2;-1:-1;740:20;;3088:175;-1:-1;3088:175::o;3270:365::-;;;3393:2;3381:9;3372:7;3368:23;3364:32;3361:2;;;-1:-1;;3399:12;3361:2;3457:17;3444:31;3495:18;;3487:6;3484:30;3481:2;;;-1:-1;;3517:12;3481:2;3602:6;3591:9;3587:22;;;938:3;931:4;923:6;919:17;915:27;905:2;;-1:-1;;946:12;905:2;989:6;976:20;3495:18;1008:6;1005:30;1002:2;;;-1:-1;;1038:12;1002:2;1133:3;3393:2;1113:17;1074:6;1099:32;;1096:41;1093:2;;;-1:-1;;1140:12;1093:2;3393;1070:17;;;;;3537:82;;-1:-1;3355:280;;-1:-1;;;;3355:280::o;3890:679::-;;;;;4064:9;4055:7;4051:23;4076:3;4051:23;4047:33;4044:2;;;-1:-1;;4083:12;4044:2;2049:6;2036:20;4135:63;;4235:2;4286:9;4282:22;217:20;242:41;277:5;242:41;:::i;:::-;4243:71;-1:-1;4351:2;4390:22;;2036:20;;-1:-1;4459:2;-1:-1;;1427:19;;1423:30;1420:2;;;-1:-1;;1456:12;1420:2;;4351;45663:9;4459:2;45699:6;45695:17;45806:6;45794:10;45791:22;45770:18;45758:10;45755:34;45752:62;45749:2;;;-1:-1;;45817:12;45749:2;45847:10;4351:2;45836:22;;4459:2;4525:9;4521:22;2036:20;1574:16;1567:75;1763:22;4525:9;1763:22;1234:20;4235:2;1729:5;1725:16;1718:74;1912:22;4525:9;1912:22;2036:20;4351:2;1877:5;1873:16;1866:75;4467:86;;;;4038:531;;;;;;;:::o;4576:522::-;;;;4732:2;4720:9;4711:7;4707:23;4703:32;4700:2;;;-1:-1;;4738:12;4700:2;2049:6;2036:20;4790:63;;4918:2;4907:9;4903:18;4890:32;4942:18;4934:6;4931:30;4928:2;;;-1:-1;;4964:12;4928:2;5002:80;5074:7;5065:6;5054:9;5050:22;5002:80;:::i;:::-;4694:404;;4984:98;;-1:-1;4984:98;;-1:-1;;;;4694:404::o;5105:647::-;;;;;5278:2;5266:9;5257:7;5253:23;5249:32;5246:2;;;-1:-1;;5284:12;5246:2;2049:6;2036:20;5336:63;;5436:2;5479:9;5475:22;2036:20;5444:63;;5572:2;5561:9;5557:18;5544:32;5596:18;5588:6;5585:30;5582:2;;;-1:-1;;5618:12;5582:2;5656:80;5728:7;5719:6;5708:9;5704:22;5656:80;:::i;:::-;5240:512;;;;-1:-1;5638:98;-1:-1;;;;5240:512::o;5759:773::-;;;;;;5949:3;5937:9;5928:7;5924:23;5920:33;5917:2;;;-1:-1;;5956:12;5917:2;2049:6;2036:20;6008:63;;6108:2;6151:9;6147:22;2036:20;6116:63;;6244:2;6233:9;6229:18;6216:32;6268:18;6260:6;6257:30;6254:2;;;-1:-1;;6290:12;6254:2;6328:80;6400:7;6391:6;6380:9;6376:22;6328:80;:::i;:::-;5911:621;;;;-1:-1;6310:98;6445:2;6484:22;2036:20;;5911:621;-1:-1;;;;5911:621::o;6872:467::-;46663:19;;;6872:467;-1:-1;;;;;7120:78;;7117:2;;;-1:-1;;7201:12;7117:2;46712:4;7236:6;7232:17;48959:6;48954:3;46712:4;46707:3;46703:14;48936:30;48997:16;;;;46712:4;48997:16;48990:27;;;-1:-1;48997:16;;7004:335;-1:-1;7004:335::o;7378:503::-;;-1:-1;;;;;7662:78;;7659:2;;;-1:-1;;7743:12;7659:2;7786:4;7778:6;7774:17;48959:6;48954:3;48949;48936:30;48997:16;;;;48990:27;;;-1:-1;48997:16;;7528:353;-1:-1;7528:353::o;22734:361::-;;22935:135;23066:3;23057:6;23049;22935:135;:::i;:::-;23080:10;22916:179;-1:-1;;;;22916:179::o;23102:271::-;;9337:5;46131:12;9448:52;9493:6;9488:3;9481:4;9474:5;9470:16;9448:52;:::i;:::-;9512:16;;;;;23236:137;-1:-1;;23236:137::o;23662:379::-;24026:10;23850:191::o;24048:772::-;;8830:5;8807:3;8800:37;8830:5;24417:2;24412:3;24408:12;8800:37;8830:5;24519:12;24412:3;24519:12;8800:37;24660:135;24630:12;24412:3;24630:12;24782:6;24774;24660:135;:::i;:::-;24805:10;24308:512;-1:-1;;;;;;;24308:512::o;24827:1050::-;;8830:5;8807:3;8800:37;8830:5;25252:2;25247:3;25243:12;8800:37;8830:5;25354:12;25247:3;25354:12;8800:37;8830:5;25465:12;25247:3;25465:12;8800:37;8830:5;25576:12;25247:3;25576:12;8800:37;25717:135;25687:12;25247:3;25687:12;25839:6;25831;25717:135;:::i;:::-;25862:10;25143:734;-1:-1;;;;;;;;;25143:734::o;25884:222::-;-1:-1;;;;;48732:54;;;;6792:37;;26011:2;25996:18;;25982:124::o;26113:390::-;;26300:2;26321:17;26314:47;26375:118;26300:2;26289:9;26285:18;26479:6;26471;26375:118;:::i;26510:501::-;;26725:2;26746:17;26739:47;26800:118;26725:2;26714:9;26710:18;26904:6;26896;26800:118;:::i;:::-;26792:126;;8830:5;26997:2;26986:9;26982:18;8800:37;26696:315;;;;;;:::o;27018:612::-;;27261:2;27282:17;27275:47;27336:118;27261:2;27250:9;27246:18;27440:6;27432;27336:118;:::i;:::-;27533:2;27518:18;;8800:37;;;;-1:-1;27616:2;27601:18;8800:37;27328:126;27232:398;-1:-1;;27232:398::o;27637:481::-;27842:2;27856:47;;;46131:12;;27827:18;;;46663:19;;;27637:481;;46712:4;;46703:14;;;;45985;;;27637:481;8328:260;8353:6;8350:1;8347:13;8328:260;;;8414:13;;8800:37;;6693:14;;;;46518;;;;8375:1;8368:9;8328:260;;;-1:-1;;;28089:18;;8800:37;;;;27909:116;27813:305;-1:-1;;27813:305::o;28125:210::-;48487:13;;48480:21;8683:34;;28246:2;28231:18;;28217:118::o;28342:222::-;8800:37;;;28469:2;28454:18;;28440:124::o;28571:333::-;8800:37;;;28890:2;28875:18;;8800:37;28726:2;28711:18;;28697:207::o;28911:326::-;;29066:2;29087:17;29080:47;46675:6;29066:2;29055:9;29051:18;46663:19;48959:6;48954:3;46703:14;29055:9;46703:14;48936:30;48997:16;;;46703:14;48997:16;;;48990:27;;;;49473:7;49457:14;;;-1:-1;;49453:28;9124:39;;;29037:200;-1:-1;29037:200::o;29469:310::-;;29616:2;29637:17;29630:47;9802:5;46131:12;46675:6;29616:2;29605:9;29601:18;46663:19;9896:52;9941:6;46703:14;29605:9;46703:14;29616:2;9922:5;9918:16;9896:52;:::i;:::-;49473:7;49457:14;-1:-1;;49453:28;9960:39;;;;46703:14;9960:39;;29587:192;-1:-1;;29587:192::o;29786:416::-;29986:2;30000:47;;;10603:2;29971:18;;;46663:19;-1:-1;;;46703:14;;;10619:41;10679:12;;;29957:245::o;30209:416::-;30409:2;30423:47;;;10930:2;30394:18;;;46663:19;-1:-1;;;46703:14;;;10946:40;11005:12;;;30380:245::o;30632:416::-;30832:2;30846:47;;;11256:2;30817:18;;;46663:19;-1:-1;;;46703:14;;;11272:45;11336:12;;;30803:245::o;31055:416::-;31255:2;31269:47;;;11587:2;31240:18;;;46663:19;-1:-1;;;46703:14;;;11603:39;11661:12;;;31226:245::o;31478:416::-;31678:2;31692:47;;;11912:2;31663:18;;;46663:19;-1:-1;;;46703:14;;;11928:44;11991:12;;;31649:245::o;31901:416::-;32101:2;32115:47;;;12242:2;32086:18;;;46663:19;-1:-1;;;46703:14;;;12258:42;12319:12;;;32072:245::o;32324:416::-;32524:2;32538:47;;;12570:2;32509:18;;;46663:19;-1:-1;;;46703:14;;;12586:42;12647:12;;;32495:245::o;32747:416::-;32947:2;32961:47;;;12898:2;32932:18;;;46663:19;12934:30;46703:14;;;12914:51;12984:12;;;32918:245::o;33170:416::-;33370:2;33384:47;;;13235:2;33355:18;;;46663:19;13271:34;46703:14;;;13251:55;-1:-1;;;13326:12;;;13319:28;13366:12;;;33341:245::o;33593:416::-;33793:2;33807:47;;;13617:2;33778:18;;;46663:19;-1:-1;;;46703:14;;;13633:34;13686:12;;;33764:245::o;34016:416::-;34216:2;34230:47;;;13937:2;34201:18;;;46663:19;13973:25;46703:14;;;13953:46;14018:12;;;34187:245::o;34439:416::-;34639:2;34653:47;;;14269:2;34624:18;;;46663:19;14305:28;46703:14;;;14285:49;14353:12;;;34610:245::o;34862:416::-;35062:2;35076:47;;;14604:2;35047:18;;;46663:19;-1:-1;;;46703:14;;;14620:43;-1:-1;14682:12;;35033:245::o;35285:416::-;35485:2;35499:47;;;14933:2;35470:18;;;46663:19;-1:-1;;;46703:14;;;14949:45;15013:12;;;35456:245::o;35708:416::-;35908:2;35922:47;;;15264:2;35893:18;;;46663:19;-1:-1;;;46703:14;;;15280:45;15344:12;;;35879:245::o;36131:416::-;36331:2;36345:47;;;15595:2;36316:18;;;46663:19;15631:25;46703:14;;;15611:46;15676:12;;;36302:245::o;36554:416::-;36754:2;36768:47;;;15927:2;36739:18;;;46663:19;-1:-1;;;46703:14;;;15943:41;16003:12;;;36725:245::o;36977:416::-;37177:2;37191:47;;;16254:2;37162:18;;;46663:19;16290:30;46703:14;;;16270:51;16340:12;;;37148:245::o;37400:416::-;37600:2;37614:47;;;16591:2;37585:18;;;46663:19;16627:26;46703:14;;;16607:47;16673:12;;;37571:245::o;37823:416::-;38023:2;38037:47;;;16924:2;38008:18;;;46663:19;-1:-1;;;46703:14;;;16940:43;17002:12;;;37994:245::o;38246:416::-;38446:2;38460:47;;;17253:2;38431:18;;;46663:19;17289:27;46703:14;;;17269:48;17336:12;;;38417:245::o;38669:416::-;38869:2;38883:47;;;17587:2;38854:18;;;46663:19;17623:27;46703:14;;;17603:48;17670:12;;;38840:245::o;39092:416::-;39292:2;39306:47;;;17921:1;39277:18;;;46663:19;-1:-1;;;46703:14;;;17936:32;17987:12;;;39263:245::o;39515:416::-;39715:2;39729:47;;;18238:2;39700:18;;;46663:19;-1:-1;;;46703:14;;;18254:38;18311:12;;;39686:245::o;39938:416::-;40138:2;40152:47;;;18562:2;40123:18;;;46663:19;-1:-1;;;46703:14;;;18578:34;18631:12;;;40109:245::o;40361:416::-;40561:2;40575:47;;;18882:2;40546:18;;;46663:19;-1:-1;;;46703:14;;;18898:42;18959:12;;;40532:245::o;40784:416::-;40984:2;40998:47;;;19210:2;40969:18;;;46663:19;19246:25;46703:14;;;19226:46;19291:12;;;40955:245::o;41207:416::-;41407:2;41421:47;;;19542:2;41392:18;;;46663:19;19578:28;46703:14;;;19558:49;19626:12;;;41378:245::o;41630:416::-;41830:2;41844:47;;;20182:2;41815:18;;;46663:19;-1:-1;;;46703:14;;;20198:42;20259:12;;;41801:245::o;42053:416::-;42253:2;42267:47;;;20510:2;42238:18;;;46663:19;-1:-1;;;46703:14;;;20526:36;20581:12;;;42224:245::o;42476:416::-;42676:2;42690:47;;;20832:2;42661:18;;;46663:19;-1:-1;;;46703:14;;;20848:43;20910:12;;;42647:245::o;42899:416::-;43099:2;43113:47;;;21161:2;43084:18;;;46663:19;-1:-1;;;46703:14;;;21177:43;-1:-1;21239:12;;43070:245::o;43322:416::-;43522:2;43536:47;;;21490:2;43507:18;;;46663:19;-1:-1;;;46703:14;;;21506:35;21560:12;;;43493:245::o;43745:416::-;43945:2;43959:47;;;21811:2;43930:18;;;46663:19;21847:34;46703:14;;;21827:55;-1:-1;;;21902:12;;;21895:26;21940:12;;;43916:245::o;44168:416::-;44368:2;44382:47;;;22191:2;44353:18;;;46663:19;22227:34;46703:14;;;22207:55;-1:-1;;;22282:12;;;22275:25;22319:12;;;44339:245::o;44820:440::-;8800:37;;;45163:2;45148:18;;8800:37;;;;45246:2;45231:18;;8800:37;45001:2;44986:18;;44972:288::o;47550:335::-;;;47716:8;47704:10;47701:24;47698:2;;;-1:-1;;47728:12;47698:2;47763:6;47753:8;47750:20;47747:2;;;-1:-1;;47773:12;47747:2;-1:-1;;47833:2;47817:19;;47805:32;;47855:25;;;;;-1:-1;47692:193::o;47892:318::-;;;48042:8;48030:10;48027:24;48024:2;;;-1:-1;;48054:12;48024:2;48089:6;48079:8;48076:20;48073:2;;;-1:-1;;48099:12;48073:2;-1:-1;;48131:31;;;48180:25;;;;;-1:-1;48018:192::o;49032:268::-;49097:1;49104:101;49118:6;49115:1;49112:13;49104:101;;;49185:11;;;49179:18;49166:11;;;49159:39;49140:2;49133:10;49104:101;;;49220:6;49217:1;49214:13;49211:2;;;49097:1;49276:6;49271:3;49267:16;49260:27;49211:2;;49081:219;;;:::o;49494:117::-;-1:-1;;;;;48732:54;;49553:35;;49543:2;;49602:1;;49592:12", - "linkReferences": {}, - "immutableReferences": { - "460": [ - { - "start": 2358, - "length": 32 - } - ] - } - }, - "methodIdentifiers": { - "cancelL1ToL2Message(uint256,uint256,uint256[],uint256)": "6170ff1b", - "configHash()": "e1f1176d", - "consumeMessageFromL2(uint256,uint256[])": "2c9dd5c0", - "finalize()": "4bb278f3", - "getMaxL1MsgFee()": "54eccba4", - "identify()": "eeb72866", - "initialize(bytes)": "439fab91", - "isFinalized()": "8d4e4083", - "isFrozen()": "33eeb147", - "isOperator(address)": "6d70f7ae", - "l1ToL2MessageCancellations(bytes32)": "9be446bf", - "l1ToL2MessageNonce()": "018cccdf", - "l1ToL2Messages(bytes32)": "77c7d7a9", - "l2ToL1Messages(bytes32)": "a46efaf3", - "messageCancellationDelay()": "8303bd8a", - "programHash()": "8a9bf090", - "registerOperator(address)": "3682a450", - "sendMessageToL2(uint256,uint256,uint256[])": "3e3aa6c5", - "setConfigHash(uint256)": "3d07b336", - "setMessageCancellationDelay(uint256)": "c99d397f", - "setProgramHash(uint256)": "e87e7332", - "starknetAcceptGovernance()": "946be3ed", - "starknetCancelNomination()": "e37fec25", - "starknetIsGovernor(address)": "01a01590", - "starknetNominateNewGovernor(address)": "91a66a26", - "starknetRemoveGovernor(address)": "84f921cd", - "startL1ToL2MessageCancellation(uint256,uint256,uint256[],uint256)": "7a98660b", - "stateBlockHash()": "382d83e3", - "stateBlockNumber()": "35befa5d", - "stateRoot()": "9588eca2", - "unregisterOperator(address)": "96115bc2", - "updateState(uint256[])": "853e2461" - }, - "rawMetadata": "{\"compiler\":{\"version\":\"0.6.12+commit.27d51765\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"changedBy\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldConfigHash\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newConfigHash\",\"type\":\"uint256\"}],\"name\":\"ConfigHashChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"fromAddress\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"toAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"payload\",\"type\":\"uint256[]\"}],\"name\":\"ConsumedMessageToL1\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"fromAddress\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"toAddress\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"selector\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"payload\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"}],\"name\":\"ConsumedMessageToL2\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"Finalized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"fromAddress\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"toAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"payload\",\"type\":\"uint256[]\"}],\"name\":\"LogMessageToL1\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"fromAddress\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"toAddress\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"selector\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"payload\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"name\":\"LogMessageToL2\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"acceptedGovernor\",\"type\":\"address\"}],\"name\":\"LogNewGovernorAccepted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"nominatedGovernor\",\"type\":\"address\"}],\"name\":\"LogNominatedGovernor\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"LogNominationCancelled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"LogOperatorAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"LogOperatorRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"removedGovernor\",\"type\":\"address\"}],\"name\":\"LogRemovedGovernor\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"stateTransitionFact\",\"type\":\"bytes32\"}],\"name\":\"LogStateTransitionFact\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"globalRoot\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"blockNumber\",\"type\":\"int256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"blockHash\",\"type\":\"uint256\"}],\"name\":\"LogStateUpdate\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"fromAddress\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"toAddress\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"selector\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"payload\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"}],\"name\":\"MessageToL2Canceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"fromAddress\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"toAddress\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"selector\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"payload\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"}],\"name\":\"MessageToL2CancellationStarted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"changedBy\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"oldProgramHash\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"newProgramHash\",\"type\":\"uint256\"}],\"name\":\"ProgramHashChanged\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"toAddress\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"selector\",\"type\":\"uint256\"},{\"internalType\":\"uint256[]\",\"name\":\"payload\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"}],\"name\":\"cancelL1ToL2Message\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"configHash\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"fromAddress\",\"type\":\"uint256\"},{\"internalType\":\"uint256[]\",\"name\":\"payload\",\"type\":\"uint256[]\"}],\"name\":\"consumeMessageFromL2\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"finalize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getMaxL1MsgFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"identify\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isFinalized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isFrozen\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"isOperator\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"msgHash\",\"type\":\"bytes32\"}],\"name\":\"l1ToL2MessageCancellations\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"l1ToL2MessageNonce\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"msgHash\",\"type\":\"bytes32\"}],\"name\":\"l1ToL2Messages\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"msgHash\",\"type\":\"bytes32\"}],\"name\":\"l2ToL1Messages\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"messageCancellationDelay\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"programHash\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOperator\",\"type\":\"address\"}],\"name\":\"registerOperator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"toAddress\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"selector\",\"type\":\"uint256\"},{\"internalType\":\"uint256[]\",\"name\":\"payload\",\"type\":\"uint256[]\"}],\"name\":\"sendMessageToL2\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newConfigHash\",\"type\":\"uint256\"}],\"name\":\"setConfigHash\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"delayInSeconds\",\"type\":\"uint256\"}],\"name\":\"setMessageCancellationDelay\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"newProgramHash\",\"type\":\"uint256\"}],\"name\":\"setProgramHash\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"starknetAcceptGovernance\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"starknetCancelNomination\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"starknetIsGovernor\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newGovernor\",\"type\":\"address\"}],\"name\":\"starknetNominateNewGovernor\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"governorForRemoval\",\"type\":\"address\"}],\"name\":\"starknetRemoveGovernor\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"toAddress\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"selector\",\"type\":\"uint256\"},{\"internalType\":\"uint256[]\",\"name\":\"payload\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"}],\"name\":\"startL1ToL2MessageCancellation\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stateBlockHash\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stateBlockNumber\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stateRoot\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"removedOperator\",\"type\":\"address\"}],\"name\":\"unregisterOperator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"programOutput\",\"type\":\"uint256[]\"}],\"name\":\"updateState\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"cancelL1ToL2Message(uint256,uint256,uint256[],uint256)\":{\"notice\":\"Cancels an L1 to L2 message, this function should be called at least messageCancellationDelay() seconds after the call to startL1ToL2MessageCancellation(). A message may only be cancelled by its sender. If the message is missing, the call will revert. Note that the message fee is not refunded.\"},\"consumeMessageFromL2(uint256,uint256[])\":{\"notice\":\"Consumes a message that was sent from an L2 contract. Returns the hash of the message.\"},\"getMaxL1MsgFee()\":{\"notice\":\"Returns the max fee (in Wei) that StarkNet will accept per single message.\"},\"identify()\":{\"notice\":\"Returns a string that identifies the contract.\"},\"l1ToL2MessageCancellations(bytes32)\":{\"notice\":\"Returns the timestamp at the time cancelL1ToL2Message was called with a message matching 'msgHash'. The function returns 0 if cancelL1ToL2Message was never called.\"},\"l1ToL2Messages(bytes32)\":{\"notice\":\"Returns the msg_fee + 1 for the message with the given 'msgHash', or 0 if no message with such a hash is pending.\"},\"sendMessageToL2(uint256,uint256,uint256[])\":{\"notice\":\"Sends a message to an L2 contract.\"},\"startL1ToL2MessageCancellation(uint256,uint256,uint256[],uint256)\":{\"notice\":\"Starts the cancellation of an L1 to L2 message. A message can be canceled messageCancellationDelay() seconds after this function is called. Note: This function may only be called for a message that is currently pending and the caller must be the sender of the that message.\"},\"stateBlockHash()\":{\"notice\":\"Returns the current block hash.\"},\"stateBlockNumber()\":{\"notice\":\"Returns the current block number.\"},\"stateRoot()\":{\"notice\":\"Returns the current state root.\"},\"updateState(uint256[])\":{\"notice\":\"Updates the state of the StarkNet, based on a proof of the StarkNet OS that the state transition is valid. Arguments: programOutput - The main part of the StarkNet OS program output. data_availability_fact - An encoding of the on-chain data associated with the 'programOutput'.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/StarknetValidium.sol\":\"Starknet\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":cairo-lang/=lib/cairo-lang/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":starknet-cc/=lib/cairo-lang/src/starkware/starknet/solidity/\",\":starknet-token/=lib/starknet-token/src/starkware/isd/\",\":starkware/isd/=lib/starknet-token/src/starkware/isd/\",\":starkware/solidity/=lib/cairo-lang/src/starkware/solidity/\"]},\"sources\":{\"lib/cairo-lang/src/starkware/solidity/components/Governance.sol\":{\"keccak256\":\"0xf95152fbacc9b6096be75c4a0f03bfc10b1a5d6219bd24ce61963b78d8ea4d7f\",\"license\":\"Apache-2.0.\",\"urls\":[\"bzz-raw://53814938c69e1ce9e911bacf16633ef2d555391e8dafd697fd7ee2f8b201c293\",\"dweb:/ipfs/QmVVXhKbDHLAnwmGHFBkRaMJ597PV4gdmHTxQFSVS7NiUu\"]},\"lib/cairo-lang/src/starkware/solidity/components/GovernedFinalizable.sol\":{\"keccak256\":\"0x99e7a7ce7494dffd1e29855ae193d8d8a8b1d8811dc5b4f65c11f53049f60718\",\"license\":\"Apache-2.0.\",\"urls\":[\"bzz-raw://82f5fb8443fdb206e0b161dd93ddd920e250fa29b1be7abc6999014cefdeb389\",\"dweb:/ipfs/QmYsdDfnxPc72HJANgRKNwdagWW3mzttrzMQ1T73abcVnx\"]},\"lib/cairo-lang/src/starkware/solidity/components/OnchainDataFactTreeEncoder.sol\":{\"keccak256\":\"0xb5fdb7ff413d7f06b0f62db39100f668fa2c89b22eb1232dd9b2b66b1df44490\",\"license\":\"Apache-2.0.\",\"urls\":[\"bzz-raw://a851defbca9032b49eae3bc5aae1f140c2ff45c8648ed56146cb738a80381a0c\",\"dweb:/ipfs/QmdKfzzP4zF5sdsZS74qo4o6YiGrWVCxzmeVj74rRnk8q4\"]},\"lib/cairo-lang/src/starkware/solidity/components/Operator.sol\":{\"keccak256\":\"0x9a6a1f3772861dc6d6645bd140bafa7f562fd630244316f754303e45a0b642b1\",\"license\":\"Apache-2.0.\",\"urls\":[\"bzz-raw://7aaf1f4d36727c33ba2c653ff1405cf4e1034ce274d87b6dfffcc1314eeac9d8\",\"dweb:/ipfs/QmYdpszZJkpZ3eybwTWx6ssWVSdTVKaEgoaPm42T1pKS36\"]},\"lib/cairo-lang/src/starkware/solidity/interfaces/BlockDirectCall.sol\":{\"keccak256\":\"0xe8d027bbe8defa2df3caded6a7c5149372475e16d5cbaee80d5b05d923536ff9\",\"license\":\"Apache-2.0.\",\"urls\":[\"bzz-raw://5f627a16e57292b1f58fad26970abb41c91be120da24712bbcd34a0b345b3f2d\",\"dweb:/ipfs/QmSk7WdEp1WwpHLZQdViuKJZ5E2C4w2YiFYKkKNiFPWc2E\"]},\"lib/cairo-lang/src/starkware/solidity/interfaces/ContractInitializer.sol\":{\"keccak256\":\"0x4899cc503a549113f495e45c1ca08a15c13f8f22d42468b1089f9279a41a9021\",\"license\":\"Apache-2.0.\",\"urls\":[\"bzz-raw://de484cf04271afc3b24a1cc0f37036a9707b6ff28efd69d9afe95d5b5bb0f4d4\",\"dweb:/ipfs/QmS2bNaTM2NpoiGZQH723z3zxtpZcfB8W5wXDTQKLqJzqM\"]},\"lib/cairo-lang/src/starkware/solidity/interfaces/IFactRegistry.sol\":{\"keccak256\":\"0xab04b296b506dfb0b4a8828f3dc463072fd50449a5ad8327d1baf01438b0fb35\",\"license\":\"Apache-2.0.\",\"urls\":[\"bzz-raw://e451abe007f98081d1adfd759cc4168f81982992d8c0554650b94d37bc009e64\",\"dweb:/ipfs/QmVBNUWFhNX8PqSMcqRkHVaTbcm7KNpgSg91Sj6MepFG6u\"]},\"lib/cairo-lang/src/starkware/solidity/interfaces/Identity.sol\":{\"keccak256\":\"0xe09f6920ecf39cfa9285164bfba092dc9fce892da3fb4e3839391b5c039c34ff\",\"license\":\"Apache-2.0.\",\"urls\":[\"bzz-raw://b68168b5efcfd7a269c1b50ca381776764ac460fe7be2354c1b2410a2c9676d5\",\"dweb:/ipfs/Qmagk5UEjwWkqMczGvxa3V2fG2h4779MbXZ23i5U98gMUo\"]},\"lib/cairo-lang/src/starkware/solidity/interfaces/MGovernance.sol\":{\"keccak256\":\"0x02dc54c223e2977a13a3e12bb60659598ce2c56bc8df3a27d8bb8e761c676c67\",\"license\":\"Apache-2.0.\",\"urls\":[\"bzz-raw://eff35423c5dc96cf0d223517c9eaca3dc028fbd8be9ec3f989299c6db8e8c5b2\",\"dweb:/ipfs/QmfDR7Yoq5Lz3zLLSj2jXoSojPYTrWp4HYhGRtXus4t1G6\"]},\"lib/cairo-lang/src/starkware/solidity/interfaces/MOperator.sol\":{\"keccak256\":\"0x00417855444c25ec8e3b119775a0f2c7407bffbf5db69a8347ce6313cda84bdf\",\"license\":\"Apache-2.0.\",\"urls\":[\"bzz-raw://0922504dd6f7d7c8011d26953b5e12a02b5af0f4308e17ea508b45686c4bd5aa\",\"dweb:/ipfs/QmcwebQGm1yLuhEYy2VnuR9vB9eWZJPRTTMWRxE3EXW43B\"]},\"lib/cairo-lang/src/starkware/solidity/interfaces/ProxySupport.sol\":{\"keccak256\":\"0xc2253392af4d0d80c55d8b45af6700353cc66a4633c931ee53f9485178758b7a\",\"license\":\"Apache-2.0.\",\"urls\":[\"bzz-raw://14c96384bd0a2924abd78fbdfbfcb9e3dc6a6ba4e26778cf18ceeb5e9ffdc758\",\"dweb:/ipfs/QmbXxostCT9v3fnH4Ao9tGcHY7A6i4KvsR7JrcNBNM8XPe\"]},\"lib/cairo-lang/src/starkware/solidity/libraries/Addresses.sol\":{\"keccak256\":\"0x05016ed8cfde52acab00e22bb6ad741b8c0a6d0c8e358b87e275314e22f64461\",\"license\":\"Apache-2.0.\",\"urls\":[\"bzz-raw://632b9cd4f05f3ce39b5cdf5d20aa68b8800c4e292fe49dd6e86ffca7bc3a75e6\",\"dweb:/ipfs/QmUnJbZSJ23yEoemcsDwaus214uymAVS1LkyGdRPvZJfnZ\"]},\"lib/cairo-lang/src/starkware/solidity/libraries/NamedStorage.sol\":{\"keccak256\":\"0x014ba48551c965e42b7e8f2e22f6f5f559f1ecaa6b1ce2dbf965e2b9808514ee\",\"license\":\"Apache-2.0.\",\"urls\":[\"bzz-raw://fb77540fd0d17b382d61e597862b29d164256f7224f0f39a534d2e1c3c161140\",\"dweb:/ipfs/QmYCombekr8CQvCCjBDFVniNCnreg9Z2TT78ZjdS3FGNsk\"]},\"lib/cairo-lang/src/starkware/starknet/solidity/IStarknetMessaging.sol\":{\"keccak256\":\"0x75d3dad61854e3115a97fa314066cd3ff4544fa712bea1a6595bbac7ef8e92f8\",\"license\":\"Apache-2.0.\",\"urls\":[\"bzz-raw://d5a07d8e15bfba827443a9f79f0465f1e24df4960a581754c6139964b56124c5\",\"dweb:/ipfs/QmUqBMSiC8b3T6L6mRFcxR83ByHK1q2KVo3nCoKsph8DJH\"]},\"lib/cairo-lang/src/starkware/starknet/solidity/IStarknetMessagingEvents.sol\":{\"keccak256\":\"0xfeac71f229049b84eb47fbdae456f9de2074016828a4529e00abd4eddc8bb844\",\"license\":\"Apache-2.0.\",\"urls\":[\"bzz-raw://c9acd4424ec21178670c3b1793f2f8d2c4d59ff0f22063ba5f60100f18f47b95\",\"dweb:/ipfs/QmTHjQARTTVRFnCeThphAVocQYSk2hXCYT2yDr6TmZccJP\"]},\"lib/cairo-lang/src/starkware/starknet/solidity/Output.sol\":{\"keccak256\":\"0x2ac3d70a983a64285d80a86e9d7aa54512b24975610331de72f097e66e62e518\",\"license\":\"Apache-2.0.\",\"urls\":[\"bzz-raw://b976a5bb24ba56e038fc3f9700c6cddf8d0c555fa2be5cd74db59cc26b8b25c0\",\"dweb:/ipfs/QmPCQPDJNmZZtpXHMm31gJz9CJshKgMviSQAXJ5V62dvbL\"]},\"lib/cairo-lang/src/starkware/starknet/solidity/StarknetGovernance.sol\":{\"keccak256\":\"0x8cbfaa3158fb569adc4cc2ac4b7c1045cce0eb180b365ecfaf2aec82f53d1ffe\",\"license\":\"Apache-2.0.\",\"urls\":[\"bzz-raw://196f9b478b3e766db7621bf6699a22cdab262203de63eed0ea29dfd614ef13d2\",\"dweb:/ipfs/QmeqGnZwcMHEHWwT4XzENy85XtFLty2y6j3o5k3JRYTpqm\"]},\"lib/cairo-lang/src/starkware/starknet/solidity/StarknetMessaging.sol\":{\"keccak256\":\"0xbab7ad137660d819316cdc502cd96b82db5ede18f580e7750bfd3ea4e65eb4fb\",\"license\":\"Apache-2.0.\",\"urls\":[\"bzz-raw://8bc3f628c8967f5179c604e77bd0cf9ad9ce9379240c130d50b38c713d6c3c21\",\"dweb:/ipfs/QmQXs5AzAbxxY6jicFNoHMepF5iAz2QppCjyZQjQZRy41J\"]},\"lib/cairo-lang/src/starkware/starknet/solidity/StarknetOperator.sol\":{\"keccak256\":\"0x2c1bdc4010e7b07a344336f1145cf8bedaced48fbfe91d065d185a2205ec3244\",\"license\":\"Apache-2.0.\",\"urls\":[\"bzz-raw://9847d7ee4b5eff9513ab3df92e3b00e16c67ddbd6e5affbc855cab3b9b9ab4ac\",\"dweb:/ipfs/QmXaKMszDZJFtCa9ujwMeAZd1FcUM68BHsXe1s5VZLSWPh\"]},\"lib/cairo-lang/src/starkware/starknet/solidity/StarknetState.sol\":{\"keccak256\":\"0x98689b355b5758e590f3b5611b6df41e87b04202ab5457127e35b030af905b4f\",\"license\":\"Apache-2.0.\",\"urls\":[\"bzz-raw://9ddafb29225921f0f985d654e634b077161fb298d6f23891ab6042e243b95233\",\"dweb:/ipfs/QmPMvx7j8SJe8tqw3cUNwDt2tiStSaz6y59cHGN7GgE6Rm\"]},\"src/StarknetValidium.sol\":{\"keccak256\":\"0xc764b87700d3e383c229e490e6b0d0167ba1f462c64597c24eff3c204185baab\",\"license\":\"Apache-2.0.\",\"urls\":[\"bzz-raw://9463375e63cc69c072ef952511973fa1d0ecdc8e8628d214a8970d4d1b8d4d14\",\"dweb:/ipfs/Qmd39hmPc8N11Ybb3auAxq6P5pcM7AgqmExbDTjaQPFx2Z\"]}},\"version\":1}", - "metadata": { - "compiler": { - "version": "0.6.12+commit.27d51765" - }, - "language": "Solidity", - "output": { - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "changedBy", - "type": "address", - "indexed": true - }, - { - "internalType": "uint256", - "name": "oldConfigHash", - "type": "uint256", - "indexed": false - }, - { - "internalType": "uint256", - "name": "newConfigHash", - "type": "uint256", - "indexed": false - } - ], - "type": "event", - "name": "ConfigHashChanged", - "anonymous": false - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "fromAddress", - "type": "uint256", - "indexed": true - }, - { - "internalType": "address", - "name": "toAddress", - "type": "address", - "indexed": true - }, - { - "internalType": "uint256[]", - "name": "payload", - "type": "uint256[]", - "indexed": false - } - ], - "type": "event", - "name": "ConsumedMessageToL1", - "anonymous": false - }, - { - "inputs": [ - { - "internalType": "address", - "name": "fromAddress", - "type": "address", - "indexed": true - }, - { - "internalType": "uint256", - "name": "toAddress", - "type": "uint256", - "indexed": true - }, - { - "internalType": "uint256", - "name": "selector", - "type": "uint256", - "indexed": true - }, - { - "internalType": "uint256[]", - "name": "payload", - "type": "uint256[]", - "indexed": false - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256", - "indexed": false - } - ], - "type": "event", - "name": "ConsumedMessageToL2", - "anonymous": false - }, - { - "inputs": [], - "type": "event", - "name": "Finalized", - "anonymous": false - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "fromAddress", - "type": "uint256", - "indexed": true - }, - { - "internalType": "address", - "name": "toAddress", - "type": "address", - "indexed": true - }, - { - "internalType": "uint256[]", - "name": "payload", - "type": "uint256[]", - "indexed": false - } - ], - "type": "event", - "name": "LogMessageToL1", - "anonymous": false - }, - { - "inputs": [ - { - "internalType": "address", - "name": "fromAddress", - "type": "address", - "indexed": true - }, - { - "internalType": "uint256", - "name": "toAddress", - "type": "uint256", - "indexed": true - }, - { - "internalType": "uint256", - "name": "selector", - "type": "uint256", - "indexed": true - }, - { - "internalType": "uint256[]", - "name": "payload", - "type": "uint256[]", - "indexed": false - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256", - "indexed": false - }, - { - "internalType": "uint256", - "name": "fee", - "type": "uint256", - "indexed": false - } - ], - "type": "event", - "name": "LogMessageToL2", - "anonymous": false - }, - { - "inputs": [ - { - "internalType": "address", - "name": "acceptedGovernor", - "type": "address", - "indexed": false - } - ], - "type": "event", - "name": "LogNewGovernorAccepted", - "anonymous": false - }, - { - "inputs": [ - { - "internalType": "address", - "name": "nominatedGovernor", - "type": "address", - "indexed": false - } - ], - "type": "event", - "name": "LogNominatedGovernor", - "anonymous": false - }, - { - "inputs": [], - "type": "event", - "name": "LogNominationCancelled", - "anonymous": false - }, - { - "inputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address", - "indexed": false - } - ], - "type": "event", - "name": "LogOperatorAdded", - "anonymous": false - }, - { - "inputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address", - "indexed": false - } - ], - "type": "event", - "name": "LogOperatorRemoved", - "anonymous": false - }, - { - "inputs": [ - { - "internalType": "address", - "name": "removedGovernor", - "type": "address", - "indexed": false - } - ], - "type": "event", - "name": "LogRemovedGovernor", - "anonymous": false - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "stateTransitionFact", - "type": "bytes32", - "indexed": false - } - ], - "type": "event", - "name": "LogStateTransitionFact", - "anonymous": false - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "globalRoot", - "type": "uint256", - "indexed": false - }, - { - "internalType": "int256", - "name": "blockNumber", - "type": "int256", - "indexed": false - }, - { - "internalType": "uint256", - "name": "blockHash", - "type": "uint256", - "indexed": false - } - ], - "type": "event", - "name": "LogStateUpdate", - "anonymous": false - }, - { - "inputs": [ - { - "internalType": "address", - "name": "fromAddress", - "type": "address", - "indexed": true - }, - { - "internalType": "uint256", - "name": "toAddress", - "type": "uint256", - "indexed": true - }, - { - "internalType": "uint256", - "name": "selector", - "type": "uint256", - "indexed": true - }, - { - "internalType": "uint256[]", - "name": "payload", - "type": "uint256[]", - "indexed": false - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256", - "indexed": false - } - ], - "type": "event", - "name": "MessageToL2Canceled", - "anonymous": false - }, - { - "inputs": [ - { - "internalType": "address", - "name": "fromAddress", - "type": "address", - "indexed": true - }, - { - "internalType": "uint256", - "name": "toAddress", - "type": "uint256", - "indexed": true - }, - { - "internalType": "uint256", - "name": "selector", - "type": "uint256", - "indexed": true - }, - { - "internalType": "uint256[]", - "name": "payload", - "type": "uint256[]", - "indexed": false - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256", - "indexed": false - } - ], - "type": "event", - "name": "MessageToL2CancellationStarted", - "anonymous": false - }, - { - "inputs": [ - { - "internalType": "address", - "name": "changedBy", - "type": "address", - "indexed": true - }, - { - "internalType": "uint256", - "name": "oldProgramHash", - "type": "uint256", - "indexed": false - }, - { - "internalType": "uint256", - "name": "newProgramHash", - "type": "uint256", - "indexed": false - } - ], - "type": "event", - "name": "ProgramHashChanged", - "anonymous": false - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "toAddress", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "selector", - "type": "uint256" - }, - { - "internalType": "uint256[]", - "name": "payload", - "type": "uint256[]" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "cancelL1ToL2Message", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ] - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "configHash", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ] - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "fromAddress", - "type": "uint256" - }, - { - "internalType": "uint256[]", - "name": "payload", - "type": "uint256[]" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "consumeMessageFromL2", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ] - }, - { - "inputs": [], - "stateMutability": "nonpayable", - "type": "function", - "name": "finalize" - }, - { - "inputs": [], - "stateMutability": "pure", - "type": "function", - "name": "getMaxL1MsgFee", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ] - }, - { - "inputs": [], - "stateMutability": "pure", - "type": "function", - "name": "identify", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ] - }, - { - "inputs": [ - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "initialize" - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "isFinalized", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ] - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "isFrozen", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ] - }, - { - "inputs": [ - { - "internalType": "address", - "name": "user", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function", - "name": "isOperator", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ] - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "msgHash", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function", - "name": "l1ToL2MessageCancellations", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ] - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "l1ToL2MessageNonce", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ] - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "msgHash", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function", - "name": "l1ToL2Messages", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ] - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "msgHash", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function", - "name": "l2ToL1Messages", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ] - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "messageCancellationDelay", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ] - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "programHash", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ] - }, - { - "inputs": [ - { - "internalType": "address", - "name": "newOperator", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "registerOperator" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "toAddress", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "selector", - "type": "uint256" - }, - { - "internalType": "uint256[]", - "name": "payload", - "type": "uint256[]" - } - ], - "stateMutability": "payable", - "type": "function", - "name": "sendMessageToL2", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ] - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "newConfigHash", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "setConfigHash" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "delayInSeconds", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "setMessageCancellationDelay" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "newProgramHash", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "setProgramHash" - }, - { - "inputs": [], - "stateMutability": "nonpayable", - "type": "function", - "name": "starknetAcceptGovernance" - }, - { - "inputs": [], - "stateMutability": "nonpayable", - "type": "function", - "name": "starknetCancelNomination" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "user", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function", - "name": "starknetIsGovernor", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ] - }, - { - "inputs": [ - { - "internalType": "address", - "name": "newGovernor", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "starknetNominateNewGovernor" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "governorForRemoval", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "starknetRemoveGovernor" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "toAddress", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "selector", - "type": "uint256" - }, - { - "internalType": "uint256[]", - "name": "payload", - "type": "uint256[]" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "startL1ToL2MessageCancellation", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ] - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "stateBlockHash", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ] - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "stateBlockNumber", - "outputs": [ - { - "internalType": "int256", - "name": "", - "type": "int256" - } - ] - }, - { - "inputs": [], - "stateMutability": "view", - "type": "function", - "name": "stateRoot", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ] - }, - { - "inputs": [ - { - "internalType": "address", - "name": "removedOperator", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "unregisterOperator" - }, - { - "inputs": [ - { - "internalType": "uint256[]", - "name": "programOutput", - "type": "uint256[]" - } - ], - "stateMutability": "nonpayable", - "type": "function", - "name": "updateState" - } - ], - "devdoc": { - "kind": "dev", - "methods": {}, - "version": 1 - }, - "userdoc": { - "kind": "user", - "methods": { - "cancelL1ToL2Message(uint256,uint256,uint256[],uint256)": { - "notice": "Cancels an L1 to L2 message, this function should be called at least messageCancellationDelay() seconds after the call to startL1ToL2MessageCancellation(). A message may only be cancelled by its sender. If the message is missing, the call will revert. Note that the message fee is not refunded." - }, - "consumeMessageFromL2(uint256,uint256[])": { - "notice": "Consumes a message that was sent from an L2 contract. Returns the hash of the message." - }, - "getMaxL1MsgFee()": { - "notice": "Returns the max fee (in Wei) that StarkNet will accept per single message." - }, - "identify()": { - "notice": "Returns a string that identifies the contract." - }, - "l1ToL2MessageCancellations(bytes32)": { - "notice": "Returns the timestamp at the time cancelL1ToL2Message was called with a message matching 'msgHash'. The function returns 0 if cancelL1ToL2Message was never called." - }, - "l1ToL2Messages(bytes32)": { - "notice": "Returns the msg_fee + 1 for the message with the given 'msgHash', or 0 if no message with such a hash is pending." - }, - "sendMessageToL2(uint256,uint256,uint256[])": { - "notice": "Sends a message to an L2 contract." - }, - "startL1ToL2MessageCancellation(uint256,uint256,uint256[],uint256)": { - "notice": "Starts the cancellation of an L1 to L2 message. A message can be canceled messageCancellationDelay() seconds after this function is called. Note: This function may only be called for a message that is currently pending and the caller must be the sender of the that message." - }, - "stateBlockHash()": { - "notice": "Returns the current block hash." - }, - "stateBlockNumber()": { - "notice": "Returns the current block number." - }, - "stateRoot()": { - "notice": "Returns the current state root." - }, - "updateState(uint256[])": { - "notice": "Updates the state of the StarkNet, based on a proof of the StarkNet OS that the state transition is valid. Arguments: programOutput - The main part of the StarkNet OS program output. data_availability_fact - An encoding of the on-chain data associated with the 'programOutput'." - } - }, - "version": 1 - } - }, - "settings": { - "remappings": [ - "cairo-lang/=lib/cairo-lang/src/", - "ds-test/=lib/forge-std/lib/ds-test/src/", - "forge-std/=lib/forge-std/src/", - "starknet-cc/=lib/cairo-lang/src/starkware/starknet/solidity/", - "starknet-token/=lib/starknet-token/src/starkware/isd/", - "starkware/isd/=lib/starknet-token/src/starkware/isd/", - "starkware/solidity/=lib/cairo-lang/src/starkware/solidity/" - ], - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs" - }, - "compilationTarget": { - "src/StarknetValidium.sol": "Starknet" - }, - "libraries": {} - }, - "sources": { - "lib/cairo-lang/src/starkware/solidity/components/Governance.sol": { - "keccak256": "0xf95152fbacc9b6096be75c4a0f03bfc10b1a5d6219bd24ce61963b78d8ea4d7f", - "urls": [ - "bzz-raw://53814938c69e1ce9e911bacf16633ef2d555391e8dafd697fd7ee2f8b201c293", - "dweb:/ipfs/QmVVXhKbDHLAnwmGHFBkRaMJ597PV4gdmHTxQFSVS7NiUu" - ], - "license": "Apache-2.0." - }, - "lib/cairo-lang/src/starkware/solidity/components/GovernedFinalizable.sol": { - "keccak256": "0x99e7a7ce7494dffd1e29855ae193d8d8a8b1d8811dc5b4f65c11f53049f60718", - "urls": [ - "bzz-raw://82f5fb8443fdb206e0b161dd93ddd920e250fa29b1be7abc6999014cefdeb389", - "dweb:/ipfs/QmYsdDfnxPc72HJANgRKNwdagWW3mzttrzMQ1T73abcVnx" - ], - "license": "Apache-2.0." - }, - "lib/cairo-lang/src/starkware/solidity/components/OnchainDataFactTreeEncoder.sol": { - "keccak256": "0xb5fdb7ff413d7f06b0f62db39100f668fa2c89b22eb1232dd9b2b66b1df44490", - "urls": [ - "bzz-raw://a851defbca9032b49eae3bc5aae1f140c2ff45c8648ed56146cb738a80381a0c", - "dweb:/ipfs/QmdKfzzP4zF5sdsZS74qo4o6YiGrWVCxzmeVj74rRnk8q4" - ], - "license": "Apache-2.0." - }, - "lib/cairo-lang/src/starkware/solidity/components/Operator.sol": { - "keccak256": "0x9a6a1f3772861dc6d6645bd140bafa7f562fd630244316f754303e45a0b642b1", - "urls": [ - "bzz-raw://7aaf1f4d36727c33ba2c653ff1405cf4e1034ce274d87b6dfffcc1314eeac9d8", - "dweb:/ipfs/QmYdpszZJkpZ3eybwTWx6ssWVSdTVKaEgoaPm42T1pKS36" - ], - "license": "Apache-2.0." - }, - "lib/cairo-lang/src/starkware/solidity/interfaces/BlockDirectCall.sol": { - "keccak256": "0xe8d027bbe8defa2df3caded6a7c5149372475e16d5cbaee80d5b05d923536ff9", - "urls": [ - "bzz-raw://5f627a16e57292b1f58fad26970abb41c91be120da24712bbcd34a0b345b3f2d", - "dweb:/ipfs/QmSk7WdEp1WwpHLZQdViuKJZ5E2C4w2YiFYKkKNiFPWc2E" - ], - "license": "Apache-2.0." - }, - "lib/cairo-lang/src/starkware/solidity/interfaces/ContractInitializer.sol": { - "keccak256": "0x4899cc503a549113f495e45c1ca08a15c13f8f22d42468b1089f9279a41a9021", - "urls": [ - "bzz-raw://de484cf04271afc3b24a1cc0f37036a9707b6ff28efd69d9afe95d5b5bb0f4d4", - "dweb:/ipfs/QmS2bNaTM2NpoiGZQH723z3zxtpZcfB8W5wXDTQKLqJzqM" - ], - "license": "Apache-2.0." - }, - "lib/cairo-lang/src/starkware/solidity/interfaces/IFactRegistry.sol": { - "keccak256": "0xab04b296b506dfb0b4a8828f3dc463072fd50449a5ad8327d1baf01438b0fb35", - "urls": [ - "bzz-raw://e451abe007f98081d1adfd759cc4168f81982992d8c0554650b94d37bc009e64", - "dweb:/ipfs/QmVBNUWFhNX8PqSMcqRkHVaTbcm7KNpgSg91Sj6MepFG6u" - ], - "license": "Apache-2.0." - }, - "lib/cairo-lang/src/starkware/solidity/interfaces/Identity.sol": { - "keccak256": "0xe09f6920ecf39cfa9285164bfba092dc9fce892da3fb4e3839391b5c039c34ff", - "urls": [ - "bzz-raw://b68168b5efcfd7a269c1b50ca381776764ac460fe7be2354c1b2410a2c9676d5", - "dweb:/ipfs/Qmagk5UEjwWkqMczGvxa3V2fG2h4779MbXZ23i5U98gMUo" - ], - "license": "Apache-2.0." - }, - "lib/cairo-lang/src/starkware/solidity/interfaces/MGovernance.sol": { - "keccak256": "0x02dc54c223e2977a13a3e12bb60659598ce2c56bc8df3a27d8bb8e761c676c67", - "urls": [ - "bzz-raw://eff35423c5dc96cf0d223517c9eaca3dc028fbd8be9ec3f989299c6db8e8c5b2", - "dweb:/ipfs/QmfDR7Yoq5Lz3zLLSj2jXoSojPYTrWp4HYhGRtXus4t1G6" - ], - "license": "Apache-2.0." - }, - "lib/cairo-lang/src/starkware/solidity/interfaces/MOperator.sol": { - "keccak256": "0x00417855444c25ec8e3b119775a0f2c7407bffbf5db69a8347ce6313cda84bdf", - "urls": [ - "bzz-raw://0922504dd6f7d7c8011d26953b5e12a02b5af0f4308e17ea508b45686c4bd5aa", - "dweb:/ipfs/QmcwebQGm1yLuhEYy2VnuR9vB9eWZJPRTTMWRxE3EXW43B" - ], - "license": "Apache-2.0." - }, - "lib/cairo-lang/src/starkware/solidity/interfaces/ProxySupport.sol": { - "keccak256": "0xc2253392af4d0d80c55d8b45af6700353cc66a4633c931ee53f9485178758b7a", - "urls": [ - "bzz-raw://14c96384bd0a2924abd78fbdfbfcb9e3dc6a6ba4e26778cf18ceeb5e9ffdc758", - "dweb:/ipfs/QmbXxostCT9v3fnH4Ao9tGcHY7A6i4KvsR7JrcNBNM8XPe" - ], - "license": "Apache-2.0." - }, - "lib/cairo-lang/src/starkware/solidity/libraries/Addresses.sol": { - "keccak256": "0x05016ed8cfde52acab00e22bb6ad741b8c0a6d0c8e358b87e275314e22f64461", - "urls": [ - "bzz-raw://632b9cd4f05f3ce39b5cdf5d20aa68b8800c4e292fe49dd6e86ffca7bc3a75e6", - "dweb:/ipfs/QmUnJbZSJ23yEoemcsDwaus214uymAVS1LkyGdRPvZJfnZ" - ], - "license": "Apache-2.0." - }, - "lib/cairo-lang/src/starkware/solidity/libraries/NamedStorage.sol": { - "keccak256": "0x014ba48551c965e42b7e8f2e22f6f5f559f1ecaa6b1ce2dbf965e2b9808514ee", - "urls": [ - "bzz-raw://fb77540fd0d17b382d61e597862b29d164256f7224f0f39a534d2e1c3c161140", - "dweb:/ipfs/QmYCombekr8CQvCCjBDFVniNCnreg9Z2TT78ZjdS3FGNsk" - ], - "license": "Apache-2.0." - }, - "lib/cairo-lang/src/starkware/starknet/solidity/IStarknetMessaging.sol": { - "keccak256": "0x75d3dad61854e3115a97fa314066cd3ff4544fa712bea1a6595bbac7ef8e92f8", - "urls": [ - "bzz-raw://d5a07d8e15bfba827443a9f79f0465f1e24df4960a581754c6139964b56124c5", - "dweb:/ipfs/QmUqBMSiC8b3T6L6mRFcxR83ByHK1q2KVo3nCoKsph8DJH" - ], - "license": "Apache-2.0." - }, - "lib/cairo-lang/src/starkware/starknet/solidity/IStarknetMessagingEvents.sol": { - "keccak256": "0xfeac71f229049b84eb47fbdae456f9de2074016828a4529e00abd4eddc8bb844", - "urls": [ - "bzz-raw://c9acd4424ec21178670c3b1793f2f8d2c4d59ff0f22063ba5f60100f18f47b95", - "dweb:/ipfs/QmTHjQARTTVRFnCeThphAVocQYSk2hXCYT2yDr6TmZccJP" - ], - "license": "Apache-2.0." - }, - "lib/cairo-lang/src/starkware/starknet/solidity/Output.sol": { - "keccak256": "0x2ac3d70a983a64285d80a86e9d7aa54512b24975610331de72f097e66e62e518", - "urls": [ - "bzz-raw://b976a5bb24ba56e038fc3f9700c6cddf8d0c555fa2be5cd74db59cc26b8b25c0", - "dweb:/ipfs/QmPCQPDJNmZZtpXHMm31gJz9CJshKgMviSQAXJ5V62dvbL" - ], - "license": "Apache-2.0." - }, - "lib/cairo-lang/src/starkware/starknet/solidity/StarknetGovernance.sol": { - "keccak256": "0x8cbfaa3158fb569adc4cc2ac4b7c1045cce0eb180b365ecfaf2aec82f53d1ffe", - "urls": [ - "bzz-raw://196f9b478b3e766db7621bf6699a22cdab262203de63eed0ea29dfd614ef13d2", - "dweb:/ipfs/QmeqGnZwcMHEHWwT4XzENy85XtFLty2y6j3o5k3JRYTpqm" - ], - "license": "Apache-2.0." - }, - "lib/cairo-lang/src/starkware/starknet/solidity/StarknetMessaging.sol": { - "keccak256": "0xbab7ad137660d819316cdc502cd96b82db5ede18f580e7750bfd3ea4e65eb4fb", - "urls": [ - "bzz-raw://8bc3f628c8967f5179c604e77bd0cf9ad9ce9379240c130d50b38c713d6c3c21", - "dweb:/ipfs/QmQXs5AzAbxxY6jicFNoHMepF5iAz2QppCjyZQjQZRy41J" - ], - "license": "Apache-2.0." - }, - "lib/cairo-lang/src/starkware/starknet/solidity/StarknetOperator.sol": { - "keccak256": "0x2c1bdc4010e7b07a344336f1145cf8bedaced48fbfe91d065d185a2205ec3244", - "urls": [ - "bzz-raw://9847d7ee4b5eff9513ab3df92e3b00e16c67ddbd6e5affbc855cab3b9b9ab4ac", - "dweb:/ipfs/QmXaKMszDZJFtCa9ujwMeAZd1FcUM68BHsXe1s5VZLSWPh" - ], - "license": "Apache-2.0." - }, - "lib/cairo-lang/src/starkware/starknet/solidity/StarknetState.sol": { - "keccak256": "0x98689b355b5758e590f3b5611b6df41e87b04202ab5457127e35b030af905b4f", - "urls": [ - "bzz-raw://9ddafb29225921f0f985d654e634b077161fb298d6f23891ab6042e243b95233", - "dweb:/ipfs/QmPMvx7j8SJe8tqw3cUNwDt2tiStSaz6y59cHGN7GgE6Rm" - ], - "license": "Apache-2.0." - }, - "src/StarknetValidium.sol": { - "keccak256": "0xc764b87700d3e383c229e490e6b0d0167ba1f462c64597c24eff3c204185baab", - "urls": [ - "bzz-raw://9463375e63cc69c072ef952511973fa1d0ecdc8e8628d214a8970d4d1b8d4d14", - "dweb:/ipfs/Qmd39hmPc8N11Ybb3auAxq6P5pcM7AgqmExbDTjaQPFx2Z" - ], - "license": "Apache-2.0." - } - }, - "version": 1 - }, - "ast": { - "absolutePath": "src/StarknetValidium.sol", - "id": 31651, - "exportedSymbols": { - "Starknet": [31650] - }, - "nodeType": "SourceUnit", - "src": "40:7828:37", - "nodes": [ - { - "id": 31173, - "nodeType": "PragmaDirective", - "src": "40:24:37", - "nodes": [], - "literals": ["solidity", "^", "0.6", ".12"] - }, - { - "id": 31174, - "nodeType": "PragmaDirective", - "src": "65:33:37", - "nodes": [], - "literals": ["experimental", "ABIEncoderV2"] - }, - { - "id": 31175, - "nodeType": "ImportDirective", - "src": "100:32:37", - "nodes": [], - "absolutePath": "lib/cairo-lang/src/starkware/starknet/solidity/Output.sol", - "file": "starknet-cc/Output.sol", - "scope": 31651, - "sourceUnit": 1654, - "symbolAliases": [], - "unitAlias": "" - }, - { - "id": 31176, - "nodeType": "ImportDirective", - "src": "133:44:37", - "nodes": [], - "absolutePath": "lib/cairo-lang/src/starkware/starknet/solidity/StarknetGovernance.sol", - "file": "starknet-cc/StarknetGovernance.sol", - "scope": 31651, - "sourceUnit": 1726, - "symbolAliases": [], - "unitAlias": "" - }, - { - "id": 31177, - "nodeType": "ImportDirective", - "src": "178:43:37", - "nodes": [], - "absolutePath": "lib/cairo-lang/src/starkware/starknet/solidity/StarknetMessaging.sol", - "file": "starknet-cc/StarknetMessaging.sol", - "scope": 31651, - "sourceUnit": 2201, - "symbolAliases": [], - "unitAlias": "" - }, - { - "id": 31178, - "nodeType": "ImportDirective", - "src": "222:42:37", - "nodes": [], - "absolutePath": "lib/cairo-lang/src/starkware/starknet/solidity/StarknetOperator.sol", - "file": "starknet-cc/StarknetOperator.sol", - "scope": 31651, - "sourceUnit": 2225, - "symbolAliases": [], - "unitAlias": "" - }, - { - "id": 31179, - "nodeType": "ImportDirective", - "src": "265:39:37", - "nodes": [], - "absolutePath": "lib/cairo-lang/src/starkware/starknet/solidity/StarknetState.sol", - "file": "starknet-cc/StarknetState.sol", - "scope": 31651, - "sourceUnit": 2334, - "symbolAliases": [], - "unitAlias": "" - }, - { - "id": 31180, - "nodeType": "ImportDirective", - "src": "305:63:37", - "nodes": [], - "absolutePath": "lib/cairo-lang/src/starkware/solidity/components/GovernedFinalizable.sol", - "file": "starkware/solidity/components/GovernedFinalizable.sol", - "scope": 31651, - "sourceUnit": 320, - "symbolAliases": [], - "unitAlias": "" - }, - { - "id": 31181, - "nodeType": "ImportDirective", - "src": "369:70:37", - "nodes": [], - "absolutePath": "lib/cairo-lang/src/starkware/solidity/components/OnchainDataFactTreeEncoder.sol", - "file": "starkware/solidity/components/OnchainDataFactTreeEncoder.sol", - "scope": 31651, - "sourceUnit": 382, - "symbolAliases": [], - "unitAlias": "" - }, - { - "id": 31182, - "nodeType": "ImportDirective", - "src": "440:63:37", - "nodes": [], - "absolutePath": "lib/cairo-lang/src/starkware/solidity/interfaces/ContractInitializer.sol", - "file": "starkware/solidity/interfaces/ContractInitializer.sol", - "scope": 31651, - "sourceUnit": 516, - "symbolAliases": [], - "unitAlias": "" - }, - { - "id": 31183, - "nodeType": "ImportDirective", - "src": "504:52:37", - "nodes": [], - "absolutePath": "lib/cairo-lang/src/starkware/solidity/interfaces/Identity.sol", - "file": "starkware/solidity/interfaces/Identity.sol", - "scope": 31651, - "sourceUnit": 534, - "symbolAliases": [], - "unitAlias": "" - }, - { - "id": 31184, - "nodeType": "ImportDirective", - "src": "557:57:37", - "nodes": [], - "absolutePath": "lib/cairo-lang/src/starkware/solidity/interfaces/IFactRegistry.sol", - "file": "starkware/solidity/interfaces/IFactRegistry.sol", - "scope": 31651, - "sourceUnit": 526, - "symbolAliases": [], - "unitAlias": "" - }, - { - "id": 31185, - "nodeType": "ImportDirective", - "src": "615:56:37", - "nodes": [], - "absolutePath": "lib/cairo-lang/src/starkware/solidity/interfaces/ProxySupport.sol", - "file": "starkware/solidity/interfaces/ProxySupport.sol", - "scope": 31651, - "sourceUnit": 774, - "symbolAliases": [], - "unitAlias": "" - }, - { - "id": 31186, - "nodeType": "ImportDirective", - "src": "672:55:37", - "nodes": [], - "absolutePath": "lib/cairo-lang/src/starkware/solidity/libraries/NamedStorage.sol", - "file": "starkware/solidity/libraries/NamedStorage.sol", - "scope": 31651, - "sourceUnit": 1107, - "symbolAliases": [], - "unitAlias": "" - }, - { - "id": 31650, - "nodeType": "ContractDefinition", - "src": "729:7138:37", - "nodes": [ - { - "id": 31203, - "nodeType": "UsingForDirective", - "src": "906:44:37", - "nodes": [], - "libraryName": { - "contractScope": null, - "id": 31201, - "name": "StarknetState", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2333, - "src": "912:13:37", - "typeDescriptions": { - "typeIdentifier": "t_contract$_StarknetState_$2333", - "typeString": "library StarknetState" - } - }, - "typeName": { - "contractScope": null, - "id": 31202, - "name": "StarknetState.State", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2234, - "src": "930:19:37", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$2234_storage_ptr", - "typeString": "struct StarknetState.State" - } - } - }, - { - "id": 31211, - "nodeType": "EventDefinition", - "src": "1011:127:37", - "nodes": [], - "anonymous": false, - "documentation": null, - "name": "ConfigHashChanged", - "parameters": { - "id": 31210, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 31205, - "indexed": true, - "mutability": "mutable", - "name": "changedBy", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 31211, - "src": "1044:25:37", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 31204, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1044:7:37", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 31207, - "indexed": false, - "mutability": "mutable", - "name": "oldConfigHash", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 31211, - "src": "1079:21:37", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 31206, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1079:7:37", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 31209, - "indexed": false, - "mutability": "mutable", - "name": "newConfigHash", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 31211, - "src": "1110:21:37", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 31208, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1110:7:37", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1034:103:37" - } - }, - { - "id": 31219, - "nodeType": "EventDefinition", - "src": "1196:80:37", - "nodes": [], - "anonymous": false, - "documentation": null, - "name": "LogStateUpdate", - "parameters": { - "id": 31218, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 31213, - "indexed": false, - "mutability": "mutable", - "name": "globalRoot", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 31219, - "src": "1217:18:37", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 31212, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1217:7:37", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 31215, - "indexed": false, - "mutability": "mutable", - "name": "blockNumber", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 31219, - "src": "1237:18:37", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "typeName": { - "id": 31214, - "name": "int256", - "nodeType": "ElementaryTypeName", - "src": "1237:6:37", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 31217, - "indexed": false, - "mutability": "mutable", - "name": "blockHash", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 31219, - "src": "1257:17:37", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 31216, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1257:7:37", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1216:59:37" - } - }, - { - "id": 31223, - "nodeType": "EventDefinition", - "src": "1351:58:37", - "nodes": [], - "anonymous": false, - "documentation": null, - "name": "LogStateTransitionFact", - "parameters": { - "id": 31222, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 31221, - "indexed": false, - "mutability": "mutable", - "name": "stateTransitionFact", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 31223, - "src": "1380:27:37", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 31220, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "1380:7:37", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1379:29:37" - } - }, - { - "id": 31231, - "nodeType": "EventDefinition", - "src": "1474:130:37", - "nodes": [], - "anonymous": false, - "documentation": null, - "name": "ProgramHashChanged", - "parameters": { - "id": 31230, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 31225, - "indexed": true, - "mutability": "mutable", - "name": "changedBy", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 31231, - "src": "1508:25:37", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 31224, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1508:7:37", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 31227, - "indexed": false, - "mutability": "mutable", - "name": "oldProgramHash", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 31231, - "src": "1543:22:37", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 31226, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1543:7:37", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 31229, - "indexed": false, - "mutability": "mutable", - "name": "newProgramHash", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 31231, - "src": "1575:22:37", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 31228, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1575:7:37", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1498:105:37" - } - }, - { - "id": 31234, - "nodeType": "VariableDeclaration", - "src": "1643:81:37", - "nodes": [], - "constant": true, - "mutability": "constant", - "name": "PROGRAM_HASH_TAG", - "overrides": null, - "scope": 31650, - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 31232, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1643:6:37", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "535441524b4e45545f312e305f494e49545f50524f4752414d5f484153485f55494e54", - "id": 31233, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1687:37:37", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_8cde0e99a4532474b22bd3952cb1c6b00478babd3678337325283f4f48110fc4", - "typeString": "literal_string \"STARKNET_1.0_INIT_PROGRAM_HASH_UINT\"" - }, - "value": "STARKNET_1.0_INIT_PROGRAM_HASH_UINT" - }, - "visibility": "internal" - }, - { - "id": 31237, - "nodeType": "VariableDeclaration", - "src": "1730:84:37", - "nodes": [], - "constant": true, - "mutability": "constant", - "name": "VERIFIER_ADDRESS_TAG", - "overrides": null, - "scope": 31650, - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 31235, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1730:6:37", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "535441524b4e45545f312e305f494e49545f56455249464945525f41444452455353", - "id": 31236, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1778:36:37", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_04e7be39f2fb63cfd7d4fcfe19f108bc6b411ed972d99fca0a47dcaff878ce5e", - "typeString": "literal_string \"STARKNET_1.0_INIT_VERIFIER_ADDRESS\"" - }, - "value": "STARKNET_1.0_INIT_VERIFIER_ADDRESS" - }, - "visibility": "internal" - }, - { - "id": 31240, - "nodeType": "VariableDeclaration", - "src": "1820:85:37", - "nodes": [], - "constant": true, - "mutability": "constant", - "name": "STATE_STRUCT_TAG", - "overrides": null, - "scope": 31650, - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 31238, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1820:6:37", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "535441524b4e45545f312e305f494e49545f535441524b4e45545f53544154455f535452554354", - "id": 31239, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1864:41:37", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_71a8ef1b1265359d77973c3524afac225c0a0d829a0d4da5cac3b34532019fec", - "typeString": "literal_string \"STARKNET_1.0_INIT_STARKNET_STATE_STRUCT\"" - }, - "value": "STARKNET_1.0_INIT_STARKNET_STATE_STRUCT" - }, - "visibility": "internal" - }, - { - "id": 31243, - "nodeType": "VariableDeclaration", - "src": "1952:78:37", - "nodes": [], - "constant": true, - "mutability": "constant", - "name": "CONFIG_HASH_TAG", - "overrides": null, - "scope": 31650, - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 31241, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1952:6:37", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "535441524b4e45545f312e305f535441524b4e45545f434f4e4649475f48415348", - "id": 31242, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1995:35:37", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_b4c82a817c6e58e43d4ecb2529caab94383420d8f31e963cfe54dfe32d2cca56", - "typeString": "literal_string \"STARKNET_1.0_STARKNET_CONFIG_HASH\"" - }, - "value": "STARKNET_1.0_STARKNET_CONFIG_HASH" - }, - "visibility": "internal" - }, - { - "id": 31265, - "nodeType": "FunctionDefinition", - "src": "2037:205:37", - "nodes": [], - "body": { - "id": 31264, - "nodeType": "Block", - "src": "2122:120:37", - "nodes": [], - "statements": [ - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 31253, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "2156:3:37", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 31254, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2156:10:37", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 31255, - "name": "programHash", - "nodeType": "Identifier", - "overloadedDeclarations": [31312, 31325], - "referencedDeclaration": 31312, - "src": "2168:11:37", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", - "typeString": "function () view returns (uint256)" - } - }, - "id": 31256, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2168:13:37", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 31257, - "name": "newProgramHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31245, - "src": "2183:14:37", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 31252, - "name": "ProgramHashChanged", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31231, - "src": "2137:18:37", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256,uint256)" - } - }, - "id": 31258, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2137:61:37", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 31259, - "nodeType": "EmitStatement", - "src": "2132:66:37" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 31261, - "name": "newProgramHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31245, - "src": "2220:14:37", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 31260, - "name": "programHash", - "nodeType": "Identifier", - "overloadedDeclarations": [31312, 31325], - "referencedDeclaration": 31325, - "src": "2208:11:37", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 31262, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2208:27:37", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 31263, - "nodeType": "ExpressionStatement", - "src": "2208:27:37" - } - ] - }, - "documentation": null, - "functionSelector": "e87e7332", - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 31248, - "modifierName": { - "argumentTypes": null, - "id": 31247, - "name": "notFinalized", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 300, - "src": "2094:12:37", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "2094:12:37" - }, - { - "arguments": null, - "id": 31250, - "modifierName": { - "argumentTypes": null, - "id": 31249, - "name": "onlyGovernance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 554, - "src": "2107:14:37", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "2107:14:37" - } - ], - "name": "setProgramHash", - "overrides": null, - "parameters": { - "id": 31246, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 31245, - "mutability": "mutable", - "name": "newProgramHash", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 31265, - "src": "2061:22:37", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 31244, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2061:7:37", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2060:24:37" - }, - "returnParameters": { - "id": 31251, - "nodeType": "ParameterList", - "parameters": [], - "src": "2122:0:37" - }, - "scope": 31650, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "id": 31287, - "nodeType": "FunctionDefinition", - "src": "2248:198:37", - "nodes": [], - "body": { - "id": 31286, - "nodeType": "Block", - "src": "2331:115:37", - "nodes": [], - "statements": [ - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 31275, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "2364:3:37", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 31276, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2364:10:37", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 31277, - "name": "configHash", - "nodeType": "Identifier", - "overloadedDeclarations": [31349, 31360], - "referencedDeclaration": 31360, - "src": "2376:10:37", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", - "typeString": "function () view returns (uint256)" - } - }, - "id": 31278, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2376:12:37", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 31279, - "name": "newConfigHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31267, - "src": "2390:13:37", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 31274, - "name": "ConfigHashChanged", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31211, - "src": "2346:17:37", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256,uint256)" - } - }, - "id": 31280, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2346:58:37", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 31281, - "nodeType": "EmitStatement", - "src": "2341:63:37" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 31283, - "name": "newConfigHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31267, - "src": "2425:13:37", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 31282, - "name": "configHash", - "nodeType": "Identifier", - "overloadedDeclarations": [31349, 31360], - "referencedDeclaration": 31349, - "src": "2414:10:37", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 31284, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2414:25:37", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 31285, - "nodeType": "ExpressionStatement", - "src": "2414:25:37" - } - ] - }, - "documentation": null, - "functionSelector": "3d07b336", - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 31270, - "modifierName": { - "argumentTypes": null, - "id": 31269, - "name": "notFinalized", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 300, - "src": "2303:12:37", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "2303:12:37" - }, - { - "arguments": null, - "id": 31272, - "modifierName": { - "argumentTypes": null, - "id": 31271, - "name": "onlyGovernance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 554, - "src": "2316:14:37", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "2316:14:37" - } - ], - "name": "setConfigHash", - "overrides": null, - "parameters": { - "id": 31268, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 31267, - "mutability": "mutable", - "name": "newConfigHash", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 31287, - "src": "2271:21:37", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 31266, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2271:7:37", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2270:23:37" - }, - "returnParameters": { - "id": 31273, - "nodeType": "ParameterList", - "parameters": [], - "src": "2331:0:37" - }, - "scope": 31650, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "id": 31301, - "nodeType": "FunctionDefinition", - "src": "2452:183:37", - "nodes": [], - "body": { - "id": 31300, - "nodeType": "Block", - "src": "2578:57:37", - "nodes": [], - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 31297, - "name": "delayInSeconds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31289, - "src": "2613:14:37", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 31296, - "name": "messageCancellationDelay", - "nodeType": "Identifier", - "overloadedDeclarations": [1836, 1849], - "referencedDeclaration": 1849, - "src": "2588:24:37", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 31298, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2588:40:37", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 31299, - "nodeType": "ExpressionStatement", - "src": "2588:40:37" - } - ] - }, - "documentation": null, - "functionSelector": "c99d397f", - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 31292, - "modifierName": { - "argumentTypes": null, - "id": 31291, - "name": "notFinalized", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 300, - "src": "2538:12:37", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "2538:12:37" - }, - { - "arguments": null, - "id": 31294, - "modifierName": { - "argumentTypes": null, - "id": 31293, - "name": "onlyGovernance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 554, - "src": "2559:14:37", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "2559:14:37" - } - ], - "name": "setMessageCancellationDelay", - "overrides": null, - "parameters": { - "id": 31290, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 31289, - "mutability": "mutable", - "name": "delayInSeconds", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 31301, - "src": "2489:22:37", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 31288, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2489:7:37", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2488:24:37" - }, - "returnParameters": { - "id": 31295, - "nodeType": "ParameterList", - "parameters": [], - "src": "2578:0:37" - }, - "scope": 31650, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - }, - { - "id": 31312, - "nodeType": "FunctionDefinition", - "src": "2699:120:37", - "nodes": [], - "body": { - "id": 31311, - "nodeType": "Block", - "src": "2752:67:37", - "nodes": [], - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 31308, - "name": "PROGRAM_HASH_TAG", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31234, - "src": "2795:16:37", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 31306, - "name": "NamedStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1106, - "src": "2769:12:37", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_NamedStorage_$1106_$", - "typeString": "type(library NamedStorage)" - } - }, - "id": 31307, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getUintValue", - "nodeType": "MemberAccess", - "referencedDeclaration": 968, - "src": "2769:25:37", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_string_memory_ptr_$returns$_t_uint256_$", - "typeString": "function (string memory) view returns (uint256)" - } - }, - "id": 31309, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2769:43:37", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 31305, - "id": 31310, - "nodeType": "Return", - "src": "2762:50:37" - } - ] - }, - "documentation": null, - "functionSelector": "8a9bf090", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "programHash", - "overrides": null, - "parameters": { - "id": 31302, - "nodeType": "ParameterList", - "parameters": [], - "src": "2719:2:37" - }, - "returnParameters": { - "id": 31305, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 31304, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 31312, - "src": "2743:7:37", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 31303, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2743:7:37", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2742:9:37" - }, - "scope": 31650, - "stateMutability": "view", - "virtual": false, - "visibility": "public" - }, - { - "id": 31325, - "nodeType": "FunctionDefinition", - "src": "2884:112:37", - "nodes": [], - "body": { - "id": 31324, - "nodeType": "Block", - "src": "2929:67:37", - "nodes": [], - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 31320, - "name": "PROGRAM_HASH_TAG", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31234, - "src": "2965:16:37", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 31321, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31314, - "src": "2983:5:37", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 31317, - "name": "NamedStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1106, - "src": "2939:12:37", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_NamedStorage_$1106_$", - "typeString": "type(library NamedStorage)" - } - }, - "id": 31319, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "setUintValue", - "nodeType": "MemberAccess", - "referencedDeclaration": 986, - "src": "2939:25:37", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$_t_uint256_$returns$__$", - "typeString": "function (string memory,uint256)" - } - }, - "id": 31322, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2939:50:37", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 31323, - "nodeType": "ExpressionStatement", - "src": "2939:50:37" - } - ] - }, - "documentation": null, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "programHash", - "overrides": null, - "parameters": { - "id": 31315, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 31314, - "mutability": "mutable", - "name": "value", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 31325, - "src": "2905:13:37", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 31313, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2905:7:37", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2904:15:37" - }, - "returnParameters": { - "id": 31316, - "nodeType": "ParameterList", - "parameters": [], - "src": "2929:0:37" - }, - "scope": 31650, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "id": 31336, - "nodeType": "FunctionDefinition", - "src": "3052:126:37", - "nodes": [], - "body": { - "id": 31335, - "nodeType": "Block", - "src": "3104:74:37", - "nodes": [], - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 31332, - "name": "VERIFIER_ADDRESS_TAG", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31237, - "src": "3150:20:37", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 31330, - "name": "NamedStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1106, - "src": "3121:12:37", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_NamedStorage_$1106_$", - "typeString": "type(library NamedStorage)" - } - }, - "id": 31331, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getAddressValue", - "nodeType": "MemberAccess", - "referencedDeclaration": 1026, - "src": "3121:28:37", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_string_memory_ptr_$returns$_t_address_$", - "typeString": "function (string memory) view returns (address)" - } - }, - "id": 31333, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3121:50:37", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 31329, - "id": 31334, - "nodeType": "Return", - "src": "3114:57:37" - } - ] - }, - "documentation": null, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "verifier", - "overrides": null, - "parameters": { - "id": 31326, - "nodeType": "ParameterList", - "parameters": [], - "src": "3069:2:37" - }, - "returnParameters": { - "id": 31329, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 31328, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 31336, - "src": "3095:7:37", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 31327, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3095:7:37", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3094:9:37" - }, - "scope": 31650, - "stateMutability": "view", - "virtual": false, - "visibility": "internal" - }, - { - "id": 31349, - "nodeType": "FunctionDefinition", - "src": "3242:110:37", - "nodes": [], - "body": { - "id": 31348, - "nodeType": "Block", - "src": "3286:66:37", - "nodes": [], - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 31344, - "name": "CONFIG_HASH_TAG", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31243, - "src": "3322:15:37", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 31345, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31338, - "src": "3339:5:37", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 31341, - "name": "NamedStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1106, - "src": "3296:12:37", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_NamedStorage_$1106_$", - "typeString": "type(library NamedStorage)" - } - }, - "id": 31343, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "setUintValue", - "nodeType": "MemberAccess", - "referencedDeclaration": 986, - "src": "3296:25:37", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$_t_uint256_$returns$__$", - "typeString": "function (string memory,uint256)" - } - }, - "id": 31346, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3296:49:37", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 31347, - "nodeType": "ExpressionStatement", - "src": "3296:49:37" - } - ] - }, - "documentation": null, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "configHash", - "overrides": null, - "parameters": { - "id": 31339, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 31338, - "mutability": "mutable", - "name": "value", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 31349, - "src": "3262:13:37", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 31337, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3262:7:37", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3261:15:37" - }, - "returnParameters": { - "id": 31340, - "nodeType": "ParameterList", - "parameters": [], - "src": "3286:0:37" - }, - "scope": 31650, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "id": 31360, - "nodeType": "FunctionDefinition", - "src": "3415:118:37", - "nodes": [], - "body": { - "id": 31359, - "nodeType": "Block", - "src": "3467:66:37", - "nodes": [], - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 31356, - "name": "CONFIG_HASH_TAG", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31243, - "src": "3510:15:37", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 31354, - "name": "NamedStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1106, - "src": "3484:12:37", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_NamedStorage_$1106_$", - "typeString": "type(library NamedStorage)" - } - }, - "id": 31355, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "getUintValue", - "nodeType": "MemberAccess", - "referencedDeclaration": 968, - "src": "3484:25:37", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_string_memory_ptr_$returns$_t_uint256_$", - "typeString": "function (string memory) view returns (uint256)" - } - }, - "id": 31357, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3484:42:37", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 31353, - "id": 31358, - "nodeType": "Return", - "src": "3477:49:37" - } - ] - }, - "documentation": null, - "functionSelector": "e1f1176d", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "configHash", - "overrides": null, - "parameters": { - "id": 31350, - "nodeType": "ParameterList", - "parameters": [], - "src": "3434:2:37" - }, - "returnParameters": { - "id": 31353, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 31352, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 31360, - "src": "3458:7:37", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 31351, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3458:7:37", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3457:9:37" - }, - "scope": 31650, - "stateMutability": "view", - "virtual": false, - "visibility": "public" - }, - { - "id": 31373, - "nodeType": "FunctionDefinition", - "src": "3539:130:37", - "nodes": [], - "body": { - "id": 31372, - "nodeType": "Block", - "src": "3591:78:37", - "nodes": [], - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 31368, - "name": "VERIFIER_ADDRESS_TAG", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31237, - "src": "3634:20:37", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 31369, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31362, - "src": "3656:5:37", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 31365, - "name": "NamedStorage", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1106, - "src": "3601:12:37", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_NamedStorage_$1106_$", - "typeString": "type(library NamedStorage)" - } - }, - "id": 31367, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "setAddressValueOnce", - "nodeType": "MemberAccess", - "referencedDeclaration": 1069, - "src": "3601:32:37", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$_t_address_$returns$__$", - "typeString": "function (string memory,address)" - } - }, - "id": 31370, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3601:61:37", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 31371, - "nodeType": "ExpressionStatement", - "src": "3601:61:37" - } - ] - }, - "documentation": null, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "setVerifierAddress", - "overrides": null, - "parameters": { - "id": 31363, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 31362, - "mutability": "mutable", - "name": "value", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 31373, - "src": "3567:13:37", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 31361, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3567:7:37", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3566:15:37" - }, - "returnParameters": { - "id": 31364, - "nodeType": "ParameterList", - "parameters": [], - "src": "3591:0:37" - }, - "scope": 31650, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "id": 31389, - "nodeType": "FunctionDefinition", - "src": "3722:232:37", - "nodes": [], - "body": { - "id": 31388, - "nodeType": "Block", - "src": "3803:151:37", - "nodes": [], - "statements": [ - { - "assignments": [31379], - "declarations": [ - { - "constant": false, - "id": 31379, - "mutability": "mutable", - "name": "location", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 31388, - "src": "3813:16:37", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 31378, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "3813:7:37", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 31386, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 31383, - "name": "STATE_STRUCT_TAG", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31240, - "src": "3859:16:37", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 31381, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -1, - "src": "3842:3:37", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 31382, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodePacked", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3842:16:37", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 31384, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3842:34:37", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 31380, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -8, - "src": "3832:9:37", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 31385, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3832:45:37", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3813:64:37" - }, - { - "AST": { - "nodeType": "YulBlock", - "src": "3896:52:37", - "statements": [ - { - "nodeType": "YulAssignment", - "src": "3910:28:37", - "value": { - "name": "location", - "nodeType": "YulIdentifier", - "src": "3930:8:37" - }, - "variableNames": [ - { - "name": "stateStruct_slot", - "nodeType": "YulIdentifier", - "src": "3910:16:37" - } - ] - } - ] - }, - "evmVersion": "istanbul", - "externalReferences": [ - { - "declaration": 31379, - "isOffset": false, - "isSlot": false, - "src": "3930:8:37", - "valueSize": 1 - }, - { - "declaration": 31376, - "isOffset": false, - "isSlot": true, - "src": "3910:16:37", - "valueSize": 1 - } - ], - "id": 31387, - "nodeType": "InlineAssembly", - "src": "3887:61:37" - } - ] - }, - "documentation": null, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "state", - "overrides": null, - "parameters": { - "id": 31374, - "nodeType": "ParameterList", - "parameters": [], - "src": "3736:2:37" - }, - "returnParameters": { - "id": 31377, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 31376, - "mutability": "mutable", - "name": "stateStruct", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 31389, - "src": "3762:39:37", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$2234_storage_ptr", - "typeString": "struct StarknetState.State" - }, - "typeName": { - "contractScope": null, - "id": 31375, - "name": "StarknetState.State", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2234, - "src": "3762:19:37", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$2234_storage_ptr", - "typeString": "struct StarknetState.State" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3761:41:37" - }, - "scope": 31650, - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "id": 31401, - "nodeType": "FunctionDefinition", - "src": "3960:105:37", - "nodes": [], - "body": { - "id": 31400, - "nodeType": "Block", - "src": "4023:42:37", - "nodes": [], - "statements": [ - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 31398, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 31395, - "name": "programHash", - "nodeType": "Identifier", - "overloadedDeclarations": [31312, 31325], - "referencedDeclaration": 31312, - "src": "4040:11:37", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", - "typeString": "function () view returns (uint256)" - } - }, - "id": 31396, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4040:13:37", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 31397, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4057:1:37", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "4040:18:37", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 31394, - "id": 31399, - "nodeType": "Return", - "src": "4033:25:37" - } - ] - }, - "baseFunctions": [499], - "documentation": null, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isInitialized", - "overrides": { - "id": 31391, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "3999:8:37" - }, - "parameters": { - "id": 31390, - "nodeType": "ParameterList", - "parameters": [], - "src": "3982:2:37" - }, - "returnParameters": { - "id": 31394, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 31393, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 31401, - "src": "4017:4:37", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 31392, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "4017:4:37", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4016:6:37" - }, - "scope": 31650, - "stateMutability": "view", - "virtual": false, - "visibility": "internal" - }, - { - "id": 31410, - "nodeType": "FunctionDefinition", - "src": "4071:95:37", - "nodes": [], - "body": { - "id": 31409, - "nodeType": "Block", - "src": "4141:25:37", - "nodes": [], - "statements": [ - { - "expression": { - "argumentTypes": null, - "hexValue": "30", - "id": 31407, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4158:1:37", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "functionReturnParameters": 31406, - "id": 31408, - "nodeType": "Return", - "src": "4151:8:37" - } - ] - }, - "baseFunctions": [494], - "documentation": null, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "numOfSubContracts", - "overrides": { - "id": 31403, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "4114:8:37" - }, - "parameters": { - "id": 31402, - "nodeType": "ParameterList", - "parameters": [], - "src": "4097:2:37" - }, - "returnParameters": { - "id": 31406, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 31405, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 31410, - "src": "4132:7:37", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 31404, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4132:7:37", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4131:9:37" - }, - "scope": 31650, - "stateMutability": "pure", - "virtual": false, - "visibility": "internal" - }, - { - "id": 31446, - "nodeType": "FunctionDefinition", - "src": "4172:266:37", - "nodes": [], - "body": { - "id": 31445, - "nodeType": "Block", - "src": "4242:196:37", - "nodes": [], - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 31422, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 31417, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31412, - "src": "4260:4:37", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - "id": 31418, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4260:11:37", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_rational_192_by_1", - "typeString": "int_const 192" - }, - "id": 31421, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "hexValue": "36", - "id": 31419, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4275:1:37", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_6_by_1", - "typeString": "int_const 6" - }, - "value": "6" - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3332", - "id": 31420, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4279:2:37", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_32_by_1", - "typeString": "int_const 32" - }, - "value": "32" - }, - "src": "4275:6:37", - "typeDescriptions": { - "typeIdentifier": "t_rational_192_by_1", - "typeString": "int_const 192" - } - }, - "src": "4260:21:37", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "494c4c4547414c5f494e49545f444154415f53495a45", - "id": 31423, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4283:24:37", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_14356eebb71e7931cad70fa351b8bc5bd32ed3af1a9628009fb6ec382db26522", - "typeString": "literal_string \"ILLEGAL_INIT_DATA_SIZE\"" - }, - "value": "ILLEGAL_INIT_DATA_SIZE" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_14356eebb71e7931cad70fa351b8bc5bd32ed3af1a9628009fb6ec382db26522", - "typeString": "literal_string \"ILLEGAL_INIT_DATA_SIZE\"" - } - ], - "id": 31416, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [-18, -18], - "referencedDeclaration": -18, - "src": "4252:7:37", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 31424, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4252:56:37", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 31425, - "nodeType": "ExpressionStatement", - "src": "4252:56:37" - }, - { - "assignments": [31427], - "declarations": [ - { - "constant": false, - "id": 31427, - "mutability": "mutable", - "name": "programHash_", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 31445, - "src": "4318:20:37", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 31426, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4318:7:37", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 31437, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 31430, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31412, - "src": "4352:4:37", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - "endExpression": { - "argumentTypes": null, - "hexValue": "3332", - "id": 31431, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4358:2:37", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_32_by_1", - "typeString": "int_const 32" - }, - "value": "32" - }, - "id": 31432, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexRangeAccess", - "src": "4352:9:37", - "startExpression": null, - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr_slice", - "typeString": "bytes calldata slice" - } - }, - { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "id": 31434, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4364:7:37", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": { - "id": 31433, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4364:7:37", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - } - ], - "id": 31435, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "4363:9:37", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr_slice", - "typeString": "bytes calldata slice" - }, - { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - } - ], - "expression": { - "argumentTypes": null, - "id": 31428, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -1, - "src": "4341:3:37", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 31429, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "decode", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4341:10:37", - "typeDescriptions": { - "typeIdentifier": "t_function_abidecode_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 31436, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4341:32:37", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4318:55:37" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 31441, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 31439, - "name": "programHash_", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31427, - "src": "4391:12:37", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 31440, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4407:1:37", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "4391:17:37", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4241445f494e495449414c495a4154494f4e", - "id": 31442, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4410:20:37", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_755bbc3475835b38d7a5e4a6c96c52430dc055820776347e2e8da2916177d245", - "typeString": "literal_string \"BAD_INITIALIZATION\"" - }, - "value": "BAD_INITIALIZATION" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_755bbc3475835b38d7a5e4a6c96c52430dc055820776347e2e8da2916177d245", - "typeString": "literal_string \"BAD_INITIALIZATION\"" - } - ], - "id": 31438, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [-18, -18], - "referencedDeclaration": -18, - "src": "4383:7:37", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 31443, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4383:48:37", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 31444, - "nodeType": "ExpressionStatement", - "src": "4383:48:37" - } - ] - }, - "baseFunctions": [504], - "documentation": null, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "validateInitData", - "overrides": { - "id": 31414, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "4233:8:37" - }, - "parameters": { - "id": 31413, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 31412, - "mutability": "mutable", - "name": "data", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 31446, - "src": "4198:19:37", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 31411, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4198:5:37", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4197:21:37" - }, - "returnParameters": { - "id": 31415, - "nodeType": "ParameterList", - "parameters": [], - "src": "4242:0:37" - }, - "scope": 31650, - "stateMutability": "view", - "virtual": false, - "visibility": "internal" - }, - { - "id": 31453, - "nodeType": "FunctionDefinition", - "src": "4444:94:37", - "nodes": [], - "body": { - "id": 31452, - "nodeType": "Block", - "src": "4536:2:37", - "nodes": [], - "statements": [] - }, - "baseFunctions": [509], - "documentation": null, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "processSubContractAddresses", - "overrides": { - "id": 31450, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "4527:8:37" - }, - "parameters": { - "id": 31449, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 31448, - "mutability": "mutable", - "name": "subContractAddresses", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 31453, - "src": "4481:35:37", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 31447, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4481:5:37", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4480:37:37" - }, - "returnParameters": { - "id": 31451, - "nodeType": "ParameterList", - "parameters": [], - "src": "4536:0:37" - }, - "scope": 31650, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "id": 31504, - "nodeType": "FunctionDefinition", - "src": "4544:505:37", - "nodes": [], - "body": { - "id": 31503, - "nodeType": "Block", - "src": "4616:433:37", - "nodes": [], - "statements": [ - { - "assignments": [31460, 31462, 31464, 31466], - "declarations": [ - { - "constant": false, - "id": 31460, - "mutability": "mutable", - "name": "programHash_", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 31503, - "src": "4640:20:37", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 31459, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4640:7:37", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 31462, - "mutability": "mutable", - "name": "verifier_", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 31503, - "src": "4674:17:37", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 31461, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4674:7:37", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 31464, - "mutability": "mutable", - "name": "configHash_", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 31503, - "src": "4705:19:37", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 31463, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4705:7:37", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 31466, - "mutability": "mutable", - "name": "initialState", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 31503, - "src": "4738:39:37", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$2234_memory_ptr", - "typeString": "struct StarknetState.State" - }, - "typeName": { - "contractScope": null, - "id": 31465, - "name": "StarknetState.State", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2234, - "src": "4738:19:37", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$2234_storage_ptr", - "typeString": "struct StarknetState.State" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 31480, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 31469, - "name": "data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31455, - "src": "4801:4:37", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "id": 31471, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4808:7:37", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": { - "id": 31470, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4808:7:37", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - { - "argumentTypes": null, - "id": 31473, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4817:7:37", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": { - "id": 31472, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4817:7:37", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - { - "argumentTypes": null, - "id": 31475, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4826:7:37", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": { - "id": 31474, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4826:7:37", - "typeDescriptions": { - "typeIdentifier": null, - "typeString": null - } - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 31476, - "name": "StarknetState", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2333, - "src": "4835:13:37", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_StarknetState_$2333_$", - "typeString": "type(library StarknetState)" - } - }, - "id": 31477, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "State", - "nodeType": "MemberAccess", - "referencedDeclaration": 2234, - "src": "4835:19:37", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_State_$2234_storage_ptr_$", - "typeString": "type(struct StarknetState.State storage pointer)" - } - } - ], - "id": 31478, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "4807:48:37", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_type$_t_uint256_$_$_t_type$_t_address_$_$_t_type$_t_uint256_$_$_t_type$_t_struct$_State_$2234_storage_ptr_$_$", - "typeString": "tuple(type(uint256),type(address),type(uint256),type(struct StarknetState.State storage pointer))" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - }, - { - "typeIdentifier": "t_tuple$_t_type$_t_uint256_$_$_t_type$_t_address_$_$_t_type$_t_uint256_$_$_t_type$_t_struct$_State_$2234_storage_ptr_$_$", - "typeString": "tuple(type(uint256),type(address),type(uint256),type(struct StarknetState.State storage pointer))" - } - ], - "expression": { - "argumentTypes": null, - "id": 31467, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -1, - "src": "4790:3:37", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 31468, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "decode", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4790:10:37", - "typeDescriptions": { - "typeIdentifier": "t_function_abidecode_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 31479, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4790:66:37", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_uint256_$_t_address_payable_$_t_uint256_$_t_struct$_State_$2234_memory_ptr_$", - "typeString": "tuple(uint256,address payable,uint256,struct StarknetState.State memory)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4626:230:37" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 31482, - "name": "programHash_", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31460, - "src": "4879:12:37", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 31481, - "name": "programHash", - "nodeType": "Identifier", - "overloadedDeclarations": [31312, 31325], - "referencedDeclaration": 31325, - "src": "4867:11:37", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 31483, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4867:25:37", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 31484, - "nodeType": "ExpressionStatement", - "src": "4867:25:37" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 31486, - "name": "verifier_", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31462, - "src": "4921:9:37", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 31485, - "name": "setVerifierAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31373, - "src": "4902:18:37", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 31487, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4902:29:37", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 31488, - "nodeType": "ExpressionStatement", - "src": "4902:29:37" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 31492, - "name": "initialState", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31466, - "src": "4954:12:37", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$2234_memory_ptr", - "typeString": "struct StarknetState.State memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_State_$2234_memory_ptr", - "typeString": "struct StarknetState.State memory" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 31489, - "name": "state", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31389, - "src": "4941:5:37", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_State_$2234_storage_ptr_$", - "typeString": "function () pure returns (struct StarknetState.State storage pointer)" - } - }, - "id": 31490, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4941:7:37", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$2234_storage_ptr", - "typeString": "struct StarknetState.State storage pointer" - } - }, - "id": 31491, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "copy", - "nodeType": "MemberAccess", - "referencedDeclaration": 2263, - "src": "4941:12:37", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_State_$2234_storage_ptr_$_t_struct$_State_$2234_memory_ptr_$returns$__$bound_to$_t_struct$_State_$2234_storage_ptr_$", - "typeString": "function (struct StarknetState.State storage pointer,struct StarknetState.State memory)" - } - }, - "id": 31493, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4941:26:37", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 31494, - "nodeType": "ExpressionStatement", - "src": "4941:26:37" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 31496, - "name": "configHash_", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31464, - "src": "4988:11:37", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 31495, - "name": "configHash", - "nodeType": "Identifier", - "overloadedDeclarations": [31349, 31360], - "referencedDeclaration": 31349, - "src": "4977:10:37", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 31497, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4977:23:37", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 31498, - "nodeType": "ExpressionStatement", - "src": "4977:23:37" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "35", - "id": 31500, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5035:6:37", - "subdenomination": "days", - "typeDescriptions": { - "typeIdentifier": "t_rational_432000_by_1", - "typeString": "int_const 432000" - }, - "value": "5" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_432000_by_1", - "typeString": "int_const 432000" - } - ], - "id": 31499, - "name": "messageCancellationDelay", - "nodeType": "Identifier", - "overloadedDeclarations": [1836, 1849], - "referencedDeclaration": 1849, - "src": "5010:24:37", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 31501, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5010:32:37", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 31502, - "nodeType": "ExpressionStatement", - "src": "5010:32:37" - } - ] - }, - "baseFunctions": [514], - "documentation": null, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "initializeContractState", - "overrides": { - "id": 31457, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "4607:8:37" - }, - "parameters": { - "id": 31456, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 31455, - "mutability": "mutable", - "name": "data", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 31504, - "src": "4577:19:37", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 31454, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4577:5:37", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4576:21:37" - }, - "returnParameters": { - "id": 31458, - "nodeType": "ParameterList", - "parameters": [], - "src": "4616:0:37" - }, - "scope": 31650, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "internal" - }, - { - "id": 31514, - "nodeType": "FunctionDefinition", - "src": "5123:118:37", - "nodes": [], - "body": { - "id": 31513, - "nodeType": "Block", - "src": "5190:51:37", - "nodes": [], - "statements": [ - { - "expression": { - "argumentTypes": null, - "hexValue": "537461726b576172655f537461726b6e65745f323032335f36", - "id": 31511, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5207:27:37", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_2a1b12eb18968846aa42f0439e8341082c05ab7ac9d4e10fe505d21d0bef4c39", - "typeString": "literal_string \"StarkWare_Starknet_2023_6\"" - }, - "value": "StarkWare_Starknet_2023_6" - }, - "functionReturnParameters": 31510, - "id": 31512, - "nodeType": "Return", - "src": "5200:34:37" - } - ] - }, - "baseFunctions": [532], - "documentation": { - "id": 31505, - "nodeType": "StructuredDocumentation", - "src": "5055:63:37", - "text": "Returns a string that identifies the contract." - }, - "functionSelector": "eeb72866", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "identify", - "overrides": { - "id": 31507, - "nodeType": "OverrideSpecifier", - "overrides": [], - "src": "5157:8:37" - }, - "parameters": { - "id": 31506, - "nodeType": "ParameterList", - "parameters": [], - "src": "5140:2:37" - }, - "returnParameters": { - "id": 31510, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 31509, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 31514, - "src": "5175:13:37", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 31508, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "5175:6:37", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5174:15:37" - }, - "scope": 31650, - "stateMutability": "pure", - "virtual": false, - "visibility": "external" - }, - { - "id": 31525, - "nodeType": "FunctionDefinition", - "src": "5300:95:37", - "nodes": [], - "body": { - "id": 31524, - "nodeType": "Block", - "src": "5353:42:37", - "nodes": [], - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 31520, - "name": "state", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31389, - "src": "5370:5:37", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_State_$2234_storage_ptr_$", - "typeString": "function () pure returns (struct StarknetState.State storage pointer)" - } - }, - "id": 31521, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5370:7:37", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$2234_storage_ptr", - "typeString": "struct StarknetState.State storage pointer" - } - }, - "id": 31522, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "globalRoot", - "nodeType": "MemberAccess", - "referencedDeclaration": 2229, - "src": "5370:18:37", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 31519, - "id": 31523, - "nodeType": "Return", - "src": "5363:25:37" - } - ] - }, - "documentation": { - "id": 31515, - "nodeType": "StructuredDocumentation", - "src": "5247:48:37", - "text": "Returns the current state root." - }, - "functionSelector": "9588eca2", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "stateRoot", - "overrides": null, - "parameters": { - "id": 31516, - "nodeType": "ParameterList", - "parameters": [], - "src": "5318:2:37" - }, - "returnParameters": { - "id": 31519, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 31518, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 31525, - "src": "5344:7:37", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 31517, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5344:7:37", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5343:9:37" - }, - "scope": 31650, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 31536, - "nodeType": "FunctionDefinition", - "src": "5456:102:37", - "nodes": [], - "body": { - "id": 31535, - "nodeType": "Block", - "src": "5515:43:37", - "nodes": [], - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 31531, - "name": "state", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31389, - "src": "5532:5:37", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_State_$2234_storage_ptr_$", - "typeString": "function () pure returns (struct StarknetState.State storage pointer)" - } - }, - "id": 31532, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5532:7:37", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$2234_storage_ptr", - "typeString": "struct StarknetState.State storage pointer" - } - }, - "id": 31533, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "blockNumber", - "nodeType": "MemberAccess", - "referencedDeclaration": 2231, - "src": "5532:19:37", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "functionReturnParameters": 31530, - "id": 31534, - "nodeType": "Return", - "src": "5525:26:37" - } - ] - }, - "documentation": { - "id": 31526, - "nodeType": "StructuredDocumentation", - "src": "5401:50:37", - "text": "Returns the current block number." - }, - "functionSelector": "35befa5d", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "stateBlockNumber", - "overrides": null, - "parameters": { - "id": 31527, - "nodeType": "ParameterList", - "parameters": [], - "src": "5481:2:37" - }, - "returnParameters": { - "id": 31530, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 31529, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 31536, - "src": "5507:6:37", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "typeName": { - "id": 31528, - "name": "int256", - "nodeType": "ElementaryTypeName", - "src": "5507:6:37", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5506:8:37" - }, - "scope": 31650, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 31547, - "nodeType": "FunctionDefinition", - "src": "5617:99:37", - "nodes": [], - "body": { - "id": 31546, - "nodeType": "Block", - "src": "5675:41:37", - "nodes": [], - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 31542, - "name": "state", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31389, - "src": "5692:5:37", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_State_$2234_storage_ptr_$", - "typeString": "function () pure returns (struct StarknetState.State storage pointer)" - } - }, - "id": 31543, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5692:7:37", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$2234_storage_ptr", - "typeString": "struct StarknetState.State storage pointer" - } - }, - "id": 31544, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "blockHash", - "nodeType": "MemberAccess", - "referencedDeclaration": 2233, - "src": "5692:17:37", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 31541, - "id": 31545, - "nodeType": "Return", - "src": "5685:24:37" - } - ] - }, - "documentation": { - "id": 31537, - "nodeType": "StructuredDocumentation", - "src": "5564:48:37", - "text": "Returns the current block hash." - }, - "functionSelector": "382d83e3", - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "stateBlockHash", - "overrides": null, - "parameters": { - "id": 31538, - "nodeType": "ParameterList", - "parameters": [], - "src": "5640:2:37" - }, - "returnParameters": { - "id": 31541, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 31540, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 31547, - "src": "5666:7:37", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 31539, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5666:7:37", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5665:9:37" - }, - "scope": 31650, - "stateMutability": "view", - "virtual": false, - "visibility": "external" - }, - { - "id": 31649, - "nodeType": "FunctionDefinition", - "src": "6058:1807:37", - "nodes": [], - "body": { - "id": 31648, - "nodeType": "Block", - "src": "6149:1716:37", - "nodes": [], - "statements": [ - { - "assignments": [31557], - "declarations": [ - { - "constant": false, - "id": 31557, - "mutability": "mutable", - "name": "initialBlockNumber", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 31648, - "src": "6331:25:37", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "typeName": { - "id": 31556, - "name": "int256", - "nodeType": "ElementaryTypeName", - "src": "6331:6:37", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 31561, - "initialValue": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 31558, - "name": "state", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31389, - "src": "6359:5:37", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_State_$2234_storage_ptr_$", - "typeString": "function () pure returns (struct StarknetState.State storage pointer)" - } - }, - "id": 31559, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6359:7:37", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$2234_storage_ptr", - "typeString": "struct StarknetState.State storage pointer" - } - }, - "id": 31560, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "blockNumber", - "nodeType": "MemberAccess", - "referencedDeclaration": 2231, - "src": "6359:19:37", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6331:47:37" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 31565, - "name": "programOutput", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31551, - "src": "6449:13:37", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", - "typeString": "uint256[] calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", - "typeString": "uint256[] calldata" - } - ], - "expression": { - "argumentTypes": null, - "id": 31562, - "name": "StarknetOutput", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1653, - "src": "6425:14:37", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_StarknetOutput_$1653_$", - "typeString": "type(library StarknetOutput)" - } - }, - "id": 31564, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "validate", - "nodeType": "MemberAccess", - "referencedDeclaration": 1363, - "src": "6425:23:37", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_array$_t_uint256_$dyn_calldata_ptr_$returns$__$", - "typeString": "function (uint256[] calldata) pure" - } - }, - "id": 31566, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6425:38:37", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 31567, - "nodeType": "ExpressionStatement", - "src": "6425:38:37" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 31575, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 31569, - "name": "configHash", - "nodeType": "Identifier", - "overloadedDeclarations": [31349, 31360], - "referencedDeclaration": 31360, - "src": "6528:10:37", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", - "typeString": "function () view returns (uint256)" - } - }, - "id": 31570, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6528:12:37", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 31571, - "name": "programOutput", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31551, - "src": "6544:13:37", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", - "typeString": "uint256[] calldata" - } - }, - "id": 31574, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 31572, - "name": "StarknetOutput", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1653, - "src": "6558:14:37", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_StarknetOutput_$1653_$", - "typeString": "type(library StarknetOutput)" - } - }, - "id": 31573, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "CONFIG_HASH_OFFSET", - "nodeType": "MemberAccess", - "referencedDeclaration": 1292, - "src": "6558:33:37", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6544:48:37", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6528:64:37", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "494e56414c49445f434f4e4649475f48415348", - "id": 31576, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6606:21:37", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_1e15566847ed1c19ce14d62c724c85d7702676fc6f806d61315d57d0377541dc", - "typeString": "literal_string \"INVALID_CONFIG_HASH\"" - }, - "value": "INVALID_CONFIG_HASH" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_1e15566847ed1c19ce14d62c724c85d7702676fc6f806d61315d57d0377541dc", - "typeString": "literal_string \"INVALID_CONFIG_HASH\"" - } - ], - "id": 31568, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [-18, -18], - "referencedDeclaration": -18, - "src": "6507:7:37", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 31577, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6507:130:37", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 31578, - "nodeType": "ExpressionStatement", - "src": "6507:130:37" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 31582, - "name": "programOutput", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31551, - "src": "6663:13:37", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", - "typeString": "uint256[] calldata" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", - "typeString": "uint256[] calldata" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 31579, - "name": "state", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31389, - "src": "6648:5:37", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_State_$2234_storage_ptr_$", - "typeString": "function () pure returns (struct StarknetState.State storage pointer)" - } - }, - "id": 31580, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6648:7:37", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$2234_storage_ptr", - "typeString": "struct StarknetState.State storage pointer" - } - }, - "id": 31581, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "update", - "nodeType": "MemberAccess", - "referencedDeclaration": 2332, - "src": "6648:14:37", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_State_$2234_storage_ptr_$_t_array$_t_uint256_$dyn_calldata_ptr_$returns$__$bound_to$_t_struct$_State_$2234_storage_ptr_$", - "typeString": "function (struct StarknetState.State storage pointer,uint256[] calldata)" - } - }, - "id": 31583, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6648:29:37", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 31584, - "nodeType": "ExpressionStatement", - "src": "6648:29:37" - }, - { - "assignments": [31586], - "declarations": [ - { - "constant": false, - "id": 31586, - "mutability": "mutable", - "name": "outputOffset", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 31648, - "src": "6910:20:37", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 31585, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6910:7:37", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 31589, - "initialValue": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 31587, - "name": "StarknetOutput", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1653, - "src": "6933:14:37", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_StarknetOutput_$1653_$", - "typeString": "type(library StarknetOutput)" - } - }, - "id": 31588, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "HEADER_SIZE", - "nodeType": "MemberAccess", - "referencedDeclaration": 1295, - "src": "6933:26:37", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6910:49:37" - }, - { - "expression": { - "argumentTypes": null, - "id": 31600, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 31590, - "name": "outputOffset", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31586, - "src": "6969:12:37", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "74727565", - "id": 31593, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7054:4:37", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 31594, - "name": "programOutput", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31551, - "src": "7072:13:37", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", - "typeString": "uint256[] calldata" - } - }, - "endExpression": null, - "id": 31596, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexRangeAccess", - "src": "7072:28:37", - "startExpression": { - "argumentTypes": null, - "id": 31595, - "name": "outputOffset", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31586, - "src": "7086:12:37", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr_slice", - "typeString": "uint256[] calldata slice" - } - }, - { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 31597, - "name": "l2ToL1Messages", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1814, - "src": "7114:14:37", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$__$returns$_t_mapping$_t_bytes32_$_t_uint256_$_$", - "typeString": "function () pure returns (mapping(bytes32 => uint256))" - } - }, - "id": 31598, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7114:16:37", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr_slice", - "typeString": "uint256[] calldata slice" - }, - { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - } - ], - "expression": { - "argumentTypes": null, - "id": 31591, - "name": "StarknetOutput", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1653, - "src": "6985:14:37", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_StarknetOutput_$1653_$", - "typeString": "type(library StarknetOutput)" - } - }, - "id": 31592, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "processMessages", - "nodeType": "MemberAccess", - "referencedDeclaration": 1652, - "src": "6985:30:37", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bool_$_t_array$_t_uint256_$dyn_calldata_ptr_$_t_mapping$_t_bytes32_$_t_uint256_$_$returns$_t_uint256_$", - "typeString": "function (bool,uint256[] calldata,mapping(bytes32 => uint256)) returns (uint256)" - } - }, - "id": 31599, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6985:155:37", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6969:171:37", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 31601, - "nodeType": "ExpressionStatement", - "src": "6969:171:37" - }, - { - "expression": { - "argumentTypes": null, - "id": 31612, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 31602, - "name": "outputOffset", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31586, - "src": "7189:12:37", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 31605, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7274:5:37", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 31606, - "name": "programOutput", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31551, - "src": "7293:13:37", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", - "typeString": "uint256[] calldata" - } - }, - "endExpression": null, - "id": 31608, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexRangeAccess", - "src": "7293:28:37", - "startExpression": { - "argumentTypes": null, - "id": 31607, - "name": "outputOffset", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31586, - "src": "7307:12:37", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr_slice", - "typeString": "uint256[] calldata slice" - } - }, - { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 31609, - "name": "l1ToL2Messages", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1801, - "src": "7335:14:37", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$__$returns$_t_mapping$_t_bytes32_$_t_uint256_$_$", - "typeString": "function () pure returns (mapping(bytes32 => uint256))" - } - }, - "id": 31610, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7335:16:37", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr_slice", - "typeString": "uint256[] calldata slice" - }, - { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", - "typeString": "mapping(bytes32 => uint256)" - } - ], - "expression": { - "argumentTypes": null, - "id": 31603, - "name": "StarknetOutput", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1653, - "src": "7205:14:37", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_StarknetOutput_$1653_$", - "typeString": "type(library StarknetOutput)" - } - }, - "id": 31604, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "processMessages", - "nodeType": "MemberAccess", - "referencedDeclaration": 1652, - "src": "7205:30:37", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bool_$_t_array$_t_uint256_$dyn_calldata_ptr_$_t_mapping$_t_bytes32_$_t_uint256_$_$returns$_t_uint256_$", - "typeString": "function (bool,uint256[] calldata,mapping(bytes32 => uint256)) returns (uint256)" - } - }, - "id": 31611, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7205:156:37", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7189:172:37", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 31613, - "nodeType": "ExpressionStatement", - "src": "7189:172:37" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 31618, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 31615, - "name": "outputOffset", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31586, - "src": "7379:12:37", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 31616, - "name": "programOutput", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31551, - "src": "7395:13:37", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", - "typeString": "uint256[] calldata" - } - }, - "id": 31617, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7395:20:37", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7379:36:37", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "535441524b4e45545f4f55545055545f544f4f5f4c4f4e47", - "id": 31619, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7417:26:37", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_81aab34693ff9205394810638bf8ae3f6aba0692d74a5c21cdfb88a363048a6c", - "typeString": "literal_string \"STARKNET_OUTPUT_TOO_LONG\"" - }, - "value": "STARKNET_OUTPUT_TOO_LONG" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_81aab34693ff9205394810638bf8ae3f6aba0692d74a5c21cdfb88a363048a6c", - "typeString": "literal_string \"STARKNET_OUTPUT_TOO_LONG\"" - } - ], - "id": 31614, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [-18, -18], - "referencedDeclaration": -18, - "src": "7371:7:37", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 31620, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7371:73:37", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 31621, - "nodeType": "ExpressionStatement", - "src": "7371:73:37" - }, - { - "assignments": [31625], - "declarations": [ - { - "constant": false, - "id": 31625, - "mutability": "mutable", - "name": "state_", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 31648, - "src": "7588:34:37", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$2234_storage_ptr", - "typeString": "struct StarknetState.State" - }, - "typeName": { - "contractScope": null, - "id": 31624, - "name": "StarknetState.State", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2234, - "src": "7588:19:37", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$2234_storage_ptr", - "typeString": "struct StarknetState.State" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 31628, - "initialValue": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 31626, - "name": "state", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31389, - "src": "7625:5:37", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_State_$2234_storage_ptr_$", - "typeString": "function () pure returns (struct StarknetState.State storage pointer)" - } - }, - "id": 31627, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7625:7:37", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$2234_storage_ptr", - "typeString": "struct StarknetState.State storage pointer" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "7588:44:37" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 31630, - "name": "state_", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31625, - "src": "7662:6:37", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$2234_storage_ptr", - "typeString": "struct StarknetState.State storage pointer" - } - }, - "id": 31631, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "globalRoot", - "nodeType": "MemberAccess", - "referencedDeclaration": 2229, - "src": "7662:17:37", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 31632, - "name": "state_", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31625, - "src": "7681:6:37", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$2234_storage_ptr", - "typeString": "struct StarknetState.State storage pointer" - } - }, - "id": 31633, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "blockNumber", - "nodeType": "MemberAccess", - "referencedDeclaration": 2231, - "src": "7681:18:37", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 31634, - "name": "state_", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31625, - "src": "7701:6:37", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$2234_storage_ptr", - "typeString": "struct StarknetState.State storage pointer" - } - }, - "id": 31635, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "blockHash", - "nodeType": "MemberAccess", - "referencedDeclaration": 2233, - "src": "7701:16:37", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 31629, - "name": "LogStateUpdate", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31219, - "src": "7647:14:37", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_int256_$_t_uint256_$returns$__$", - "typeString": "function (uint256,int256,uint256)" - } - }, - "id": 31636, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7647:71:37", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 31637, - "nodeType": "EmitStatement", - "src": "7642:76:37" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "id": 31644, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 31639, - "name": "state_", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31625, - "src": "7783:6:37", - "typeDescriptions": { - "typeIdentifier": "t_struct$_State_$2234_storage_ptr", - "typeString": "struct StarknetState.State storage pointer" - } - }, - "id": 31640, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "blockNumber", - "nodeType": "MemberAccess", - "referencedDeclaration": 2231, - "src": "7783:18:37", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_int256", - "typeString": "int256" - }, - "id": 31643, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 31641, - "name": "initialBlockNumber", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31557, - "src": "7805:18:37", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 31642, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7826:1:37", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "7805:22:37", - "typeDescriptions": { - "typeIdentifier": "t_int256", - "typeString": "int256" - } - }, - "src": "7783:44:37", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "494e56414c49445f46494e414c5f424c4f434b5f4e554d424552", - "id": 31645, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7829:28:37", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_4704f665b3bc7084199f162272b6b773fa8dad10a187a1c61e90ec9d251e75ab", - "typeString": "literal_string \"INVALID_FINAL_BLOCK_NUMBER\"" - }, - "value": "INVALID_FINAL_BLOCK_NUMBER" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_4704f665b3bc7084199f162272b6b773fa8dad10a187a1c61e90ec9d251e75ab", - "typeString": "literal_string \"INVALID_FINAL_BLOCK_NUMBER\"" - } - ], - "id": 31638, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [-18, -18], - "referencedDeclaration": -18, - "src": "7775:7:37", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 31646, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7775:83:37", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 31647, - "nodeType": "ExpressionStatement", - "src": "7775:83:37" - } - ] - }, - "documentation": { - "id": 31548, - "nodeType": "StructuredDocumentation", - "src": "5722:331:37", - "text": "Updates the state of the StarkNet, based on a proof of the\nStarkNet OS that the state transition is valid.\nArguments:\nprogramOutput - The main part of the StarkNet OS program output.\ndata_availability_fact - An encoding of the on-chain data associated\nwith the 'programOutput'." - }, - "functionSelector": "853e2461", - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 31554, - "modifierName": { - "argumentTypes": null, - "id": 31553, - "name": "onlyOperator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 585, - "src": "6136:12:37", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "6136:12:37" - } - ], - "name": "updateState", - "overrides": null, - "parameters": { - "id": 31552, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 31551, - "mutability": "mutable", - "name": "programOutput", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 31649, - "src": "6088:32:37", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 31549, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6088:7:37", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 31550, - "length": null, - "nodeType": "ArrayTypeName", - "src": "6088:9:37", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6078:48:37" - }, - "returnParameters": { - "id": 31555, - "nodeType": "ParameterList", - "parameters": [], - "src": "6149:0:37" - }, - "scope": 31650, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "external" - } - ], - "abstract": false, - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 31187, - "name": "Identity", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 533, - "src": "754:8:37", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Identity_$533", - "typeString": "contract Identity" - } - }, - "id": 31188, - "nodeType": "InheritanceSpecifier", - "src": "754:8:37" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 31189, - "name": "StarknetMessaging", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2200, - "src": "768:17:37", - "typeDescriptions": { - "typeIdentifier": "t_contract$_StarknetMessaging_$2200", - "typeString": "contract StarknetMessaging" - } - }, - "id": 31190, - "nodeType": "InheritanceSpecifier", - "src": "768:17:37" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 31191, - "name": "StarknetGovernance", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1725, - "src": "791:18:37", - "typeDescriptions": { - "typeIdentifier": "t_contract$_StarknetGovernance_$1725", - "typeString": "contract StarknetGovernance" - } - }, - "id": 31192, - "nodeType": "InheritanceSpecifier", - "src": "791:18:37" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 31193, - "name": "GovernedFinalizable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 319, - "src": "815:19:37", - "typeDescriptions": { - "typeIdentifier": "t_contract$_GovernedFinalizable_$319", - "typeString": "contract GovernedFinalizable" - } - }, - "id": 31194, - "nodeType": "InheritanceSpecifier", - "src": "815:19:37" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 31195, - "name": "StarknetOperator", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2224, - "src": "840:16:37", - "typeDescriptions": { - "typeIdentifier": "t_contract$_StarknetOperator_$2224", - "typeString": "contract StarknetOperator" - } - }, - "id": 31196, - "nodeType": "InheritanceSpecifier", - "src": "840:16:37" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 31197, - "name": "ContractInitializer", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 515, - "src": "862:19:37", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ContractInitializer_$515", - "typeString": "contract ContractInitializer" - } - }, - "id": 31198, - "nodeType": "InheritanceSpecifier", - "src": "862:19:37" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 31199, - "name": "ProxySupport", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 773, - "src": "887:12:37", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ProxySupport_$773", - "typeString": "contract ProxySupport" - } - }, - "id": 31200, - "nodeType": "InheritanceSpecifier", - "src": "887:12:37" - } - ], - "contractDependencies": [ - 266, 319, 456, 486, 515, 533, 555, 603, 773, 1174, 1249, 1725, 2200, - 2224 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "linearizedBaseContracts": [ - 31650, 773, 515, 486, 2224, 456, 603, 319, 1725, 266, 555, 2200, 1174, - 1249, 533 - ], - "name": "Starknet", - "scope": 31651 - } - ], - "license": "Apache-2.0." - }, - "id": 37 -} diff --git a/starknet-e2e-test/contracts/artifacts/UnsafeProxy.json b/starknet-e2e-test/contracts/artifacts/UnsafeProxy.json deleted file mode 100644 index f742fcc374..0000000000 --- a/starknet-e2e-test/contracts/artifacts/UnsafeProxy.json +++ /dev/null @@ -1,702 +0,0 @@ -{ - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "_delegate", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "stateMutability": "payable", - "type": "fallback" - } - ], - "bytecode": { - "object": "0x608060405234801561001057600080fd5b5060405161012f38038061012f83398101604081905261002f91610054565b600080546001600160a01b0319166001600160a01b0392909216919091179055610084565b60006020828403121561006657600080fd5b81516001600160a01b038116811461007d57600080fd5b9392505050565b609d806100926000396000f3fe6000805460a0602036601f8101829004909102820160405260808181526001600160a01b039093169392918391908190838280828437600092018290525084519495509384935091505060208401855af43d604051816000823e8280156063578282f35b8282fdfea26469706673582212206332d7f24634826be7603ca65e79a038e87d4d1c59deea05cc63ec5594f0e22764736f6c63430008100033", - "sourceMap": "0:571:0:-:0;;;51:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;92:8;:20;;-1:-1:-1;;;;;;92:20:0;-1:-1:-1;;;;;92:20:0;;;;;;;;;;0:571;;14:290:1;84:6;137:2;125:9;116:7;112:23;108:32;105:52;;;153:1;150;143:12;105:52;179:16;;-1:-1:-1;;;;;224:31:1;;214:42;;204:70;;270:1;267;260:12;204:70;293:5;14:290;-1:-1:-1;;;14:290:1:o;:::-;0:571:0;;;;;;", - "linkReferences": {} - }, - "deployedBytecode": { - "object": "0x6000805460a0602036601f8101829004909102820160405260808181526001600160a01b039093169392918391908190838280828437600092018290525084519495509384935091505060208401855af43d604051816000823e8280156063578282f35b8282fdfea26469706673582212206332d7f24634826be7603ca65e79a038e87d4d1c59deea05cc63ec5594f0e22764736f6c63430008100033", - "sourceMap": "163:14:0:-:0;180:8;;198:28;;218:8;198:28;;;;;;;;;;;0:571;198:28;0:571;198:28;;;-1:-1:-1;;;;;180:8:0;;;;163:14;0:571;163:14;;218:8;;;163:14;218:8;;163:14;198:28;;;;;;;;-1:-1:-1;317:11:0;;198:28;;-1:-1:-1;198:28:0;;;-1:-1:-1;317:11:0;-1:-1:-1;;310:4:0;301:14;;293:6;286:5;273:62;360:16;406:4;400:11;445:4;443:1;439:3;424:26;470:6;489:25;;;;547:4;543:3;536:16;489:25;508:4;504:3;497:16", - "linkReferences": {} - }, - "methodIdentifiers": {}, - "rawMetadata": "{\"compiler\":{\"version\":\"0.8.16+commit.07a7930e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_delegate\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/UnsafeProxy.sol\":\"UnsafeProxy\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"src/UnsafeProxy.sol\":{\"keccak256\":\"0xc7a64fbd332c543a4a771ca835e44329325d21018d423f28c7924851af3b0011\",\"urls\":[\"bzz-raw://748d3052c21dcfe646b2d77136a2cbd82c9c8674a13d002e1a94e6599433151c\",\"dweb:/ipfs/QmWTgYdm7d4G5VA6wzQ2GujbHyyxbEPvSyddCexvMBeHPE\"]}},\"version\":1}", - "metadata": { - "compiler": { - "version": "0.8.16+commit.07a7930e" - }, - "language": "Solidity", - "output": { - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "_delegate", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "inputs": [], - "stateMutability": "payable", - "type": "fallback" - } - ], - "devdoc": { - "kind": "dev", - "methods": {}, - "version": 1 - }, - "userdoc": { - "kind": "user", - "methods": {}, - "version": 1 - } - }, - "settings": { - "remappings": [], - "optimizer": { - "enabled": true, - "runs": 200 - }, - "metadata": { - "bytecodeHash": "ipfs" - }, - "compilationTarget": { - "src/UnsafeProxy.sol": "UnsafeProxy" - }, - "libraries": {} - }, - "sources": { - "src/UnsafeProxy.sol": { - "keccak256": "0xc7a64fbd332c543a4a771ca835e44329325d21018d423f28c7924851af3b0011", - "urls": [ - "bzz-raw://748d3052c21dcfe646b2d77136a2cbd82c9c8674a13d002e1a94e6599433151c", - "dweb:/ipfs/QmWTgYdm7d4G5VA6wzQ2GujbHyyxbEPvSyddCexvMBeHPE" - ], - "license": null - } - }, - "version": 1 - }, - "ast": { - "absolutePath": "src/UnsafeProxy.sol", - "id": 28, - "exportedSymbols": { - "UnsafeProxy": [27] - }, - "nodeType": "SourceUnit", - "src": "0:571:0", - "nodes": [ - { - "id": 27, - "nodeType": "ContractDefinition", - "src": "0:571:0", - "nodes": [ - { - "id": 2, - "nodeType": "VariableDeclaration", - "src": "28:16:0", - "nodes": [], - "constant": false, - "mutability": "mutable", - "name": "delegate", - "nameLocation": "36:8:0", - "scope": 27, - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "28:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - }, - { - "id": 12, - "nodeType": "FunctionDefinition", - "src": "51:68:0", - "nodes": [], - "body": { - "id": 11, - "nodeType": "Block", - "src": "82:37:0", - "nodes": [], - "statements": [ - { - "expression": { - "id": 9, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 7, - "name": "delegate", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2, - "src": "92:8:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "id": 8, - "name": "_delegate", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4, - "src": "103:9:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "92:20:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 10, - "nodeType": "ExpressionStatement", - "src": "92:20:0" - } - ] - }, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nameLocation": "-1:-1:-1", - "parameters": { - "id": 5, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4, - "mutability": "mutable", - "name": "_delegate", - "nameLocation": "71:9:0", - "nodeType": "VariableDeclaration", - "scope": 12, - "src": "63:17:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "63:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "src": "62:19:0" - }, - "returnParameters": { - "id": 6, - "nodeType": "ParameterList", - "parameters": [], - "src": "82:0:0" - }, - "scope": 27, - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "id": 26, - "nodeType": "FunctionDefinition", - "src": "125:444:0", - "nodes": [], - "body": { - "id": 25, - "nodeType": "Block", - "src": "153:416:0", - "nodes": [], - "statements": [ - { - "assignments": [16], - "declarations": [ - { - "constant": false, - "id": 16, - "mutability": "mutable", - "name": "target", - "nameLocation": "171:6:0", - "nodeType": "VariableDeclaration", - "scope": 25, - "src": "163:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 15, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "163:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "visibility": "internal" - } - ], - "id": 18, - "initialValue": { - "id": 17, - "name": "delegate", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2, - "src": "180:8:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "163:25:0" - }, - { - "assignments": [20], - "declarations": [ - { - "constant": false, - "id": 20, - "mutability": "mutable", - "name": "data", - "nameLocation": "211:4:0", - "nodeType": "VariableDeclaration", - "scope": 25, - "src": "198:17:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 19, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "198:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "visibility": "internal" - } - ], - "id": 23, - "initialValue": { - "expression": { - "id": 21, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "218:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 22, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberLocation": "222:4:0", - "memberName": "data", - "nodeType": "MemberAccess", - "src": "218:8:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes calldata" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "198:28:0" - }, - { - "AST": { - "nodeType": "YulBlock", - "src": "245:318:0", - "statements": [ - { - "nodeType": "YulVariableDeclaration", - "src": "259:76:0", - "value": { - "arguments": [ - { - "arguments": [], - "functionName": { - "name": "gas", - "nodeType": "YulIdentifier", - "src": "286:3:0" - }, - "nodeType": "YulFunctionCall", - "src": "286:5:0" - }, - { - "name": "target", - "nodeType": "YulIdentifier", - "src": "293:6:0" - }, - { - "arguments": [ - { - "name": "data", - "nodeType": "YulIdentifier", - "src": "305:4:0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "310:4:0", - "type": "", - "value": "0x20" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "301:3:0" - }, - "nodeType": "YulFunctionCall", - "src": "301:14:0" - }, - { - "arguments": [ - { - "name": "data", - "nodeType": "YulIdentifier", - "src": "323:4:0" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "317:5:0" - }, - "nodeType": "YulFunctionCall", - "src": "317:11:0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "330:1:0", - "type": "", - "value": "0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "333:1:0", - "type": "", - "value": "0" - } - ], - "functionName": { - "name": "delegatecall", - "nodeType": "YulIdentifier", - "src": "273:12:0" - }, - "nodeType": "YulFunctionCall", - "src": "273:62:0" - }, - "variables": [ - { - "name": "result", - "nodeType": "YulTypedName", - "src": "263:6:0", - "type": "" - } - ] - }, - { - "nodeType": "YulVariableDeclaration", - "src": "348:28:0", - "value": { - "arguments": [], - "functionName": { - "name": "returndatasize", - "nodeType": "YulIdentifier", - "src": "360:14:0" - }, - "nodeType": "YulFunctionCall", - "src": "360:16:0" - }, - "variables": [ - { - "name": "size", - "nodeType": "YulTypedName", - "src": "352:4:0", - "type": "" - } - ] - }, - { - "nodeType": "YulVariableDeclaration", - "src": "389:22:0", - "value": { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "406:4:0", - "type": "", - "value": "0x40" - } - ], - "functionName": { - "name": "mload", - "nodeType": "YulIdentifier", - "src": "400:5:0" - }, - "nodeType": "YulFunctionCall", - "src": "400:11:0" - }, - "variables": [ - { - "name": "ptr", - "nodeType": "YulTypedName", - "src": "393:3:0", - "type": "" - } - ] - }, - { - "expression": { - "arguments": [ - { - "name": "ptr", - "nodeType": "YulIdentifier", - "src": "439:3:0" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "443:1:0", - "type": "", - "value": "0" - }, - { - "name": "size", - "nodeType": "YulIdentifier", - "src": "445:4:0" - } - ], - "functionName": { - "name": "returndatacopy", - "nodeType": "YulIdentifier", - "src": "424:14:0" - }, - "nodeType": "YulFunctionCall", - "src": "424:26:0" - }, - "nodeType": "YulExpressionStatement", - "src": "424:26:0" - }, - { - "cases": [ - { - "body": { - "nodeType": "YulBlock", - "src": "496:18:0", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "ptr", - "nodeType": "YulIdentifier", - "src": "504:3:0" - }, - { - "name": "size", - "nodeType": "YulIdentifier", - "src": "508:4:0" - } - ], - "functionName": { - "name": "revert", - "nodeType": "YulIdentifier", - "src": "497:6:0" - }, - "nodeType": "YulFunctionCall", - "src": "497:16:0" - }, - "nodeType": "YulExpressionStatement", - "src": "497:16:0" - } - ] - }, - "nodeType": "YulCase", - "src": "489:25:0", - "value": { - "kind": "number", - "nodeType": "YulLiteral", - "src": "494:1:0", - "type": "", - "value": "0" - } - }, - { - "body": { - "nodeType": "YulBlock", - "src": "535:18:0", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "ptr", - "nodeType": "YulIdentifier", - "src": "543:3:0" - }, - { - "name": "size", - "nodeType": "YulIdentifier", - "src": "547:4:0" - } - ], - "functionName": { - "name": "return", - "nodeType": "YulIdentifier", - "src": "536:6:0" - }, - "nodeType": "YulFunctionCall", - "src": "536:16:0" - }, - "nodeType": "YulExpressionStatement", - "src": "536:16:0" - } - ] - }, - "nodeType": "YulCase", - "src": "527:26:0", - "value": "default" - } - ], - "expression": { - "name": "result", - "nodeType": "YulIdentifier", - "src": "470:6:0" - }, - "nodeType": "YulSwitch", - "src": "463:90:0" - } - ] - }, - "evmVersion": "london", - "externalReferences": [ - { - "declaration": 20, - "isOffset": false, - "isSlot": false, - "src": "305:4:0", - "valueSize": 1 - }, - { - "declaration": 20, - "isOffset": false, - "isSlot": false, - "src": "323:4:0", - "valueSize": 1 - }, - { - "declaration": 16, - "isOffset": false, - "isSlot": false, - "src": "293:6:0", - "valueSize": 1 - } - ], - "id": 24, - "nodeType": "InlineAssembly", - "src": "236:327:0" - } - ] - }, - "implemented": true, - "kind": "fallback", - "modifiers": [], - "name": "", - "nameLocation": "-1:-1:-1", - "parameters": { - "id": 13, - "nodeType": "ParameterList", - "parameters": [], - "src": "133:2:0" - }, - "returnParameters": { - "id": 14, - "nodeType": "ParameterList", - "parameters": [], - "src": "153:0:0" - }, - "scope": 27, - "stateMutability": "payable", - "virtual": false, - "visibility": "external" - } - ], - "abstract": false, - "baseContracts": [], - "canonicalName": "UnsafeProxy", - "contractDependencies": [], - "contractKind": "contract", - "fullyImplemented": true, - "linearizedBaseContracts": [27], - "name": "UnsafeProxy", - "nameLocation": "9:11:0", - "scope": 28, - "usedErrors": [] - } - ] - }, - "id": 0 -} diff --git a/starknet-e2e-test/contracts/foundry.toml b/starknet-e2e-test/contracts/foundry.toml deleted file mode 100644 index d672a23b1d..0000000000 --- a/starknet-e2e-test/contracts/foundry.toml +++ /dev/null @@ -1,3 +0,0 @@ -[profile.default] -src = "src" -out = "build" diff --git a/starknet-e2e-test/contracts/src/UnsafeProxy.sol b/starknet-e2e-test/contracts/src/UnsafeProxy.sol deleted file mode 100644 index d7cedf05ec..0000000000 --- a/starknet-e2e-test/contracts/src/UnsafeProxy.sol +++ /dev/null @@ -1,22 +0,0 @@ -contract UnsafeProxy { - - address delegate; - - constructor(address _delegate) { - delegate = _delegate; - } - - fallback() external payable { - address target = delegate; - bytes memory data = msg.data; - assembly { - let result := delegatecall(gas(), target, add(data,0x20), mload(data), 0, 0) - let size := returndatasize() - let ptr := mload(0x40) - returndatacopy(ptr,0,size) - switch result - case 0 {revert(ptr,size)} - default {return(ptr,size)} - } - } -} \ No newline at end of file diff --git a/starknet-e2e-test/ethereum_core_contract.rs b/starknet-e2e-test/ethereum_core_contract.rs deleted file mode 100644 index bcaf47c77f..0000000000 --- a/starknet-e2e-test/ethereum_core_contract.rs +++ /dev/null @@ -1,137 +0,0 @@ -extern crate starknet_e2e_test; - -use madara_runtime::opaque::Block; -use mc_settlement::ethereum::StarknetContractClient; -use mc_settlement::{SettlementProvider, StarknetSpec, StarknetState}; -use mp_messages::{MessageL1ToL2, MessageL2ToL1}; -use mp_snos_output::StarknetOsOutput; -use rstest::rstest; -use starknet_api::api_core::{ContractAddress, Nonce, PatriciaKey}; -use starknet_api::hash::StarkFelt; -use starknet_e2e_test::ethereum_sandbox::EthereumSandbox; -use starknet_e2e_test::starknet_contract::{InitData, StarknetContract}; - -#[rstest] -#[tokio::test] -async fn starknet_core_contract_is_initialized() -> anyhow::Result<()> { - let sandbox = EthereumSandbox::new(); - let starknet_contract = StarknetContract::deploy(&sandbox).await; - - starknet_contract.initialize(&sandbox, InitData::one()).await; - - let starknet = StarknetContractClient::new(starknet_contract.address(), sandbox.client()); - - let spec = SettlementProvider::::get_chain_spec(&starknet).await.expect("Failed to get chain spec"); - assert_eq!(spec, StarknetSpec { program_hash: 1u64.into(), config_hash: 1u64.into() }); - - let state = SettlementProvider::::get_state(&starknet).await.expect("Failed to get state"); - assert_eq!(state, StarknetState::default()); - - Ok(()) -} - -#[rstest] -#[tokio::test] -async fn starknet_core_contract_advances_state() -> anyhow::Result<()> { - let sandbox = EthereumSandbox::new(); - let starknet_contract = StarknetContract::deploy(&sandbox).await; - - starknet_contract.initialize(&sandbox, InitData::one()).await; - - let starknet = StarknetContractClient::new(starknet_contract.address(), sandbox.client()); - - // Now let's transition the state from block 0 to 1 (state root 0 -> 1) - let program_output = StarknetOsOutput { - new_state_root: 1u64.into(), - block_number: 1u64.into(), - config_hash: 1u64.into(), - ..Default::default() - }; - - SettlementProvider::::update_state(&starknet, program_output).await.expect("Failed to update state"); - - let state = SettlementProvider::::get_state(&starknet).await.expect("Failed to get state"); - assert_eq!(state, StarknetState { block_number: 1u64.into(), state_root: 1u64.into() }); - - Ok(()) -} - -#[rstest] -#[tokio::test] -async fn starknet_core_contract_sends_messages_to_l2() -> anyhow::Result<()> { - // In this test we do not check Starknet messaging logic, but rather that all our encodings are - // correct - - let sandbox = EthereumSandbox::new(); - let starknet_contract = StarknetContract::deploy(&sandbox).await; - - starknet_contract.initialize(&sandbox, InitData::one()).await; - - // Converting our EOA address to felt - let mut from_address = [0u8; 32]; - from_address[12..32].copy_from_slice(sandbox.address().as_bytes()); - - let message = MessageL1ToL2 { - from_address: ContractAddress(PatriciaKey(StarkFelt::new(from_address).unwrap())), - to_address: 3u64.into(), - nonce: Nonce(0u64.into()), // Starknet contract maintains global nonce counter - selector: 2u64.into(), - payload: vec![1u64.into()], - }; - - // Sending message to L2 (this will update msg hash table) - starknet_contract.send_message_to_l2(&sandbox, &message).await; - assert!(starknet_contract.message_to_l2_exists(&sandbox, &message).await); - - let starknet = StarknetContractClient::new(starknet_contract.address(), sandbox.client()); - - let program_output = StarknetOsOutput { - new_state_root: 1u64.into(), - block_number: 1u64.into(), - config_hash: 1u64.into(), - messages_to_l2: vec![message.clone()], - ..Default::default() - }; - - // During the state update, the message will be consumed (removed from hash table) - SettlementProvider::::update_state(&starknet, program_output).await.expect("Failed to update state"); - - // At this point the counter has to be reset - assert!(!starknet_contract.message_to_l2_exists(&sandbox, &message).await); - - Ok(()) -} - -#[rstest] -#[tokio::test] -async fn starknet_core_contract_consumes_messages_from_l2() -> anyhow::Result<()> { - // In this test we do not check Starknet messaging logic, but rather that all our encodings are - // correct - - let sandbox = EthereumSandbox::new(); - let starknet_contract = StarknetContract::deploy(&sandbox).await; - - starknet_contract.initialize(&sandbox, InitData::one()).await; - - let message = MessageL2ToL1 { - from_address: 1u64.into(), - to_address: StarkFelt::from(2u64).try_into().unwrap(), - payload: vec![3u64.into()], - }; - let starknet = StarknetContractClient::new(starknet_contract.address(), sandbox.client()); - - let program_output = StarknetOsOutput { - new_state_root: 1u64.into(), - block_number: 1u64.into(), - config_hash: 1u64.into(), - messages_to_l1: vec![message.clone()], - ..Default::default() - }; - - // During the state update, the message will be consumed (removed from hash table) - SettlementProvider::::update_state(&starknet, program_output).await.expect("Failed to update state"); - - assert!(starknet_contract.message_to_l1_exists(&sandbox, &message).await); - - Ok(()) -} diff --git a/starknet-e2e-test/ethereum_e2e_settlement.rs b/starknet-e2e-test/ethereum_e2e_settlement.rs deleted file mode 100644 index 034329361a..0000000000 --- a/starknet-e2e-test/ethereum_e2e_settlement.rs +++ /dev/null @@ -1,172 +0,0 @@ -extern crate starknet_e2e_test; - -use std::fs::{create_dir_all, File}; -use std::time::Duration; - -use assert_matches::assert_matches; -use async_trait::async_trait; -use ethers::providers::Middleware; -use madara_runtime::opaque::Block; -use madara_test_runner::{MadaraRunner, Settlement}; -use mc_settlement::ethereum::client::EthereumConfig; -use mc_settlement::ethereum::StarknetContractClient; -use mc_settlement::{SettlementProvider, StarknetState}; -use rstest::rstest; -use starknet_api::serde_utils::hex_str_from_bytes; -use starknet_e2e_test::ethereum_sandbox::EthereumSandbox; -use starknet_e2e_test::starknet_contract::{InitData, StarknetContract}; -use tempfile::TempDir; -use test_context::{test_context, AsyncTestContext}; -use tokio::time::sleep; - -struct Context { - pub madara_path: TempDir, - pub sandbox: EthereumSandbox, - pub starknet_contract: StarknetContract, -} - -impl Context { - pub async fn initialize(&self, data: InitData) { - self.starknet_contract.initialize(&self.sandbox, data).await; - } - - pub async fn launch_madara(&self) -> MadaraRunner { - MadaraRunner::new(Some(Settlement::Ethereum), Some(self.madara_path.path().to_path_buf())).await - } - - pub async fn read_state(&self) -> StarknetState { - let client = StarknetContractClient::new(self.starknet_contract.address(), self.sandbox.client()); - SettlementProvider::::get_state(&client).await.expect("Failed to get state") - } -} - -#[async_trait] -impl AsyncTestContext for Context { - async fn setup() -> Self { - let sandbox = EthereumSandbox::new(); - let starknet_contract = StarknetContract::deploy(&sandbox).await; - - let madara_path = TempDir::with_prefix("madara").expect("Failed to create Madara path"); - let config_dir = madara_path.path().join("chains/dev"); // data path - create_dir_all(&config_dir).unwrap(); - - let config = EthereumConfig { - http_provider: sandbox.client().provider().url().to_string(), - core_contracts: hex_str_from_bytes::<20, true>(starknet_contract.address().0), - chain_id: sandbox.client().get_chainid().await.expect("Failed to get sandbox chain ID").as_u64(), - poll_interval_ms: Some(10u64), // Default is 7s, we need to speed things up - ..Default::default() - }; - - let config_file = File::create(config_dir.join("eth-config.json")).expect("Failed to open file for writing"); - serde_json::to_writer(config_file, &config).expect("Failed to write eth config"); - - Self { madara_path, sandbox, starknet_contract } - } - - async fn teardown(self) { - self.madara_path.close().expect("Failed to clean up"); - } -} - -#[test_context(Context)] -#[rstest] -#[tokio::test] -async fn works_with_initialized_contract(ctx: &mut Context) -> Result<(), anyhow::Error> { - // Troubleshooting: - // RUST_LOG=mc_settlement=trace MADARA_LOG=1 cargo test --package starknet-e2e-test - // works_with_initialized_contract -- --nocapture - - // At this point we have: - // * spawned Ethereum sandbox - // * deployed settlement contract (not initialized yet) - // * temp Madara path with correct ethereum config - ctx.initialize(InitData::sn_goerli()).await; - - let mut madara = ctx.launch_madara().await; - - madara.create_n_blocks(3).await?; - sleep(Duration::from_millis(300)).await; - - assert_eq!(ctx.read_state().await, StarknetState { block_number: 3u64.into(), state_root: 0u64.into() }); - - Ok(()) -} - -#[test_context(Context)] -#[rstest] -#[tokio::test] -async fn recovers_from_non_initialized_state(ctx: &mut Context) -> Result<(), anyhow::Error> { - let mut madara = ctx.launch_madara().await; - - madara.create_empty_block().await?; - // Give the client thread some time to handle the finalized block - sleep(Duration::from_millis(100)).await; - - ctx.initialize(InitData::sn_goerli()).await; - - madara.create_empty_block().await?; - // Give the client thread some time to recover - sleep(Duration::from_millis(100)).await; - - madara.create_empty_block().await?; - sleep(Duration::from_millis(100)).await; - - assert_eq!(ctx.read_state().await, StarknetState { block_number: 3u64.into(), state_root: 0u64.into() }); - - Ok(()) -} - -#[test_context(Context)] -#[rstest] -#[tokio::test] -async fn catches_up_with_the_state_in_the_future(ctx: &mut Context) -> Result<(), anyhow::Error> { - ctx.initialize(InitData { block_number: 1u64.into(), ..InitData::sn_goerli() }).await; - - let mut madara = ctx.launch_madara().await; - - // Unless state root calculation is enabled (not by default), we should be fine - madara.create_n_blocks(2).await?; - // Give the client thread some time to handle the finalized block - sleep(Duration::from_millis(200)).await; - - assert_eq!(ctx.read_state().await, StarknetState { block_number: 2u64.into(), state_root: 0u64.into() }); - - Ok(()) -} - -#[test_context(Context)] -#[rstest] -#[tokio::test] -async fn fails_with_inconsistent_state_in_the_future(ctx: &mut Context) -> Result<(), anyhow::Error> { - ctx.initialize(InitData { block_number: 1u64.into(), state_root: 12345u64.into(), ..InitData::sn_goerli() }).await; - - let mut madara = ctx.launch_madara().await; - - madara.create_empty_block().await?; - // Give the client thread some time to handle the finalized block - sleep(Duration::from_millis(100)).await; - - // Expected connection refused because Madara is shut down at this point - assert_matches!(madara.create_empty_block().await, Err(err) => assert!(err.downcast_ref::().is_some())); - - Ok(()) -} - -#[test_context(Context)] -#[rstest] -#[tokio::test] -async fn fails_with_inconsistent_starknet_spec(ctx: &mut Context) -> Result<(), anyhow::Error> { - ctx.initialize(InitData::one()).await; - - let mut madara = ctx.launch_madara().await; - - madara.create_empty_block().await?; - // Give the client thread some time to handle the finalized block - sleep(Duration::from_millis(100)).await; - - // Expected connection refused because Madara is shut down at this point - assert_matches!(madara.create_empty_block().await, Err(err) => assert!(err.downcast_ref::().is_some())); - - Ok(()) -} diff --git a/starknet-e2e-test/src/ethereum_sandbox.rs b/starknet-e2e-test/src/ethereum_sandbox.rs deleted file mode 100644 index 3ca40df7e1..0000000000 --- a/starknet-e2e-test/src/ethereum_sandbox.rs +++ /dev/null @@ -1,73 +0,0 @@ -use std::env; -use std::path::PathBuf; -use std::sync::Arc; -use std::time::Duration; - -use ethers::abi::Tokenize; -use ethers::contract::{ContractFactory, ContractInstance}; -use ethers::core::utils::Anvil; -use ethers::prelude::SignerMiddleware; -use ethers::providers::{Http, Provider}; -use ethers::signers::{LocalWallet, Signer}; -use ethers::types::Address; -use ethers::utils::AnvilInstance; -use ethers_solc::artifacts::contract::ContractBytecode; - -type AnvilClient = SignerMiddleware, LocalWallet>; - -pub struct EthereumSandbox { - _anvil: AnvilInstance, - client: Arc, -} - -impl EthereumSandbox { - pub fn new() -> Self { - let anvil_path: PathBuf = env::var("ANVIL_PATH") - .map(Into::into) - .unwrap_or_else(|_| home::home_dir().unwrap().join(".foundry/bin/anvil")); - let anvil = Anvil::at(anvil_path).spawn(); - - let provider = Provider::::try_from(anvil.endpoint()) - .expect("Failed to connect to Anvil") - .interval(Duration::from_millis(10u64)); - - let wallet: LocalWallet = anvil.keys()[0].clone().into(); - let client = SignerMiddleware::new(provider.clone(), wallet.with_chain_id(anvil.chain_id())); - - Self { _anvil: anvil, client: Arc::new(client) } - } - - pub fn client(&self) -> Arc { - self.client.clone() - } - - pub fn address(&self) -> Address { - self.client.address() - } - - pub async fn deploy( - &self, - build_artifacts: &str, - contructor_args: T, - ) -> ContractInstance, AnvilClient> { - let artifacts: ContractBytecode = - serde_json::from_str(build_artifacts).expect("Failed to parse build artifacts"); - let abi = artifacts.abi.unwrap(); - let bytecode = artifacts.bytecode.unwrap().object.into_bytes().unwrap(); - - let factory = ContractFactory::new(abi, bytecode, self.client.clone()); - - factory - .deploy(contructor_args) - .expect("Failed to deploy contract") - .send() - .await - .expect("Ethereum polling error") - } -} - -impl Default for EthereumSandbox { - fn default() -> Self { - Self::new() - } -} diff --git a/starknet-e2e-test/src/lib.rs b/starknet-e2e-test/src/lib.rs deleted file mode 100644 index 50ac51fa97..0000000000 --- a/starknet-e2e-test/src/lib.rs +++ /dev/null @@ -1,2 +0,0 @@ -pub mod ethereum_sandbox; -pub mod starknet_contract; diff --git a/starknet-e2e-test/src/starknet_contract.rs b/starknet-e2e-test/src/starknet_contract.rs deleted file mode 100644 index 88fde8e69e..0000000000 --- a/starknet-e2e-test/src/starknet_contract.rs +++ /dev/null @@ -1,189 +0,0 @@ -use ethers::prelude::abigen; -use ethers::types::{Address, Bytes, U256}; -use ethers::utils::keccak256; -use mc_settlement::ethereum::convert_felt_to_u256; -use mp_messages::{MessageL1ToL2, MessageL2ToL1}; -use mp_snos_output::SnosCodec; -use starknet_api::hash::StarkFelt; -use starknet_ff::FieldElement; - -use crate::ethereum_sandbox::EthereumSandbox; - -const STARKNET_VALIDIUM: &str = include_str!("../contracts/artifacts/Starknet.json"); -const UNSAFE_PROXY: &str = include_str!("../contracts/artifacts/UnsafeProxy.json"); - -// Starknet core contract cannot be initialized directly hence we use a proxy for that. -// In order to initialize the contract we need to provide the following data: -// 0. Sub-proxy contracts - none in our case -// 1. External initializer contract (EIC) - zero in our case -// 2. Program hash - non-zero, otherwise will be considered invalid -// 3. Verifier address -// 4. Config hash -// 5. Global state root (genesis) -// 6. Block number (genesis) -// 7. Block hash (genesis) -// -// Once we have an initialized contract we also need to assign operator - -// the account we will use for updating the state. -abigen!( - StarknetInitializer, - r#"[ - function initialize(bytes calldata data) external - function registerOperator(address newOperator) external - ]"#, -); - -// Starknet messaging interface for testing purposes. -abigen!( - StarknetMessaging, - r#"[ - function sendMessageToL2(uint256 toAddress, uint256 selector, uint256[] calldata payload) external payable returns (bytes32, uint256) - function l1ToL2Messages(bytes32 msgHash) external view returns (uint256) - function l2ToL1Messages(bytes32 msgHash) external view returns (uint256) - ]"#, -); - -#[derive(Clone, Debug, Default)] -pub struct InitData { - pub program_hash: StarkFelt, - pub verifier_address: StarkFelt, - pub config_hash: StarkFelt, - pub state_root: StarkFelt, - pub block_number: StarkFelt, - pub block_hash: StarkFelt, -} - -impl From for Bytes { - // No dynamic fields, so the encoding is pretty straightforward: - // - // abi.encode(data, (uint256, address, uint256, StarknetState.State)); - // where struct State { - // uint256 globalRoot; - // int256 blockNumber; - // uint256 blockHash; - // } - fn from(val: InitData) -> Self { - let mut bytes = [0u8; 7 * 32]; - // Recall: - // * None sub-proxy contracts - // * First 32 bytes are for the EIC - not specified - bytes[32..64].copy_from_slice(val.program_hash.bytes()); - bytes[64..96].copy_from_slice(val.verifier_address.bytes()); - bytes[96..128].copy_from_slice(val.config_hash.bytes()); - bytes[128..160].copy_from_slice(val.state_root.bytes()); - bytes[160..192].copy_from_slice(val.block_number.bytes()); - bytes[192..224].copy_from_slice(val.block_hash.bytes()); - bytes.into() - } -} - -impl InitData { - /// Use the same config as in Starknet Goerli testnet - pub fn sn_goerli() -> Self { - Self { - // See SN_OS_PROGRAM_HASH constant - program_hash: StarkFelt::from( - FieldElement::from_hex_be("0x41fc2a467ef8649580631912517edcab7674173f1dbfa2e9b64fbcd82bc4d79").unwrap(), - ), - // Hash version: SN_OS_CONFIG_HASH_VERSION (settlement) - // Chain ID: SN_GOERLI_CHAIN_ID (pallet config) - // Fee token address: 0x49d36570d4e46f48e99674bd3fcc84644ddd6b96f7c741b1562b82f9e004dc7 (genesis config) - config_hash: StarkFelt::from( - FieldElement::from_hex_be("0x036f5e4ea4dd042801c8841e3db8e654124305da0f11824fc1db60c405dbb39f") - .unwrap(), - ), - ..Default::default() - } - } - - pub fn one() -> Self { - Self { program_hash: 1u64.into(), config_hash: 1u64.into(), ..Default::default() } - } -} - -pub struct StarknetContract { - address: Address, -} - -impl StarknetContract { - pub async fn deploy(sandbox: &EthereumSandbox) -> Self { - // First we deploy the Starknet contract (no explicit contructor) - let snos_contract = sandbox.deploy(STARKNET_VALIDIUM, ()).await; - - // Then we deploy a simple delegate proxy to interact with Starknet contract (initialized with its - // address) - let proxy_contract = sandbox.deploy(UNSAFE_PROXY, snos_contract.address()).await; - - // We will use proxy to interact with the Starknet core contract - Self { address: proxy_contract.address() } - } - - pub fn address(&self) -> Address { - self.address - } - - pub async fn initialize(&self, sandbox: &EthereumSandbox, data: InitData) { - // This is the initialization interface - let initializer = StarknetInitializer::new(self.address, sandbox.client()); - - // 1. Provide Starknet OS program/config and genesis state - initializer - .initialize(data.into()) - .send() - .await - .expect("Failed to call `initialize`") - .await - .expect("Ethereum poll update error") - .unwrap(); - - // 2. Add our EOA as Starknet operator - initializer - .register_operator(sandbox.address()) - .send() - .await - .expect("Failed to call `register_operator`") - .await - .expect("Ethereum poll update error") - .unwrap(); - } - - pub async fn send_message_to_l2(&self, sandbox: &EthereumSandbox, message: &MessageL1ToL2) { - let messaging = StarknetMessaging::new(self.address, sandbox.client()); - - messaging.send_message_to_l2( - convert_felt_to_u256(message.to_address.0.0), - convert_felt_to_u256(message.selector), - message.payload.clone().into_iter().map(convert_felt_to_u256).collect()) - .value(1) // L1 message fee must be between 0 and 1 ether - .send() - .await - .expect("Failed to call `send_message_to_l2`") - .await - .expect("Ethereum poll update error") - .unwrap(); - } - - pub async fn message_to_l1_exists(&self, sandbox: &EthereumSandbox, message: &MessageL2ToL1) -> bool { - let messaging = StarknetMessaging::new(self.address, sandbox.client()); - - let mut payload: Vec = Vec::new(); - message.clone().into_encoded_vec().into_iter().for_each(|felt| payload.append(&mut felt.bytes().to_vec())); - - let msg_hash = keccak256(payload); - let res = messaging.l_2_to_l1_messages(msg_hash).call().await.expect("Failed to call `l_2_to_l1_messages`"); - - res != U256::zero() - } - - pub async fn message_to_l2_exists(&self, sandbox: &EthereumSandbox, message: &MessageL1ToL2) -> bool { - let messaging = StarknetMessaging::new(self.address, sandbox.client()); - - let mut payload: Vec = Vec::new(); - message.clone().into_encoded_vec().into_iter().for_each(|felt| payload.append(&mut felt.bytes().to_vec())); - - let msg_hash = keccak256(payload); - let res = messaging.l_1_to_l2_messages(msg_hash).call().await.expect("Failed to call `l_2_to_l1_messages`"); - - res != U256::zero() - } -} diff --git a/starknet-rpc-test/Cargo.toml b/starknet-rpc-test/Cargo.toml deleted file mode 100644 index db2d607a49..0000000000 --- a/starknet-rpc-test/Cargo.toml +++ /dev/null @@ -1,115 +0,0 @@ -[package] -name = "starknet-rpc-test" -version = "0.1.0" -edition = "2021" - - -[dependencies] - -anyhow = "1.0.72" -assert_matches = "1.5.0" -async-lock = "3.1.0" -async-trait = { workspace = true } -flate2 = { workspace = true } -reqwest = "0.11.18" -rstest = "0.18.1" -serde = { version = "1.0.192", features = ["derive"] } -serde_json = "1.0.108" -starknet-accounts = { workspace = true } -starknet-contract = { workspace = true } -starknet-core = { workspace = true } -starknet-crypto = { workspace = true } -starknet-ff = { workspace = true } -starknet-providers = { workspace = true } -starknet-signers = { workspace = true } -thiserror = { workspace = true } -tokio = { version = "1.34.0", features = ["rt", "macros", "parking_lot"] } -url = "2.4.1" - -# [[test]] -# name = "starknet_spec_version" -# path = "spec_version.rs" - -[[test]] -name = "starknet_get_block_number" -path = "get_block_number.rs" - -[[test]] -name = "starknet_get_block_hash_and_number" -path = "get_block_hash_and_number.rs" - -[[test]] -name = "starknet_get_block_transaction_count" -path = "get_block_transaction_count.rs" - -[[test]] -name = "starknet_chain_id" -path = "chain_id.rs" - -[[test]] -name = "starknet_get_storage_at" -path = "get_storage_at.rs" - -[[test]] -name = "starknet_get_class" -path = "get_class.rs" - -[[test]] -name = "starknet_get_class_at" -path = "get_class_at.rs" - -[[test]] -name = "starknet_get_class_hash_at" -path = "get_class_hash_at.rs" - -[[test]] -name = "starknet_get_nonce" -path = "get_nonce.rs" - -[[test]] -name = "starknet_call" -path = "call.rs" - -[[test]] -name = "starknet_get_block_with_tx_hashes" -path = "get_block_with_tx_hashes.rs" - -[[test]] -name = "starknet_get_block_with_txs" -path = "get_block_with_txs.rs" - -[[test]] -name = "starknet_get_transaction_by_blockid_and_index" -path = "get_transaction_by_blockid_and_index.rs" - -[[test]] -name = "starknet_add_invoke_transaction" -path = "add_invoke_transaction.rs" - -[[test]] -name = "starknet_add_declare_transaction" -path = "add_declare_transaction.rs" - -[[test]] -name = "starknet_add_deploy_account_transaction" -path = "add_deploy_account_transaction.rs" - -[[test]] -name = "starknet_get_transaction_by_hash" -path = "get_transaction_by_hash.rs" - -[[test]] -name = "starknet_get_transaction_receipt" -path = "get_transaction_receipt.rs" - -[[test]] -name = "starknet_get_events" -path = "get_events.rs" - -[[test]] -name = "starknet_estimate_fee" -path = "estimate_fee.rs" - -[[test]] -name = "starknet_simulate_transaction" -path = "simulate_transaction.rs" diff --git a/starknet-rpc-test/add_declare_transaction.rs b/starknet-rpc-test/add_declare_transaction.rs deleted file mode 100644 index 23719be47f..0000000000 --- a/starknet-rpc-test/add_declare_transaction.rs +++ /dev/null @@ -1,157 +0,0 @@ -extern crate starknet_rpc_test; - -use std::vec; - -use assert_matches::assert_matches; -use rstest::rstest; -use starknet_accounts::Account; -use starknet_core::types::{BlockId, DeclareTransactionResult, StarknetError}; -use starknet_ff::FieldElement; -use starknet_providers::{MaybeUnknownErrorCode, Provider, ProviderError, StarknetErrorWithMessage}; -use starknet_rpc_test::constants::{ARGENT_CONTRACT_ADDRESS, FEE_TOKEN_ADDRESS, OZ_CONTRACT_ADDRESS, SIGNER_PRIVATE}; -use starknet_rpc_test::fixtures::{madara, ThreadSafeMadaraClient}; -use starknet_rpc_test::utils::{build_single_owner_account, read_erc20_balance, AccountActions, U256}; -use starknet_rpc_test::{SendTransactionError, Transaction, TransactionResult}; - -#[rstest] -#[tokio::test] -async fn fail_validation_step(madara: &ThreadSafeMadaraClient) -> Result<(), anyhow::Error> { - let rpc = madara.get_starknet_client().await; - - let txs = { - // using incorrect private key to generate the wrong signature - let account = build_single_owner_account(&rpc, "0x1234", ARGENT_CONTRACT_ADDRESS, true); - let (declare_tx, _, _) = - account.declare_contract("./contracts/Counter.sierra.json", "./contracts/Counter.casm.json"); - - let mut madara_write_lock = madara.write().await; - madara_write_lock.create_block_with_txs(vec![Transaction::Declaration(declare_tx)]).await? - }; - assert_eq!(txs.len(), 1); - - let declare_tx_result = txs[0].as_ref().unwrap_err(); - assert_matches!( - declare_tx_result, - SendTransactionError::AccountError(starknet_accounts::AccountError::Provider(ProviderError::StarknetError( - StarknetErrorWithMessage { - code: MaybeUnknownErrorCode::Known(StarknetError::ValidationFailure), - message: _ - } - ))) - ); - - Ok(()) -} - -#[rstest] -#[tokio::test] -async fn fail_execution_step_with_no_storage_change(madara: &ThreadSafeMadaraClient) -> Result<(), anyhow::Error> { - let rpc = madara.get_starknet_client().await; - - let oz_account = build_single_owner_account(&rpc, SIGNER_PRIVATE, OZ_CONTRACT_ADDRESS, true); - let (declare_tx, expected_class_hash, _) = oz_account - .declare_contract("./contracts/Counter5/Counter5.sierra.json", "./contracts/Counter5/Counter5.casm.json"); - - let (block_number, txs) = { - let mut madara_write_lock = madara.write().await; - // draining oz_account so the txn fails during execution - let balance = - read_erc20_balance(&rpc, FieldElement::from_hex_be(FEE_TOKEN_ADDRESS).unwrap(), oz_account.address()).await; - madara_write_lock - .create_block_with_txs(vec![Transaction::Execution(oz_account.transfer_tokens_u256( - FieldElement::from_hex_be(ARGENT_CONTRACT_ADDRESS).unwrap(), - // subtractin 150k to keep some fees for the transfer - U256 { low: balance[0] - FieldElement::from_dec_str("150000").unwrap(), high: balance[1] }, - None, - ))]) - .await?; - - // declaring contract - let txs = madara_write_lock.create_block_with_txs(vec![Transaction::Declaration(declare_tx)]).await?; - let block_number = rpc.block_number().await?; - (block_number, txs) - }; - assert_eq!(txs.len(), 1); - assert!(txs[0].is_ok()); - - // transaction failed during execution, no change in storage - assert!(rpc.get_class(BlockId::Number(block_number), expected_class_hash).await.is_err()); - - // doesn't get included in block - let included_txs = rpc.get_block_transaction_count(BlockId::Number(block_number)).await?; - assert_eq!(included_txs, 0); - - Ok(()) -} - -#[rstest] -#[tokio::test] -async fn works_with_storage_change(madara: &ThreadSafeMadaraClient) -> Result<(), anyhow::Error> { - let rpc = madara.get_starknet_client().await; - - let account = build_single_owner_account(&rpc, SIGNER_PRIVATE, ARGENT_CONTRACT_ADDRESS, true); - let (declare_tx, expected_class_hash, _) = account - .declare_contract("./contracts/Counter1/Counter1.sierra.json", "./contracts/Counter1/Counter1.casm.json"); - - let (mut txs, block_number) = { - let mut madara_write_lock = madara.write().await; - let txs = madara_write_lock.create_block_with_txs(vec![Transaction::Declaration(declare_tx)]).await?; - let block_number = rpc.block_number().await?; - (txs, block_number) - }; - - assert_eq!(txs.len(), 1); - let declare_tx_result = txs.remove(0); - match declare_tx_result { - Ok(TransactionResult::Declaration(DeclareTransactionResult { transaction_hash: _, class_hash })) => { - assert_eq!(class_hash, expected_class_hash); - } - _ => panic!("Expected declare transaction result"), - } - - assert!(rpc.get_class(BlockId::Number(block_number), expected_class_hash).await.is_ok()); - - // included in block - let included_txs = rpc.get_block_transaction_count(BlockId::Number(block_number)).await?; - assert_eq!(included_txs, 1); - - Ok(()) -} - -#[rstest] -#[tokio::test] -async fn fails_already_declared(madara: &ThreadSafeMadaraClient) -> Result<(), anyhow::Error> { - let rpc = madara.get_starknet_client().await; - - // first declaration works - let account = build_single_owner_account(&rpc, SIGNER_PRIVATE, ARGENT_CONTRACT_ADDRESS, true); - let (declare_tx, _, _) = account - .declare_contract("./contracts/Counter2/Counter2.sierra.json", "./contracts/Counter2/Counter2.casm.json"); - - let mut madara_write_lock = madara.write().await; - // The first one will fail too for now - let txs = madara_write_lock.create_block_with_txs(vec![Transaction::Declaration(declare_tx)]).await?; - - assert_eq!(txs.len(), 1); - assert!(txs[0].as_ref().is_ok()); - - // second declaration fails - let (declare_tx, _, _) = account - .declare_contract("./contracts/Counter2/Counter2.sierra.json", "./contracts/Counter2/Counter2.casm.json"); - - let mut txs = madara_write_lock.create_block_with_txs(vec![Transaction::Declaration(declare_tx)]).await?; - - assert_eq!(txs.len(), 1); - let declare_tx_result = txs.remove(0); - assert_matches!( - declare_tx_result.err(), - Some(SendTransactionError::AccountError(starknet_accounts::AccountError::Provider( - ProviderError::StarknetError(StarknetErrorWithMessage { - code: MaybeUnknownErrorCode::Known(StarknetError::ClassAlreadyDeclared), - message: _ - }) - ))) - ); - - Ok(()) -} diff --git a/starknet-rpc-test/add_deploy_account_transaction.rs b/starknet-rpc-test/add_deploy_account_transaction.rs deleted file mode 100644 index a05db1d504..0000000000 --- a/starknet-rpc-test/add_deploy_account_transaction.rs +++ /dev/null @@ -1,108 +0,0 @@ -extern crate starknet_rpc_test; - -use std::vec; - -use rstest::rstest; -use starknet_accounts::AccountFactory; -use starknet_core::types::{BlockId, BlockTag, DeployAccountTransactionResult}; -use starknet_ff::FieldElement; -use starknet_providers::Provider; -use starknet_rpc_test::constants::{ - ARGENT_CONTRACT_ADDRESS, CAIRO_1_ACCOUNT_CONTRACT_CLASS_HASH, MAX_FEE_OVERRIDE, SIGNER_PRIVATE, -}; -use starknet_rpc_test::fixtures::{madara, ThreadSafeMadaraClient}; -use starknet_rpc_test::utils::{ - build_deploy_account_tx, build_oz_account_factory, build_single_owner_account, AccountActions, -}; -use starknet_rpc_test::{Transaction, TransactionResult}; - -#[rstest] -#[tokio::test] -async fn fail_execution_step_with_no_storage_change(madara: &ThreadSafeMadaraClient) -> Result<(), anyhow::Error> { - let rpc = madara.get_starknet_client().await; - - // deploy account - let oz_factory = build_oz_account_factory( - &rpc, - SIGNER_PRIVATE, - FieldElement::from_hex_be(CAIRO_1_ACCOUNT_CONTRACT_CLASS_HASH).unwrap(), - ) - .await; - let account_deploy_txn = build_deploy_account_tx(&oz_factory, FieldElement::ONE); - let account_address = account_deploy_txn.address(); - - let mut madara_write_lock = madara.write().await; - // as the account isn't funded, this should fail - let txs = madara_write_lock.create_block_with_txs(vec![Transaction::AccountDeployment(account_deploy_txn)]).await?; - - assert_eq!(txs.len(), 1); - assert!(txs[0].as_ref().is_ok()); - - // transaction fails, nothing at class hash - assert!(rpc.get_class_hash_at(BlockId::Tag(BlockTag::Latest), account_address).await.is_err()); - - // doesn't get included in block - let included_txs = rpc.get_block_transaction_count(BlockId::Tag(BlockTag::Latest)).await?; - assert_eq!(included_txs, 0); - - Ok(()) -} - -#[rstest] -#[tokio::test] -async fn works_with_storage_change(madara: &ThreadSafeMadaraClient) -> Result<(), anyhow::Error> { - let rpc = madara.get_starknet_client().await; - - // deploy account - let oz_factory = build_oz_account_factory( - &rpc, - "0x789", - FieldElement::from_hex_be(CAIRO_1_ACCOUNT_CONTRACT_CLASS_HASH).unwrap(), - ) - .await; - let account_deploy_txn = build_deploy_account_tx(&oz_factory, FieldElement::ONE); - let account_address = account_deploy_txn.address(); - - let funding_account = build_single_owner_account(&rpc, SIGNER_PRIVATE, ARGENT_CONTRACT_ADDRESS, true); - - let (mut txs, block_number) = { - let mut madara_write_lock = madara.write().await; - // If we group the funding of the account and the deployment in one block for some unknown reason - // the account_address isn't found in the get_class_hash_at later - let mut txs = madara_write_lock - .create_block_with_txs(vec![Transaction::Execution(funding_account.transfer_tokens( - account_address, - FieldElement::from_hex_be(MAX_FEE_OVERRIDE).unwrap(), - None, - ))]) - .await?; - let mut second_tx = - madara_write_lock.create_block_with_txs(vec![Transaction::AccountDeployment(account_deploy_txn)]).await?; - let block_number = rpc.block_number().await?; - let _ = &txs.append(&mut second_tx); - (txs, block_number) - }; - assert_eq!(txs.len(), 2); - let account_deploy_tx_result = txs.remove(1); - match account_deploy_tx_result { - // passes the validation stage - Ok(TransactionResult::AccountDeployment(DeployAccountTransactionResult { - transaction_hash: _, - contract_address, - })) => { - assert_eq!(contract_address, account_address); - } - _ => panic!("Expected declare transaction result"), - } - let class_hash_result = rpc.get_class_hash_at(BlockId::Number(block_number), account_address).await; - match class_hash_result { - Ok(class_hash) => assert_eq!(class_hash, oz_factory.class_hash()), - Err(e) => panic!("Expected class hash to be present, got error: {}", e), - } - - // included in block - let included_txs = rpc.get_block_transaction_count(BlockId::Number(block_number)).await?; - assert_eq!(included_txs, 1); // Decomposed into 2 blocks - - Ok(()) -} diff --git a/starknet-rpc-test/call.rs b/starknet-rpc-test/call.rs deleted file mode 100644 index 037f1c0784..0000000000 --- a/starknet-rpc-test/call.rs +++ /dev/null @@ -1,206 +0,0 @@ -#![feature(assert_matches)] - -mod get_block_hash_and_number; - -extern crate starknet_rpc_test; - -use std::assert_matches::assert_matches; - -use rstest::rstest; -use starknet_accounts::{Account, Execution}; -use starknet_contract::ContractFactory; -use starknet_core::types::{BlockId, BlockTag, FunctionCall, StarknetError}; -use starknet_core::utils::get_selector_from_name; -use starknet_ff::FieldElement; -use starknet_providers::{MaybeUnknownErrorCode, Provider, ProviderError, StarknetErrorWithMessage}; -use starknet_rpc_test::constants::{ARGENT_CONTRACT_ADDRESS, FEE_TOKEN_ADDRESS, SIGNER_PRIVATE}; -use starknet_rpc_test::fixtures::{madara, ThreadSafeMadaraClient}; -use starknet_rpc_test::utils::{build_single_owner_account, AccountActions}; -use starknet_rpc_test::Transaction; - -#[rstest] -#[tokio::test] -async fn fail_non_existing_block(madara: &ThreadSafeMadaraClient) -> Result<(), anyhow::Error> { - let rpc = madara.get_starknet_client().await; - - assert_matches!( - rpc.call( - FunctionCall { - contract_address: FieldElement::from_hex_be(FEE_TOKEN_ADDRESS).unwrap(), - entry_point_selector: get_selector_from_name("name").unwrap(), - calldata: vec![] - }, - BlockId::Hash(FieldElement::ZERO) - ) - .await - .err(), - Some(ProviderError::StarknetError(StarknetErrorWithMessage { - message: _, - code: MaybeUnknownErrorCode::Known(StarknetError::BlockNotFound) - })) - ); - - Ok(()) -} - -#[rstest] -#[tokio::test] -async fn fail_non_existing_entrypoint(madara: &ThreadSafeMadaraClient) -> Result<(), anyhow::Error> { - let rpc = madara.get_starknet_client().await; - - assert_matches!( - rpc.call( - FunctionCall { - contract_address: FieldElement::from_hex_be(FEE_TOKEN_ADDRESS).unwrap(), - entry_point_selector: FieldElement::from_hex_be("0x0").unwrap(), - calldata: vec![] - }, - BlockId::Tag(BlockTag::Latest) - ) - .await - .err(), - Some(ProviderError::StarknetError(StarknetErrorWithMessage { - message: _, - code: MaybeUnknownErrorCode::Known(StarknetError::ContractError) - })) - ); - - Ok(()) -} - -#[rstest] -#[tokio::test] -async fn fail_incorrect_calldata(madara: &ThreadSafeMadaraClient) -> Result<(), anyhow::Error> { - let rpc = madara.get_starknet_client().await; - - assert_matches!( - rpc.call( - FunctionCall { - contract_address: FieldElement::from_hex_be(FEE_TOKEN_ADDRESS).unwrap(), - entry_point_selector: get_selector_from_name("name").unwrap(), - calldata: vec![FieldElement::ONE] // name function has no calldata - }, - BlockId::Tag(BlockTag::Latest) - ) - .await - .err(), - Some(ProviderError::StarknetError(StarknetErrorWithMessage { - message: _, - code: MaybeUnknownErrorCode::Known(StarknetError::ContractError) - })) - ); - - Ok(()) -} - -#[rstest] -#[tokio::test] -async fn works_on_correct_call_no_calldata(madara: &ThreadSafeMadaraClient) -> Result<(), anyhow::Error> { - let rpc = madara.get_starknet_client().await; - - assert_eq!( - rpc.call( - FunctionCall { - contract_address: FieldElement::from_hex_be(FEE_TOKEN_ADDRESS).unwrap(), - entry_point_selector: get_selector_from_name("name").unwrap(), - calldata: vec![] // name function has no calldata - }, - BlockId::Tag(BlockTag::Latest) - ) - .await - .unwrap(), - vec![FieldElement::from_hex_be("0x4574686572").unwrap()] - ); - - Ok(()) -} - -#[rstest] -#[tokio::test] -async fn works_on_correct_call_with_calldata(madara: &ThreadSafeMadaraClient) -> Result<(), anyhow::Error> { - let rpc = madara.get_starknet_client().await; - - assert!( - rpc.call( - FunctionCall { - contract_address: FieldElement::from_hex_be(FEE_TOKEN_ADDRESS).unwrap(), - entry_point_selector: get_selector_from_name("balanceOf").unwrap(), - calldata: vec![FieldElement::TWO] // name function has no calldata - }, - BlockId::Tag(BlockTag::Latest) - ) - .await - .unwrap()[0] - .gt(&FieldElement::ZERO) - ); - - Ok(()) -} - -#[rstest] -#[tokio::test] -async fn works_on_mutable_call_without_modifying_storage(madara: &ThreadSafeMadaraClient) -> Result<(), anyhow::Error> { - let rpc = madara.get_starknet_client().await; - - { - let mut madara_write_lock = madara.write().await; - let account = build_single_owner_account(&rpc, SIGNER_PRIVATE, ARGENT_CONTRACT_ADDRESS, true); - - let (declare_tx, class_hash, _) = - account.declare_contract("./contracts/Counter.sierra.json", "./contracts/Counter.casm.json"); - let contract_factory = ContractFactory::new(class_hash, account.clone()); - - // manually setting fee else estimate_fee will be called and it will fail - // as contract is not declared yet (declared in the same block as deployment) - let max_fee = FieldElement::from_hex_be("0x1000000000").unwrap(); - - // manually incrementing nonce else as both declare and deploy are in the same block - // so automatic nonce calculation will fail - let nonce = rpc.get_nonce(BlockId::Tag(BlockTag::Latest), account.address()).await.unwrap() + FieldElement::ONE; - - let deploy_tx = - Execution::from(&contract_factory.deploy(vec![], FieldElement::ZERO, true).max_fee(max_fee).nonce(nonce)); - - // declare and deploy contract - madara_write_lock.create_block_with_txs(vec![Transaction::Declaration(declare_tx)]).await?; - madara_write_lock.create_block_with_txs(vec![Transaction::Execution(deploy_tx)]).await?; - } - - // address of deployed contract (will always be the same for 0 salt) - let contract_address = - FieldElement::from_hex_be("0x0226d81ce04c3c7081fe05f51b32b75210aad1ea8be8bce566f26d25d5ffb4c3").unwrap(); - - let read_balance = || async { - rpc.call( - FunctionCall { - contract_address, - entry_point_selector: get_selector_from_name("get_balance").unwrap(), - calldata: vec![], - }, - BlockId::Tag(BlockTag::Latest), - ) - .await - .unwrap() - }; - - let initial_balance = read_balance().await[0]; - // call increase_balance and verify it returns a result - assert!( - rpc.call( - FunctionCall { - contract_address, - entry_point_selector: get_selector_from_name("increase_balance").unwrap(), - calldata: vec![FieldElement::ONE] - }, - BlockId::Tag(BlockTag::Latest) - ) - .await - .is_ok() - ); - let final_balance = read_balance().await[0]; - - // initial and final balance should be same as starknet_call doesn't change storage - assert_eq!(initial_balance, final_balance); - - Ok(()) -} diff --git a/starknet-rpc-test/contracts/Counter0/Counter0.cairo b/starknet-rpc-test/contracts/Counter0/Counter0.cairo deleted file mode 100644 index 5468441837..0000000000 --- a/starknet-rpc-test/contracts/Counter0/Counter0.cairo +++ /dev/null @@ -1,19 +0,0 @@ -#[starknet::contract] -mod Counter0 { - #[storage] - struct Storage { - balance_0: felt252, - } - - // Increases the balance_0 by the given amount. - #[external(v0)] - fn increase_balance_0(ref self: ContractState, amount: felt252) { - self.balance_0.write(self.balance_0.read() + amount + 0 + 1); - } - - // Returns the current balance_0. - #[external(v0)] - fn get_balance_0(self: @ContractState) -> felt252 { - self.balance_0.read() - } -} diff --git a/starknet-rpc-test/contracts/Counter0/Counter0.casm.json b/starknet-rpc-test/contracts/Counter0/Counter0.casm.json deleted file mode 100644 index 2028e1ebfc..0000000000 --- a/starknet-rpc-test/contracts/Counter0/Counter0.casm.json +++ /dev/null @@ -1,579 +0,0 @@ -{ - "prime": "0x800000000000011000000000000000000000000000000000000000000000001", - "compiler_version": "2.1.0", - "bytecode": [ - "0xa0680017fff8000", - "0x7", - "0x482680017ffa8000", - "0xffffffffffffffffffffffffffffa920", - "0x400280007ff97fff", - "0x10780017fff7fff", - "0x6e", - "0x4825800180007ffa", - "0x56e0", - "0x400280007ff97fff", - "0x480a7ffc7fff8000", - "0x480a7ffd7fff8000", - "0x1104800180018000", - "0xe8", - "0x482680017ff98000", - "0x1", - "0x20680017fff7ffd", - "0x55", - "0x48307ffb80007ffc", - "0x4824800180007fff", - "0x0", - "0x20680017fff7fff", - "0x4", - "0x10780017fff7fff", - "0x13", - "0x480a7ffb7fff8000", - "0x1104800180018000", - "0xfe", - "0x40780017fff7fff", - "0x1", - "0x480680017fff8000", - "0x496e70757420746f6f206c6f6e6720666f7220617267756d656e7473", - "0x400080007ffe7fff", - "0x48127ff77fff8000", - "0x48127fe67fff8000", - "0x48127ffb7fff8000", - "0x480680017fff8000", - "0x1", - "0x48127ffa7fff8000", - "0x482480017ff98000", - "0x1", - "0x208b7fff7fff7ffe", - "0x1104800180018000", - "0x1b4", - "0x482480017fff8000", - "0x1b3", - "0x480080007fff8000", - "0xa0680017fff8000", - "0x9", - "0x4824800180007fe8", - "0x0", - "0x482480017fff8000", - "0x100000000000000000000000000000000", - "0x400080007ff67fff", - "0x10780017fff7fff", - "0x20", - "0x4824800180007fe8", - "0x0", - "0x400080007ff77fff", - "0x48127fff7fff8000", - "0x480a7ffb7fff8000", - "0x48127ff47fff8000", - "0x1104800180018000", - "0xdc", - "0x482480017fbc8000", - "0x1", - "0x20680017fff7ffc", - "0xc", - "0x40780017fff7fff", - "0x1", - "0x48127ffe7fff8000", - "0x48127ff87fff8000", - "0x48127ff87fff8000", - "0x480680017fff8000", - "0x0", - "0x48127ffb7fff8000", - "0x48127ffa7fff8000", - "0x208b7fff7fff7ffe", - "0x48127fff7fff8000", - "0x48127ff97fff8000", - "0x48127ff97fff8000", - "0x480680017fff8000", - "0x1", - "0x48127ff97fff8000", - "0x48127ff97fff8000", - "0x208b7fff7fff7ffe", - "0x40780017fff7fff", - "0x1", - "0x480680017fff8000", - "0x4f7574206f6620676173", - "0x400080007ffe7fff", - "0x482480017ff48000", - "0x1", - "0x48127fe37fff8000", - "0x480a7ffb7fff8000", - "0x480680017fff8000", - "0x1", - "0x48127ffa7fff8000", - "0x482480017ff98000", - "0x1", - "0x208b7fff7fff7ffe", - "0x40780017fff7fff", - "0x1", - "0x480680017fff8000", - "0x496e70757420746f6f2073686f727420666f7220617267756d656e7473", - "0x400080007ffe7fff", - "0x48127ffd7fff8000", - "0x48127fec7fff8000", - "0x480a7ffb7fff8000", - "0x480680017fff8000", - "0x1", - "0x48127ffa7fff8000", - "0x482480017ff98000", - "0x1", - "0x208b7fff7fff7ffe", - "0x40780017fff7fff", - "0x1", - "0x480680017fff8000", - "0x4f7574206f6620676173", - "0x400080007ffe7fff", - "0x482680017ff98000", - "0x1", - "0x480a7ffa7fff8000", - "0x480a7ffb7fff8000", - "0x480680017fff8000", - "0x1", - "0x48127ffa7fff8000", - "0x482480017ff98000", - "0x1", - "0x208b7fff7fff7ffe", - "0xa0680017fff8000", - "0x7", - "0x482680017ffa8000", - "0xffffffffffffffffffffffffffffe2f0", - "0x400280007ff97fff", - "0x10780017fff7fff", - "0x5e", - "0x4825800180007ffa", - "0x1d10", - "0x400280007ff97fff", - "0x48297ffc80007ffd", - "0x482680017ff98000", - "0x1", - "0x4824800180007ffe", - "0x0", - "0x20680017fff7fff", - "0x4", - "0x10780017fff7fff", - "0x13", - "0x480a7ffb7fff8000", - "0x1104800180018000", - "0x82", - "0x40780017fff7fff", - "0x1", - "0x480680017fff8000", - "0x496e70757420746f6f206c6f6e6720666f7220617267756d656e7473", - "0x400080007ffe7fff", - "0x48127ff87fff8000", - "0x48127ff57fff8000", - "0x48127ffb7fff8000", - "0x480680017fff8000", - "0x1", - "0x48127ffa7fff8000", - "0x482480017ff98000", - "0x1", - "0x208b7fff7fff7ffe", - "0x1104800180018000", - "0x138", - "0x482480017fff8000", - "0x137", - "0x480080007fff8000", - "0xa0680017fff8000", - "0x9", - "0x4824800180007ff7", - "0x0", - "0x482480017fff8000", - "0x100000000000000000000000000000000", - "0x400080007ff77fff", - "0x10780017fff7fff", - "0x24", - "0x4824800180007ff7", - "0x0", - "0x400080007ff87fff", - "0x48127fff7fff8000", - "0x480a7ffb7fff8000", - "0x1104800180018000", - "0x8b", - "0x482480017fd88000", - "0x1", - "0x20680017fff7ffc", - "0x11", - "0x40780017fff7fff", - "0x1", - "0x48127ffd7fff8000", - "0x48127ffe7fff8000", - "0x48127ffd7fff8000", - "0x1104800180018000", - "0x95", - "0x48127ff77fff8000", - "0x48127ff17fff8000", - "0x48127ff17fff8000", - "0x480680017fff8000", - "0x0", - "0x48127ffa7fff8000", - "0x48127ffa7fff8000", - "0x208b7fff7fff7ffe", - "0x48127fff7fff8000", - "0x48127ff97fff8000", - "0x48127ff97fff8000", - "0x480680017fff8000", - "0x1", - "0x48127ff97fff8000", - "0x48127ff97fff8000", - "0x208b7fff7fff7ffe", - "0x40780017fff7fff", - "0x1", - "0x480680017fff8000", - "0x4f7574206f6620676173", - "0x400080007ffe7fff", - "0x482480017ff58000", - "0x1", - "0x48127ff27fff8000", - "0x480a7ffb7fff8000", - "0x480680017fff8000", - "0x1", - "0x48127ffa7fff8000", - "0x482480017ff98000", - "0x1", - "0x208b7fff7fff7ffe", - "0x40780017fff7fff", - "0x1", - "0x480680017fff8000", - "0x4f7574206f6620676173", - "0x400080007ffe7fff", - "0x482680017ff98000", - "0x1", - "0x480a7ffa7fff8000", - "0x480a7ffb7fff8000", - "0x480680017fff8000", - "0x1", - "0x48127ffa7fff8000", - "0x482480017ff98000", - "0x1", - "0x208b7fff7fff7ffe", - "0x48297ffc80007ffd", - "0x20680017fff7fff", - "0x4", - "0x10780017fff7fff", - "0xa", - "0x482680017ffc8000", - "0x1", - "0x480a7ffd7fff8000", - "0x480680017fff8000", - "0x0", - "0x480a7ffc7fff8000", - "0x10780017fff7fff", - "0x8", - "0x480a7ffc7fff8000", - "0x480a7ffd7fff8000", - "0x480680017fff8000", - "0x1", - "0x480680017fff8000", - "0x0", - "0x48127ffc7fff8000", - "0x48127ffc7fff8000", - "0x20680017fff7ffc", - "0x8", - "0x48127ffe7fff8000", - "0x48127ffe7fff8000", - "0x480680017fff8000", - "0x0", - "0x480080007ffa8000", - "0x208b7fff7fff7ffe", - "0x48127ffe7fff8000", - "0x48127ffe7fff8000", - "0x480680017fff8000", - "0x1", - "0x480680017fff8000", - "0x0", - "0x208b7fff7fff7ffe", - "0x480a7ffd7fff8000", - "0x208b7fff7fff7ffe", - "0x480a7ffb7fff8000", - "0x480a7ffc7fff8000", - "0x1104800180018000", - "0x42", - "0x20680017fff7ffd", - "0x1d", - "0x48287ffd7fff8000", - "0x482480017fff8000", - "0x0", - "0x48127ff97fff8000", - "0x48127ff97fff8000", - "0x482480017ffd8000", - "0x1", - "0x1104800180018000", - "0x68", - "0x20680017fff7ffd", - "0xb", - "0x48127ffb7fff8000", - "0x48127ffb7fff8000", - "0x480680017fff8000", - "0x0", - "0x480680017fff8000", - "0x0", - "0x480680017fff8000", - "0x0", - "0x208b7fff7fff7ffe", - "0x48127ffb7fff8000", - "0x48127ffb7fff8000", - "0x480680017fff8000", - "0x1", - "0x48127ffb7fff8000", - "0x48127ffb7fff8000", - "0x208b7fff7fff7ffe", - "0x40780017fff7fff", - "0x1a", - "0x48127fe17fff8000", - "0x48127fe17fff8000", - "0x480680017fff8000", - "0x1", - "0x48127fe17fff8000", - "0x48127fe17fff8000", - "0x208b7fff7fff7ffe", - "0x480a7ffc7fff8000", - "0x480a7ffd7fff8000", - "0x1104800180018000", - "0x18", - "0x20680017fff7ffd", - "0xa", - "0x48127ffb7fff8000", - "0x48127ffb7fff8000", - "0x480680017fff8000", - "0x0", - "0x480680017fff8000", - "0x0", - "0x48127ffb7fff8000", - "0x208b7fff7fff7ffe", - "0x48127ffb7fff8000", - "0x48127ffb7fff8000", - "0x480680017fff8000", - "0x1", - "0x48127ffb7fff8000", - "0x48127ffb7fff8000", - "0x208b7fff7fff7ffe", - "0x400380007ffd7ffb", - "0x480a7ffc7fff8000", - "0x482680017ffd8000", - "0x1", - "0x208b7fff7fff7ffe", - "0x480680017fff8000", - "0x0", - "0x480680017fff8000", - "0x904f2833296109453ae83969e306a0ffe26d05f3d29af52bcc8fe626ac1d6b", - "0x480680017fff8000", - "0x53746f7261676552656164", - "0x400280007ffd7fff", - "0x400380017ffd7ffc", - "0x400280027ffd7ffd", - "0x400280037ffd7ffe", - "0x480280057ffd8000", - "0x20680017fff7fff", - "0xc", - "0x480280047ffd8000", - "0x482680017ffd8000", - "0x7", - "0x480680017fff8000", - "0x0", - "0x480680017fff8000", - "0x0", - "0x480280067ffd8000", - "0x10780017fff7fff", - "0x9", - "0x480280047ffd8000", - "0x482680017ffd8000", - "0x8", - "0x480680017fff8000", - "0x1", - "0x480280067ffd8000", - "0x480280077ffd8000", - "0x1104800180018000", - "0x47", - "0x20680017fff7ffd", - "0xa", - "0x48127ff67fff8000", - "0x48127ff67fff8000", - "0x480680017fff8000", - "0x0", - "0x480680017fff8000", - "0x0", - "0x48127ffb7fff8000", - "0x208b7fff7fff7ffe", - "0x48127ff67fff8000", - "0x48127ff67fff8000", - "0x480680017fff8000", - "0x1", - "0x48127ffb7fff8000", - "0x48127ffb7fff8000", - "0x208b7fff7fff7ffe", - "0x480680017fff8000", - "0x0", - "0x480680017fff8000", - "0x904f2833296109453ae83969e306a0ffe26d05f3d29af52bcc8fe626ac1d6b", - "0x480680017fff8000", - "0x53746f726167655772697465", - "0x400280007ffc7fff", - "0x400380017ffc7ffb", - "0x400280027ffc7ffd", - "0x400280037ffc7ffe", - "0x400380047ffc7ffd", - "0x480280067ffc8000", - "0x20680017fff7fff", - "0xd", - "0x480280057ffc8000", - "0x482680017ffc8000", - "0x7", - "0x480680017fff8000", - "0x0", - "0x480680017fff8000", - "0x0", - "0x480680017fff8000", - "0x0", - "0x10780017fff7fff", - "0x9", - "0x480280057ffc8000", - "0x482680017ffc8000", - "0x9", - "0x480680017fff8000", - "0x1", - "0x480280077ffc8000", - "0x480280087ffc8000", - "0x1104800180018000", - "0x21", - "0x20680017fff7ffd", - "0xb", - "0x48127ff67fff8000", - "0x48127ff67fff8000", - "0x480680017fff8000", - "0x0", - "0x480680017fff8000", - "0x0", - "0x480680017fff8000", - "0x0", - "0x208b7fff7fff7ffe", - "0x48127ff67fff8000", - "0x48127ff67fff8000", - "0x480680017fff8000", - "0x1", - "0x48127ffb7fff8000", - "0x48127ffb7fff8000", - "0x208b7fff7fff7ffe", - "0x20780017fff7ffb", - "0x8", - "0x480680017fff8000", - "0x0", - "0x480680017fff8000", - "0x0", - "0x480a7ffd7fff8000", - "0x208b7fff7fff7ffe", - "0x480680017fff8000", - "0x1", - "0x480a7ffc7fff8000", - "0x480a7ffd7fff8000", - "0x208b7fff7fff7ffe", - "0x20780017fff7ffb", - "0x9", - "0x480680017fff8000", - "0x0", - "0x480680017fff8000", - "0x0", - "0x480680017fff8000", - "0x0", - "0x208b7fff7fff7ffe", - "0x480680017fff8000", - "0x1", - "0x480a7ffc7fff8000", - "0x480a7ffd7fff8000", - "0x208b7fff7fff7ffe" - ], - "hints": [ - [ - 0, - [ - { - "TestLessThanOrEqual": { - "lhs": { "Immediate": "0x56e0" }, - "rhs": { "Deref": { "register": "FP", "offset": -6 } }, - "dst": { "register": "AP", "offset": 0 } - } - } - ] - ], - [28, [{ "AllocSegment": { "dst": { "register": "AP", "offset": 0 } } }]], - [ - 47, - [ - { - "TestLessThanOrEqual": { - "lhs": { "Immediate": "0x0" }, - "rhs": { "Deref": { "register": "AP", "offset": -23 } }, - "dst": { "register": "AP", "offset": 0 } - } - } - ] - ], - [68, [{ "AllocSegment": { "dst": { "register": "AP", "offset": 0 } } }]], - [86, [{ "AllocSegment": { "dst": { "register": "AP", "offset": 0 } } }]], - [101, [{ "AllocSegment": { "dst": { "register": "AP", "offset": 0 } } }]], - [115, [{ "AllocSegment": { "dst": { "register": "AP", "offset": 0 } } }]], - [ - 130, - [ - { - "TestLessThanOrEqual": { - "lhs": { "Immediate": "0x1d10" }, - "rhs": { "Deref": { "register": "FP", "offset": -6 } }, - "dst": { "register": "AP", "offset": 0 } - } - } - ] - ], - [152, [{ "AllocSegment": { "dst": { "register": "AP", "offset": 0 } } }]], - [ - 171, - [ - { - "TestLessThanOrEqual": { - "lhs": { "Immediate": "0x0" }, - "rhs": { "Deref": { "register": "AP", "offset": -8 } }, - "dst": { "register": "AP", "offset": 0 } - } - } - ] - ], - [191, [{ "AllocSegment": { "dst": { "register": "AP", "offset": 0 } } }]], - [214, [{ "AllocSegment": { "dst": { "register": "AP", "offset": 0 } } }]], - [229, [{ "AllocSegment": { "dst": { "register": "AP", "offset": 0 } } }]], - [ - 360, - [ - { - "SystemCall": { - "system": { "Deref": { "register": "FP", "offset": -3 } } - } - } - ] - ], - [ - 410, - [ - { - "SystemCall": { - "system": { "Deref": { "register": "FP", "offset": -4 } } - } - } - ] - ] - ], - "entry_points_by_type": { - "EXTERNAL": [ - { - "selector": "0xb61015b8f0a9aa3e16e55c2d2094e84095c29c1376bd5a44680c1449e63575", - "offset": 0, - "builtins": ["range_check"] - }, - { - "selector": "0x113e3540ab23de9f67c67a9c0ee7796d0ebb8afafdba2af272927e34f1713e2", - "offset": 130, - "builtins": ["range_check"] - } - ], - "L1_HANDLER": [], - "CONSTRUCTOR": [] - } -} diff --git a/starknet-rpc-test/contracts/Counter0/Counter0.sierra.json b/starknet-rpc-test/contracts/Counter0/Counter0.sierra.json deleted file mode 100644 index cc0e80ccc8..0000000000 --- a/starknet-rpc-test/contracts/Counter0/Counter0.sierra.json +++ /dev/null @@ -1,661 +0,0 @@ -{ - "sierra_program": [ - "0x1", - "0x3", - "0x0", - "0x2", - "0x1", - "0x0", - "0xca", - "0x36", - "0x1f", - "0x52616e6765436865636b", - "0x0", - "0x4761734275696c74696e", - "0x66656c74323532", - "0x4172726179", - "0x1", - "0x2", - "0x536e617073686f74", - "0x3", - "0x537472756374", - "0x1baeba72e79e9db2587cf44fedb2f3700b2075a5e8e39a562584862c4b71f62", - "0x4", - "0x2ee1e2b1b89f8c495f200e4956278a4d47395fe262f27b52e5865c9524c08c3", - "0x456e756d", - "0x11c6d8087e00642489f92d2821ad6ebd6532ad1a3b6d12833da6d6810391511", - "0x6", - "0x753332", - "0x53797374656d", - "0x16a4c8d7c05909052238a862d8cc3e7975bf05a07b3a69c6b28951083a6d672", - "0xa", - "0x5", - "0x9931c641b913035ae674b400b61a51476d506bbe8bba2ff8a6272790aba9e6", - "0xc", - "0xb", - "0x4275696c74696e436f737473", - "0x1e1ba6f64cc53a607e0869ea0c734b5241e1d83aa67b1a4de8594a296768b91", - "0x7278224f70cfcb7322ec5f24ac8a315a8f2d83e4751e4032c52eba0d0c215b", - "0xf", - "0x10", - "0x26bf7e20eb37b4072fcf3a87bbfbea1a03c515e6a585e8079ceeb51b005cfcf", - "0x11", - "0x10203be321c62a7bd4c060d69539c1fbe065baa9e253c74d2cc48be163e259", - "0x13", - "0x426f78", - "0x29d7d57c04a880978e7b3689f6218e507f3be17588744b58dc17762447ad0e7", - "0x15", - "0x332c8facfa6abea2729b057ae3ff989da7f108683698295e575ed04f5fa24a1", - "0x17", - "0x53746f726167654261736541646472657373", - "0x53746f7261676541646472657373", - "0x90d0203c41ad646d024845257a6eceb2f8b59b29ce7420dd518053d2edeedc", - "0x101dc0399934cc08fa0d6f6f2daead4e4a38cabeea1c743e1fc28d2d6e58e99", - "0xcc5e86243f861d2d64b08c35db21013e773ac5cf10097946fe0011304886d5", - "0x1d", - "0x71", - "0x7265766f6b655f61705f747261636b696e67", - "0x77697468647261775f676173", - "0x6272616e63685f616c69676e", - "0x73746f72655f74656d70", - "0x66756e6374696f6e5f63616c6c", - "0x656e756d5f6d61746368", - "0x7", - "0x7374727563745f6465636f6e737472756374", - "0x61727261795f6c656e", - "0x736e617073686f745f74616b65", - "0x8", - "0x64726f70", - "0x7533325f636f6e7374", - "0x72656e616d65", - "0x7533325f6571", - "0x9", - "0x61727261795f6e6577", - "0x66656c743235325f636f6e7374", - "0x496e70757420746f6f206c6f6e6720666f7220617267756d656e7473", - "0x61727261795f617070656e64", - "0x7374727563745f636f6e737472756374", - "0x656e756d5f696e6974", - "0xd", - "0x6765745f6275696c74696e5f636f737473", - "0xe", - "0x77697468647261775f6761735f616c6c", - "0x12", - "0x4f7574206f6620676173", - "0x496e70757420746f6f2073686f727420666f7220617267756d656e7473", - "0x14", - "0x61727261795f736e617073686f745f706f705f66726f6e74", - "0x16", - "0x6a756d70", - "0x756e626f78", - "0x66656c743235325f616464", - "0x18", - "0x73746f726167655f626173655f616464726573735f636f6e7374", - "0x904f2833296109453ae83969e306a0ffe26d05f3d29af52bcc8fe626ac1d6b", - "0x73746f726167655f616464726573735f66726f6d5f62617365", - "0x1a", - "0x73746f726167655f726561645f73797363616c6c", - "0x1b", - "0x73746f726167655f77726974655f73797363616c6c", - "0x1c", - "0x1e", - "0x19f", - "0xffffffffffffffff", - "0x63", - "0x54", - "0x24", - "0x19", - "0x20", - "0x21", - "0x22", - "0x23", - "0x25", - "0x46", - "0x26", - "0x27", - "0x28", - "0x29", - "0x2d", - "0x2e", - "0x2f", - "0x30", - "0x2a", - "0x2b", - "0x2c", - "0x31", - "0x3f", - "0x32", - "0x33", - "0x34", - "0x35", - "0x36", - "0x37", - "0x38", - "0x39", - "0x3a", - "0x3b", - "0x3c", - "0x3d", - "0x3e", - "0x40", - "0x41", - "0x42", - "0x43", - "0x44", - "0x45", - "0x47", - "0x48", - "0x49", - "0x4a", - "0x4b", - "0x4c", - "0x4d", - "0x4e", - "0x4f", - "0x50", - "0x51", - "0x52", - "0x53", - "0x55", - "0x56", - "0x57", - "0x58", - "0x59", - "0x5a", - "0x5b", - "0x5c", - "0x5d", - "0x5e", - "0x5f", - "0xc6", - "0x90", - "0xb9", - "0xb2", - "0xdb", - "0xe0", - "0xea", - "0x11c", - "0x116", - "0x132", - "0x14b", - "0x150", - "0x15b", - "0x170", - "0x60", - "0x61", - "0x175", - "0x62", - "0x64", - "0x65", - "0x180", - "0x66", - "0x67", - "0x68", - "0x69", - "0x6a", - "0x6b", - "0x18d", - "0x6c", - "0x199", - "0x6d", - "0x6e", - "0x6f", - "0x70", - "0xd4", - "0xf1", - "0xf5", - "0x124", - "0x138", - "0x13e", - "0x161", - "0x187", - "0x193", - "0xf89", - "0x7060f02090e0d02060a0c060b02070a090606080706060502040203020100", - "0x617061602090e15060d02070a090614060d02090a1302060a021202111006", - "0x70a18061f061e02090e10061d060d02090a1c061b02070a1a02060a021918", - "0x61c060d02090a100624062302090e07060622180621062002090e07060d02", - "0x70a090610062a02090e090607062902090e02280227180626062502090e10", - "0x206063107090632150606310230022f022e2d18062c062b02090e10060d02", - "0x606313806063b0207063a3806063938060637070606361506063534060633", - "0x70606314007063f0706063e10060639090906323d06063107060639023c38", - "0x6063102454406063106060631060744060743180606421406064207060641", - "0x90606371f060639480606330c0906321d0606311d0606421c060642024746", - "0x374a07063f150606394907063f020744060743170606421506064209060639", - "0x100906320906063107060637210606354b060633150906321d0606391d0606", - "0x3306074d06074310060642024e4d0606310c06063102074d0607430706064c", - "0x10060631060734060743340606310207340607430706063b0706064f4d0606", - "0x33380906320607063f0207063f0250340906321c0606311c0606371d060635", - "0x1c060639060748060743480606310207480607431f06064226060635510606", - "0x565506063102545307065206074b0607434b06063102074b06074321060642", - "0x5906074302583d0906325706063b0607570607435706063102075706074302", - "0x606422c0606355a060633140906325906063b060759060743590606310207", - "0x7432c06064259060633570606330607510607435106063102075106074326", - "0x150c075c070602070602025c060202025b06075a0607435a06063102075a06", - "0xc0615023d38075c0614060c0214065c0609060902025c060207023410075d", - "0x380244065c0638063402025c0602070217065e18065c073d0610020c065c06", - "0x3d021f065c06021802025c061c0614021d1c075c0646063d0246065c064406", - "0x224065c06210617024b065c061d061702025c06480614022148075c061f06", - "0x2025c0618061c02025c06020702025f025c07244b0746024b065c064b0644", - "0x260065c06022102025c0626064802264d075c0651061f0251065c0607061d", - "0x259065c0602260257065c065560074d0255065c065506240255065c06024b", - "0x65c061506550200065c060c0615025a065c062c0660022c065c0657590751", - "0x5902025c06020702636261000c0663065c065a06570262065c064d061d0261", - "0x2070268670766655f075c0764150c095a0264065c0664062c0264065c0602", - "0x607061d026b065c06650655026a065c066906610269065c06020002025c06", - "0x706f095c066e6d6c6b0c63026e065c06180624026d065c066a0662026c065c", - "0x672065f02025c0602070274067372065c07710664025f065c065f06150271", - "0x5c0677066802025c06760667027776075c067506650275065c06022102025c", - "0x66f0655027b065c065f0615027a065c0679066a0279065c06780669027806", - "0x25c060207027e7d7c7b0c067e065c067a0657027d065c0670061d027c065c", - "0x65c0670061d0273065c066f06550280065c065f0615027f065c0674066002", - "0x22102025c0618061c02025c06020702828173800c0682065c067f06570281", - "0x2260285065c068483074d0284065c068406240284065c06026f0283065c06", - "0x550288065c066706150287065c066606600266065c06858607510286065c06", - "0x207028b8a89880c068b065c06870657028a065c0607061d0289065c066806", - "0x8d065c060271028c065c06022102025c0638067002025c0617064802025c06", - "0x5c068e8f0751028f065c060226028e065c068d8c074d028d065c068d062402", - "0x607061d0293065c061506550292065c060c06150291065c06900660029006", - "0x2025c0609067002025c06020702945e93920c0694065c06910657025e065c", - "0x297065c069695074d0296065c069606240296065c06026f0295065c060221", - "0x9b065c06100615029a065c069906600299065c06979807510298065c060226", - "0x29e9d9c9b0c069e065c069a0657029d065c0607061d029c065c0634065502", - "0x5c0609063402025c060207023410079f150c075c070602070602025c060202", - "0x5c06021802025c06140614021814075c063d063d023d065c06380638023806", - "0x6460617021c065c0618061702025c06440614024644075c0617063d021706", - "0x70202a0025c071d1c0746020c065c060c0615021c065c061c0644021d065c", - "0x22102025c0648064802481f075c0621061f0221065c0607061d02025c0602", - "0x226024d065c06244b074d0224065c062406240224065c06024b024b065c06", - "0x550255065c060c06150260065c065106600251065c064d2607510226065c06", - "0x207022c5957550c062c065c066006570259065c061f061d0257065c061506", - "0x7a16100075c075a150c095a025a065c065a062c025a065c06025902025c06", - "0x65075c065f066b025f065c066406610264065c06020002025c060207026362", - "0x65c066706620270065c0607061d026f065c0661065502025c0665066c0267", - "0x6a26b065c076a066e0200065c06000615026a6968095c0671706f096d0271", - "0x7472075c066d0674026e065c060221026d065c066b067202025c060207026c", - "0x75c06787707760278065c066e06750277065c0674062402025c0672061c02", - "0x5c067a066802025c06790667027a79075c0675066502025c06760648027675", - "0x6680655027e065c06000615027d065c067c066a027c065c067b0669027b06", - "0x25c0602070273807f7e0c0673065c067d06570280065c0669061d027f065c", - "0x65c0669061d0283065c066806550282065c060006150281065c066c066002", - "0x26f0286065c06022102025c06020702858483820c0685065c068106570284", - "0x7510288065c0602260287065c066686074d0266065c066606240266065c06", - "0x28c065c06630655028b065c06620615028a065c068906600289065c068788", - "0x9067002025c060207028e8d8c8b0c068e065c068a0657028d065c0607061d", - "0x6908f074d0290065c069006240290065c06026f028f065c06022102025c06", - "0x100615025e065c069306600293065c06919207510292065c0602260291065c", - "0x940c0697065c065e06570296065c0607061d0295065c063406550294065c06", - "0x7802025c060207020c06a30907075c070606770206065c0602063402979695", - "0x2070202a406027b0234065c0615067a0210065c060706790215065c060906", - "0x63d067a0210065c060c0679023d065c0638067d0238065c06027c02025c06", - "0x21706a518065c0734067e0214065c061406090214065c061006680234065c", - "0x9021c065c064606730246065c064406800244065c0618067f02025c060207", - "0x25c0617064802025c060207021f1d07061f065c061c0681021d065c061406", - "0x24065c06210681024b065c061406090221065c064806820248065c06027c02", - "0x907070609065c060606830207065c0602061d0206065c06027c02244b0706", - "0x5c0606061d0214065c06020655021015075c060c0685020c065c0607068402", - "0xa644065c073d066e023d3834095c0617181409660217065c06100686021806", - "0x65c060288021d065c06091c0787021c065c0644067202025c060207024606", - "0x5c064806240221065c0602890248065c061f1d0787021d065c061d0624021f", - "0x1506860260065c0638061d0251065c06340655024b065c0621480787024806", - "0x5c0726068b02264d24095c06575560510c8a0257065c064b06240255065c06", - "0x5a066102025c0600064802005a075c0659068c02025c060207022c06a75906", - "0x6550264065c0663068e0263065c066261078d0262065c06027c0261065c06", - "0x5c0602070267655f090667065c0664068f0265065c064d061d025f065c0624", - "0x5c0668068f026a065c064d061d0269065c062406550268065c062c06900202", - "0x46069002025c0609061c02025c0615069102025c060207026f6a6909066f06", - "0x7109066c065c0670068f026b065c0638061d0271065c063406550270065c06", - "0x60906860238065c0606061d0234065c060206550209065c06070684026c6b", - "0x5c060207021806a814065c0710066e0210150c095c063d38340966023d065c", - "0x5c060c06550246065c064406930244065c061706920217065c061406720202", - "0x9402025c060207021f1d1c09061f065c0646065e021d065c0615061d021c06", - "0x624065c0648065e024b065c0615061d0221065c060c06550248065c061806", - "0x675020c065c06027c0209065c060706074d0207065c0602068002244b2109", - "0x9065c06029502025c06070691021015070610065c060c06830215065c0609", - "0xc065c060c06970215065c061506440215065c060218020c065c0609069602", - "0x65c0638069902025c0602070218143d09a9383410095c070c1506020c9802", - "0x2aa06027b021c065c0617069a0246065c0634061d0244065c061006550217", - "0x246065c0614061d0244065c063d0655021d065c0618069b02025c06020702", - "0x21065c071f066e021f065c0648069d0248065c061c069c021c065c061d069a", - "0x5c064d0693024d065c062406920224065c0621067202025c060207024b06ab", - "0x556051090655065c0626065e0260065c0646061d0251065c06440655022606", - "0x22c065c0646061d0259065c064406550257065c064b069402025c06020702", - "0x29502025c0615069102150c075c06070685025a2c5909065a065c0657065e", - "0x3406970238065c063806440238065c0602180234065c061006960210065c06", - "0x27c02025c0602070244171809ac143d075c070934380602159e0234065c06", - "0x6ae021f065c0614061d021d065c063d0655021c065c064606ad0246065c06", - "0x5c061806550221065c064406b002025c0602070202af06027b0248065c061c", - "0x62406b10224065c0648065d0248065c062106ae021f065c0617061d021d06", - "0x7b50251065c064d06b402025c060207022606b34d065c074b06b2024b065c", - "0x259065c061f061d0257065c061d06550255065c066006b60260065c06510c", - "0x5c062606b802025c060c069102025c060207022c595709062c065c065506b7", - "0x626100090662065c065a06b70261065c061f061d0200065c061d0655025a06", - "0x5c060906930209065c0606069202025c060207020706ba06065c070206b902", - "0x71007510210065c06022602025c0602070215060615065c060c065e020c06", - "0x6065c070206bb023d06063d065c0638065e0238065c063406940234065c06", - "0x5c060c06bf020c065c060906be0209065c060606bd02025c060207020706bc", - "0x3406c00234065c06071007510210065c06022602025c060207021506061506", - "0x209070602443d06020c153d06020c183d06063d065c063806bf0238065c06", - "0x60cc202103d073d06c10234150715062d09070602443d06020c153d06020c", - "0x2100907090707c40706024b3d06091d3d0609c309070602483d0609071d3d", - "0x65706c709070602513d0609071c3d060cc60706024b3d06091c3d0609c506", - "0xc9025a065906c8024b" - ], - "sierra_program_debug_info": { - "type_names": [ - [0, "RangeCheck"], - [1, "GasBuiltin"], - [2, "felt252"], - [3, "Array"], - [4, "Snapshot>"], - [5, "core::array::Span::"], - [6, "Unit"], - [7, "core::option::Option::"], - [8, "u32"], - [9, "System"], - [10, "core::panics::Panic"], - [11, "Tuple>"], - [12, "Tuple>"], - [ - 13, - "core::panics::PanicResult::<(core::array::Span::,)>" - ], - [14, "BuiltinCosts"], - [15, "Counter0::Counter0::balance_0::ContractState"], - [16, "Counter0::Counter0::ContractState"], - [17, "Tuple"], - [ - 18, - "core::panics::PanicResult::<(Counter0::Counter0::ContractState, ())>" - ], - [19, "Tuple"], - [20, "core::panics::PanicResult::<(core::felt252,)>"], - [21, "Box"], - [22, "core::option::Option::>"], - [23, "Tuple"], - [ - 24, - "core::panics::PanicResult::<(Counter0::Counter0::balance_0::ContractState, ())>" - ], - [25, "StorageBaseAddress"], - [26, "StorageAddress"], - [ - 27, - "core::result::Result::>" - ], - [28, "core::result::Result::<(), core::array::Array::>"], - [29, "Tuple"], - [30, "core::panics::PanicResult::<((),)>"] - ], - "libfunc_names": [ - [0, "revoke_ap_tracking"], - [1, "withdraw_gas"], - [2, "branch_align"], - [3, "store_temp>"], - [4, "function_call"], - [5, "store_temp"], - [6, "enum_match>"], - [7, "struct_deconstruct>"], - [8, "array_len"], - [9, "snapshot_take"], - [10, "drop"], - [11, "u32_const<0>"], - [12, "rename"], - [13, "store_temp"], - [14, "u32_eq"], - [15, "drop"], - [16, "store_temp"], - [17, "function_call"], - [18, "drop"], - [19, "array_new"], - [ - 20, - "felt252_const<7733229381460288120802334208475838166080759535023995805565484692595>" - ], - [21, "store_temp"], - [22, "array_append"], - [23, "struct_construct"], - [24, "struct_construct>>"], - [ - 25, - "enum_init,)>, 1>" - ], - [26, "store_temp"], - [ - 27, - "store_temp,)>>" - ], - [28, "get_builtin_costs"], - [29, "store_temp"], - [30, "withdraw_gas_all"], - [31, "struct_construct"], - [32, "struct_construct"], - [33, "store_temp"], - [34, "function_call"], - [ - 35, - "enum_match>" - ], - [36, "drop>"], - [37, "snapshot_take>"], - [38, "drop>"], - [39, "struct_construct>"], - [40, "struct_construct>>"], - [ - 41, - "enum_init,)>, 0>" - ], - [42, "felt252_const<375233589013918064796019>"], - [43, "drop>"], - [ - 44, - "felt252_const<1979706721653833758925397712865600297316042839304765459608024204080243>" - ], - [45, "snapshot_take"], - [46, "drop"], - [47, "function_call"], - [48, "enum_match>"], - [49, "struct_deconstruct>"], - [50, "snapshot_take"], - [51, "store_temp>"], - [52, "function_call"], - [53, "array_snapshot_pop_front"], - [ - 54, - "enum_init>, 0>" - ], - [55, "store_temp>>"], - [ - 56, - "store_temp>>" - ], - [57, "jump"], - [58, "struct_construct"], - [ - 59, - "enum_init>, 1>" - ], - [ - 60, - "enum_match>>" - ], - [61, "unbox"], - [62, "rename"], - [63, "enum_init, 0>"], - [64, "store_temp>"], - [65, "enum_init, 1>"], - [66, "store_temp"], - [67, "struct_deconstruct"], - [68, "snapshot_take"], - [69, "store_temp"], - [ - 70, - "function_call" - ], - [71, "felt252_add"], - [72, "felt252_const<0>"], - [73, "felt252_const<1>"], - [ - 74, - "function_call" - ], - [ - 75, - "enum_match>" - ], - [ - 76, - "struct_deconstruct>" - ], - [77, "struct_construct>"], - [ - 78, - "enum_init, 0>" - ], - [ - 79, - "store_temp>" - ], - [ - 80, - "enum_init, 1>" - ], - [81, "drop"], - [82, "struct_construct>"], - [83, "enum_init, 0>"], - [84, "store_temp>"], - [85, "enum_init, 1>"], - [ - 86, - "storage_base_address_const<254972299075299712015478855430390632050936182311486400521237190787151437163>" - ], - [87, "storage_address_from_base"], - [88, "store_temp"], - [89, "storage_read_syscall"], - [ - 90, - "enum_init>, 0>" - ], - [ - 91, - "store_temp>>" - ], - [ - 92, - "enum_init>, 1>" - ], - [ - 93, - "rename>>" - ], - [ - 94, - "function_call::unwrap_syscall>" - ], - [95, "storage_write_syscall"], - [ - 96, - "enum_init>, 0>" - ], - [ - 97, - "store_temp>>" - ], - [ - 98, - "enum_init>, 1>" - ], - [ - 99, - "rename>>" - ], - [ - 100, - "function_call::unwrap_syscall>" - ], - [101, "enum_match>"], - [102, "struct_deconstruct>"], - [ - 103, - "struct_construct>" - ], - [ - 104, - "enum_init, 0>" - ], - [ - 105, - "store_temp>" - ], - [ - 106, - "enum_init, 1>" - ], - [ - 107, - "enum_match>>" - ], - [ - 108, - "enum_match>>" - ], - [109, "struct_construct>"], - [110, "enum_init, 0>"], - [111, "store_temp>"], - [112, "enum_init, 1>"] - ], - "user_func_names": [ - [0, "Counter0::Counter0::__external::increase_balance_0"], - [1, "Counter0::Counter0::__external::get_balance_0"], - [2, "core::Felt252Serde::deserialize"], - [3, "core::starknet::use_system_implicit"], - [4, "Counter0::Counter0::increase_balance_0"], - [5, "Counter0::Counter0::get_balance_0"], - [6, "core::Felt252Serde::serialize"], - [7, "Counter0::Counter0::balance_0::InternalContractStateImpl::read"], - [8, "Counter0::Counter0::balance_0::InternalContractStateImpl::write"], - [ - 9, - "core::starknet::SyscallResultTraitImpl::::unwrap_syscall" - ], - [10, "core::starknet::SyscallResultTraitImpl::<()>::unwrap_syscall"] - ] - }, - "contract_class_version": "0.1.0", - "entry_points_by_type": { - "EXTERNAL": [ - { - "selector": "0xb61015b8f0a9aa3e16e55c2d2094e84095c29c1376bd5a44680c1449e63575", - "function_idx": 0 - }, - { - "selector": "0x113e3540ab23de9f67c67a9c0ee7796d0ebb8afafdba2af272927e34f1713e2", - "function_idx": 1 - } - ], - "L1_HANDLER": [], - "CONSTRUCTOR": [] - }, - "abi": [ - { - "type": "function", - "name": "increase_balance_0", - "inputs": [{ "name": "amount", "type": "core::felt252" }], - "outputs": [], - "state_mutability": "external" - }, - { - "type": "function", - "name": "get_balance_0", - "inputs": [], - "outputs": [{ "type": "core::felt252" }], - "state_mutability": "view" - }, - { - "type": "event", - "name": "Counter0::Counter0::Event", - "kind": "enum", - "variants": [] - } - ] -} diff --git a/starknet-rpc-test/contracts/Counter1/Counter1.cairo b/starknet-rpc-test/contracts/Counter1/Counter1.cairo deleted file mode 100644 index 0d756d4165..0000000000 --- a/starknet-rpc-test/contracts/Counter1/Counter1.cairo +++ /dev/null @@ -1,19 +0,0 @@ -#[starknet::contract] -mod Counter1 { - #[storage] - struct Storage { - balance_1: felt252, - } - - // Increases the balance_1 by the given amount. - #[external(v0)] - fn increase_balance_1(ref self: ContractState, amount: felt252) { - self.balance_1.write(self.balance_1.read() + amount + 1 + 1); - } - - // Returns the current balance_1. - #[external(v0)] - fn get_balance_1(self: @ContractState) -> felt252 { - self.balance_1.read() - } -} diff --git a/starknet-rpc-test/contracts/Counter1/Counter1.casm.json b/starknet-rpc-test/contracts/Counter1/Counter1.casm.json deleted file mode 100644 index 9779276ecb..0000000000 --- a/starknet-rpc-test/contracts/Counter1/Counter1.casm.json +++ /dev/null @@ -1,579 +0,0 @@ -{ - "prime": "0x800000000000011000000000000000000000000000000000000000000000001", - "compiler_version": "2.1.0", - "bytecode": [ - "0xa0680017fff8000", - "0x7", - "0x482680017ffa8000", - "0xffffffffffffffffffffffffffffa920", - "0x400280007ff97fff", - "0x10780017fff7fff", - "0x6e", - "0x4825800180007ffa", - "0x56e0", - "0x400280007ff97fff", - "0x480a7ffc7fff8000", - "0x480a7ffd7fff8000", - "0x1104800180018000", - "0xe8", - "0x482680017ff98000", - "0x1", - "0x20680017fff7ffd", - "0x55", - "0x48307ffb80007ffc", - "0x4824800180007fff", - "0x0", - "0x20680017fff7fff", - "0x4", - "0x10780017fff7fff", - "0x13", - "0x480a7ffb7fff8000", - "0x1104800180018000", - "0xfe", - "0x40780017fff7fff", - "0x1", - "0x480680017fff8000", - "0x496e70757420746f6f206c6f6e6720666f7220617267756d656e7473", - "0x400080007ffe7fff", - "0x48127ff77fff8000", - "0x48127fe67fff8000", - "0x48127ffb7fff8000", - "0x480680017fff8000", - "0x1", - "0x48127ffa7fff8000", - "0x482480017ff98000", - "0x1", - "0x208b7fff7fff7ffe", - "0x1104800180018000", - "0x1b4", - "0x482480017fff8000", - "0x1b3", - "0x480080007fff8000", - "0xa0680017fff8000", - "0x9", - "0x4824800180007fe8", - "0x0", - "0x482480017fff8000", - "0x100000000000000000000000000000000", - "0x400080007ff67fff", - "0x10780017fff7fff", - "0x20", - "0x4824800180007fe8", - "0x0", - "0x400080007ff77fff", - "0x48127fff7fff8000", - "0x480a7ffb7fff8000", - "0x48127ff47fff8000", - "0x1104800180018000", - "0xdc", - "0x482480017fbc8000", - "0x1", - "0x20680017fff7ffc", - "0xc", - "0x40780017fff7fff", - "0x1", - "0x48127ffe7fff8000", - "0x48127ff87fff8000", - "0x48127ff87fff8000", - "0x480680017fff8000", - "0x0", - "0x48127ffb7fff8000", - "0x48127ffa7fff8000", - "0x208b7fff7fff7ffe", - "0x48127fff7fff8000", - "0x48127ff97fff8000", - "0x48127ff97fff8000", - "0x480680017fff8000", - "0x1", - "0x48127ff97fff8000", - "0x48127ff97fff8000", - "0x208b7fff7fff7ffe", - "0x40780017fff7fff", - "0x1", - "0x480680017fff8000", - "0x4f7574206f6620676173", - "0x400080007ffe7fff", - "0x482480017ff48000", - "0x1", - "0x48127fe37fff8000", - "0x480a7ffb7fff8000", - "0x480680017fff8000", - "0x1", - "0x48127ffa7fff8000", - "0x482480017ff98000", - "0x1", - "0x208b7fff7fff7ffe", - "0x40780017fff7fff", - "0x1", - "0x480680017fff8000", - "0x496e70757420746f6f2073686f727420666f7220617267756d656e7473", - "0x400080007ffe7fff", - "0x48127ffd7fff8000", - "0x48127fec7fff8000", - "0x480a7ffb7fff8000", - "0x480680017fff8000", - "0x1", - "0x48127ffa7fff8000", - "0x482480017ff98000", - "0x1", - "0x208b7fff7fff7ffe", - "0x40780017fff7fff", - "0x1", - "0x480680017fff8000", - "0x4f7574206f6620676173", - "0x400080007ffe7fff", - "0x482680017ff98000", - "0x1", - "0x480a7ffa7fff8000", - "0x480a7ffb7fff8000", - "0x480680017fff8000", - "0x1", - "0x48127ffa7fff8000", - "0x482480017ff98000", - "0x1", - "0x208b7fff7fff7ffe", - "0xa0680017fff8000", - "0x7", - "0x482680017ffa8000", - "0xffffffffffffffffffffffffffffe2f0", - "0x400280007ff97fff", - "0x10780017fff7fff", - "0x5e", - "0x4825800180007ffa", - "0x1d10", - "0x400280007ff97fff", - "0x48297ffc80007ffd", - "0x482680017ff98000", - "0x1", - "0x4824800180007ffe", - "0x0", - "0x20680017fff7fff", - "0x4", - "0x10780017fff7fff", - "0x13", - "0x480a7ffb7fff8000", - "0x1104800180018000", - "0x82", - "0x40780017fff7fff", - "0x1", - "0x480680017fff8000", - "0x496e70757420746f6f206c6f6e6720666f7220617267756d656e7473", - "0x400080007ffe7fff", - "0x48127ff87fff8000", - "0x48127ff57fff8000", - "0x48127ffb7fff8000", - "0x480680017fff8000", - "0x1", - "0x48127ffa7fff8000", - "0x482480017ff98000", - "0x1", - "0x208b7fff7fff7ffe", - "0x1104800180018000", - "0x138", - "0x482480017fff8000", - "0x137", - "0x480080007fff8000", - "0xa0680017fff8000", - "0x9", - "0x4824800180007ff7", - "0x0", - "0x482480017fff8000", - "0x100000000000000000000000000000000", - "0x400080007ff77fff", - "0x10780017fff7fff", - "0x24", - "0x4824800180007ff7", - "0x0", - "0x400080007ff87fff", - "0x48127fff7fff8000", - "0x480a7ffb7fff8000", - "0x1104800180018000", - "0x8b", - "0x482480017fd88000", - "0x1", - "0x20680017fff7ffc", - "0x11", - "0x40780017fff7fff", - "0x1", - "0x48127ffd7fff8000", - "0x48127ffe7fff8000", - "0x48127ffd7fff8000", - "0x1104800180018000", - "0x95", - "0x48127ff77fff8000", - "0x48127ff17fff8000", - "0x48127ff17fff8000", - "0x480680017fff8000", - "0x0", - "0x48127ffa7fff8000", - "0x48127ffa7fff8000", - "0x208b7fff7fff7ffe", - "0x48127fff7fff8000", - "0x48127ff97fff8000", - "0x48127ff97fff8000", - "0x480680017fff8000", - "0x1", - "0x48127ff97fff8000", - "0x48127ff97fff8000", - "0x208b7fff7fff7ffe", - "0x40780017fff7fff", - "0x1", - "0x480680017fff8000", - "0x4f7574206f6620676173", - "0x400080007ffe7fff", - "0x482480017ff58000", - "0x1", - "0x48127ff27fff8000", - "0x480a7ffb7fff8000", - "0x480680017fff8000", - "0x1", - "0x48127ffa7fff8000", - "0x482480017ff98000", - "0x1", - "0x208b7fff7fff7ffe", - "0x40780017fff7fff", - "0x1", - "0x480680017fff8000", - "0x4f7574206f6620676173", - "0x400080007ffe7fff", - "0x482680017ff98000", - "0x1", - "0x480a7ffa7fff8000", - "0x480a7ffb7fff8000", - "0x480680017fff8000", - "0x1", - "0x48127ffa7fff8000", - "0x482480017ff98000", - "0x1", - "0x208b7fff7fff7ffe", - "0x48297ffc80007ffd", - "0x20680017fff7fff", - "0x4", - "0x10780017fff7fff", - "0xa", - "0x482680017ffc8000", - "0x1", - "0x480a7ffd7fff8000", - "0x480680017fff8000", - "0x0", - "0x480a7ffc7fff8000", - "0x10780017fff7fff", - "0x8", - "0x480a7ffc7fff8000", - "0x480a7ffd7fff8000", - "0x480680017fff8000", - "0x1", - "0x480680017fff8000", - "0x0", - "0x48127ffc7fff8000", - "0x48127ffc7fff8000", - "0x20680017fff7ffc", - "0x8", - "0x48127ffe7fff8000", - "0x48127ffe7fff8000", - "0x480680017fff8000", - "0x0", - "0x480080007ffa8000", - "0x208b7fff7fff7ffe", - "0x48127ffe7fff8000", - "0x48127ffe7fff8000", - "0x480680017fff8000", - "0x1", - "0x480680017fff8000", - "0x0", - "0x208b7fff7fff7ffe", - "0x480a7ffd7fff8000", - "0x208b7fff7fff7ffe", - "0x480a7ffb7fff8000", - "0x480a7ffc7fff8000", - "0x1104800180018000", - "0x42", - "0x20680017fff7ffd", - "0x1d", - "0x48287ffd7fff8000", - "0x482480017fff8000", - "0x1", - "0x48127ff97fff8000", - "0x48127ff97fff8000", - "0x482480017ffd8000", - "0x1", - "0x1104800180018000", - "0x68", - "0x20680017fff7ffd", - "0xb", - "0x48127ffb7fff8000", - "0x48127ffb7fff8000", - "0x480680017fff8000", - "0x0", - "0x480680017fff8000", - "0x0", - "0x480680017fff8000", - "0x0", - "0x208b7fff7fff7ffe", - "0x48127ffb7fff8000", - "0x48127ffb7fff8000", - "0x480680017fff8000", - "0x1", - "0x48127ffb7fff8000", - "0x48127ffb7fff8000", - "0x208b7fff7fff7ffe", - "0x40780017fff7fff", - "0x1a", - "0x48127fe17fff8000", - "0x48127fe17fff8000", - "0x480680017fff8000", - "0x1", - "0x48127fe17fff8000", - "0x48127fe17fff8000", - "0x208b7fff7fff7ffe", - "0x480a7ffc7fff8000", - "0x480a7ffd7fff8000", - "0x1104800180018000", - "0x18", - "0x20680017fff7ffd", - "0xa", - "0x48127ffb7fff8000", - "0x48127ffb7fff8000", - "0x480680017fff8000", - "0x0", - "0x480680017fff8000", - "0x0", - "0x48127ffb7fff8000", - "0x208b7fff7fff7ffe", - "0x48127ffb7fff8000", - "0x48127ffb7fff8000", - "0x480680017fff8000", - "0x1", - "0x48127ffb7fff8000", - "0x48127ffb7fff8000", - "0x208b7fff7fff7ffe", - "0x400380007ffd7ffb", - "0x480a7ffc7fff8000", - "0x482680017ffd8000", - "0x1", - "0x208b7fff7fff7ffe", - "0x480680017fff8000", - "0x0", - "0x480680017fff8000", - "0x27d877ff18f2ff9ed25ad76706d4f9d684e1bc6bae661861ea8b5c8baaa1ec0", - "0x480680017fff8000", - "0x53746f7261676552656164", - "0x400280007ffd7fff", - "0x400380017ffd7ffc", - "0x400280027ffd7ffd", - "0x400280037ffd7ffe", - "0x480280057ffd8000", - "0x20680017fff7fff", - "0xc", - "0x480280047ffd8000", - "0x482680017ffd8000", - "0x7", - "0x480680017fff8000", - "0x0", - "0x480680017fff8000", - "0x0", - "0x480280067ffd8000", - "0x10780017fff7fff", - "0x9", - "0x480280047ffd8000", - "0x482680017ffd8000", - "0x8", - "0x480680017fff8000", - "0x1", - "0x480280067ffd8000", - "0x480280077ffd8000", - "0x1104800180018000", - "0x47", - "0x20680017fff7ffd", - "0xa", - "0x48127ff67fff8000", - "0x48127ff67fff8000", - "0x480680017fff8000", - "0x0", - "0x480680017fff8000", - "0x0", - "0x48127ffb7fff8000", - "0x208b7fff7fff7ffe", - "0x48127ff67fff8000", - "0x48127ff67fff8000", - "0x480680017fff8000", - "0x1", - "0x48127ffb7fff8000", - "0x48127ffb7fff8000", - "0x208b7fff7fff7ffe", - "0x480680017fff8000", - "0x0", - "0x480680017fff8000", - "0x27d877ff18f2ff9ed25ad76706d4f9d684e1bc6bae661861ea8b5c8baaa1ec0", - "0x480680017fff8000", - "0x53746f726167655772697465", - "0x400280007ffc7fff", - "0x400380017ffc7ffb", - "0x400280027ffc7ffd", - "0x400280037ffc7ffe", - "0x400380047ffc7ffd", - "0x480280067ffc8000", - "0x20680017fff7fff", - "0xd", - "0x480280057ffc8000", - "0x482680017ffc8000", - "0x7", - "0x480680017fff8000", - "0x0", - "0x480680017fff8000", - "0x0", - "0x480680017fff8000", - "0x0", - "0x10780017fff7fff", - "0x9", - "0x480280057ffc8000", - "0x482680017ffc8000", - "0x9", - "0x480680017fff8000", - "0x1", - "0x480280077ffc8000", - "0x480280087ffc8000", - "0x1104800180018000", - "0x21", - "0x20680017fff7ffd", - "0xb", - "0x48127ff67fff8000", - "0x48127ff67fff8000", - "0x480680017fff8000", - "0x0", - "0x480680017fff8000", - "0x0", - "0x480680017fff8000", - "0x0", - "0x208b7fff7fff7ffe", - "0x48127ff67fff8000", - "0x48127ff67fff8000", - "0x480680017fff8000", - "0x1", - "0x48127ffb7fff8000", - "0x48127ffb7fff8000", - "0x208b7fff7fff7ffe", - "0x20780017fff7ffb", - "0x8", - "0x480680017fff8000", - "0x0", - "0x480680017fff8000", - "0x0", - "0x480a7ffd7fff8000", - "0x208b7fff7fff7ffe", - "0x480680017fff8000", - "0x1", - "0x480a7ffc7fff8000", - "0x480a7ffd7fff8000", - "0x208b7fff7fff7ffe", - "0x20780017fff7ffb", - "0x9", - "0x480680017fff8000", - "0x0", - "0x480680017fff8000", - "0x0", - "0x480680017fff8000", - "0x0", - "0x208b7fff7fff7ffe", - "0x480680017fff8000", - "0x1", - "0x480a7ffc7fff8000", - "0x480a7ffd7fff8000", - "0x208b7fff7fff7ffe" - ], - "hints": [ - [ - 0, - [ - { - "TestLessThanOrEqual": { - "lhs": { "Immediate": "0x56e0" }, - "rhs": { "Deref": { "register": "FP", "offset": -6 } }, - "dst": { "register": "AP", "offset": 0 } - } - } - ] - ], - [28, [{ "AllocSegment": { "dst": { "register": "AP", "offset": 0 } } }]], - [ - 47, - [ - { - "TestLessThanOrEqual": { - "lhs": { "Immediate": "0x0" }, - "rhs": { "Deref": { "register": "AP", "offset": -23 } }, - "dst": { "register": "AP", "offset": 0 } - } - } - ] - ], - [68, [{ "AllocSegment": { "dst": { "register": "AP", "offset": 0 } } }]], - [86, [{ "AllocSegment": { "dst": { "register": "AP", "offset": 0 } } }]], - [101, [{ "AllocSegment": { "dst": { "register": "AP", "offset": 0 } } }]], - [115, [{ "AllocSegment": { "dst": { "register": "AP", "offset": 0 } } }]], - [ - 130, - [ - { - "TestLessThanOrEqual": { - "lhs": { "Immediate": "0x1d10" }, - "rhs": { "Deref": { "register": "FP", "offset": -6 } }, - "dst": { "register": "AP", "offset": 0 } - } - } - ] - ], - [152, [{ "AllocSegment": { "dst": { "register": "AP", "offset": 0 } } }]], - [ - 171, - [ - { - "TestLessThanOrEqual": { - "lhs": { "Immediate": "0x0" }, - "rhs": { "Deref": { "register": "AP", "offset": -8 } }, - "dst": { "register": "AP", "offset": 0 } - } - } - ] - ], - [191, [{ "AllocSegment": { "dst": { "register": "AP", "offset": 0 } } }]], - [214, [{ "AllocSegment": { "dst": { "register": "AP", "offset": 0 } } }]], - [229, [{ "AllocSegment": { "dst": { "register": "AP", "offset": 0 } } }]], - [ - 360, - [ - { - "SystemCall": { - "system": { "Deref": { "register": "FP", "offset": -3 } } - } - } - ] - ], - [ - 410, - [ - { - "SystemCall": { - "system": { "Deref": { "register": "FP", "offset": -4 } } - } - } - ] - ] - ], - "entry_points_by_type": { - "EXTERNAL": [ - { - "selector": "0x10b66bc7b40e8a760ea83aa5565a123b11b072c59341409cd87912ef31bb924", - "offset": 130, - "builtins": ["range_check"] - }, - { - "selector": "0x3ee6ae9fd7cdd42b3704e72c065a40336068c2aaa8eae0946457182b543962e", - "offset": 0, - "builtins": ["range_check"] - } - ], - "L1_HANDLER": [], - "CONSTRUCTOR": [] - } -} diff --git a/starknet-rpc-test/contracts/Counter1/Counter1.sierra.json b/starknet-rpc-test/contracts/Counter1/Counter1.sierra.json deleted file mode 100644 index 348af14a84..0000000000 --- a/starknet-rpc-test/contracts/Counter1/Counter1.sierra.json +++ /dev/null @@ -1,660 +0,0 @@ -{ - "sierra_program": [ - "0x1", - "0x3", - "0x0", - "0x2", - "0x1", - "0x0", - "0xca", - "0x36", - "0x1f", - "0x52616e6765436865636b", - "0x0", - "0x4761734275696c74696e", - "0x66656c74323532", - "0x4172726179", - "0x1", - "0x2", - "0x536e617073686f74", - "0x3", - "0x537472756374", - "0x1baeba72e79e9db2587cf44fedb2f3700b2075a5e8e39a562584862c4b71f62", - "0x4", - "0x2ee1e2b1b89f8c495f200e4956278a4d47395fe262f27b52e5865c9524c08c3", - "0x456e756d", - "0x11c6d8087e00642489f92d2821ad6ebd6532ad1a3b6d12833da6d6810391511", - "0x6", - "0x753332", - "0x53797374656d", - "0x16a4c8d7c05909052238a862d8cc3e7975bf05a07b3a69c6b28951083a6d672", - "0xa", - "0x5", - "0x9931c641b913035ae674b400b61a51476d506bbe8bba2ff8a6272790aba9e6", - "0xc", - "0xb", - "0x4275696c74696e436f737473", - "0x16f85ae9467bd936afe01ccb07331475e4725265d7c11d5091e60a1c885c11e", - "0x3503d263af90d8c512a88ff14ec50aae3411c579608f3465874743c7620cd6", - "0xf", - "0x10", - "0x2f0cb34fa5cad702cdcbdd7c7bc96d0dd97edf763c461114d91a34181583db7", - "0x11", - "0x10203be321c62a7bd4c060d69539c1fbe065baa9e253c74d2cc48be163e259", - "0x13", - "0x426f78", - "0x29d7d57c04a880978e7b3689f6218e507f3be17588744b58dc17762447ad0e7", - "0x15", - "0x2e9b13c4214615a4a10337319a9cf00b1f3ae3d5a1f49a7ec885ff403c77390", - "0x17", - "0x53746f726167654261736541646472657373", - "0x53746f7261676541646472657373", - "0x90d0203c41ad646d024845257a6eceb2f8b59b29ce7420dd518053d2edeedc", - "0x101dc0399934cc08fa0d6f6f2daead4e4a38cabeea1c743e1fc28d2d6e58e99", - "0xcc5e86243f861d2d64b08c35db21013e773ac5cf10097946fe0011304886d5", - "0x1d", - "0x70", - "0x7265766f6b655f61705f747261636b696e67", - "0x77697468647261775f676173", - "0x6272616e63685f616c69676e", - "0x73746f72655f74656d70", - "0x66756e6374696f6e5f63616c6c", - "0x656e756d5f6d61746368", - "0x7", - "0x7374727563745f6465636f6e737472756374", - "0x61727261795f6c656e", - "0x736e617073686f745f74616b65", - "0x8", - "0x64726f70", - "0x7533325f636f6e7374", - "0x72656e616d65", - "0x7533325f6571", - "0x9", - "0x61727261795f6e6577", - "0x66656c743235325f636f6e7374", - "0x496e70757420746f6f206c6f6e6720666f7220617267756d656e7473", - "0x61727261795f617070656e64", - "0x7374727563745f636f6e737472756374", - "0x656e756d5f696e6974", - "0xd", - "0x6765745f6275696c74696e5f636f737473", - "0xe", - "0x77697468647261775f6761735f616c6c", - "0x12", - "0x4f7574206f6620676173", - "0x496e70757420746f6f2073686f727420666f7220617267756d656e7473", - "0x14", - "0x61727261795f736e617073686f745f706f705f66726f6e74", - "0x16", - "0x6a756d70", - "0x756e626f78", - "0x66656c743235325f616464", - "0x18", - "0x73746f726167655f626173655f616464726573735f636f6e7374", - "0x27d877ff18f2ff9ed25ad76706d4f9d684e1bc6bae661861ea8b5c8baaa1ec0", - "0x73746f726167655f616464726573735f66726f6d5f62617365", - "0x1a", - "0x73746f726167655f726561645f73797363616c6c", - "0x1b", - "0x73746f726167655f77726974655f73797363616c6c", - "0x1c", - "0x1e", - "0x19f", - "0xffffffffffffffff", - "0x63", - "0x54", - "0x24", - "0x19", - "0x20", - "0x21", - "0x22", - "0x23", - "0x25", - "0x46", - "0x26", - "0x27", - "0x28", - "0x29", - "0x2d", - "0x2e", - "0x2f", - "0x30", - "0x2a", - "0x2b", - "0x2c", - "0x31", - "0x3f", - "0x32", - "0x33", - "0x34", - "0x35", - "0x36", - "0x37", - "0x38", - "0x39", - "0x3a", - "0x3b", - "0x3c", - "0x3d", - "0x3e", - "0x40", - "0x41", - "0x42", - "0x43", - "0x44", - "0x45", - "0x47", - "0x48", - "0x49", - "0x4a", - "0x4b", - "0x4c", - "0x4d", - "0x4e", - "0x4f", - "0x50", - "0x51", - "0x52", - "0x53", - "0x55", - "0x56", - "0x57", - "0x58", - "0x59", - "0x5a", - "0x5b", - "0x5c", - "0x5d", - "0x5e", - "0x5f", - "0xc6", - "0x90", - "0xb9", - "0xb2", - "0xdb", - "0xe0", - "0xea", - "0x11c", - "0x116", - "0x132", - "0x14b", - "0x150", - "0x15b", - "0x170", - "0x60", - "0x175", - "0x61", - "0x62", - "0x64", - "0x180", - "0x65", - "0x66", - "0x67", - "0x68", - "0x69", - "0x6a", - "0x18d", - "0x6b", - "0x199", - "0x6c", - "0x6d", - "0x6e", - "0x6f", - "0x71", - "0xd4", - "0xf1", - "0xf5", - "0x124", - "0x138", - "0x13e", - "0x161", - "0x187", - "0x193", - "0xf85", - "0x7060f02090e0d02060a0c060b02070a090606080706060502040203020100", - "0x617061602090e15060d02070a090614060d02090a1302060a021202111006", - "0x70a18061f061e02090e10061d060d02090a1c061b02070a1a02060a021918", - "0x61c060d02090a100624062302090e07060622180621062002090e07060d02", - "0x70a090610062a02090e090607062902090e02280227180626062502090e10", - "0x206063107090632150606310230022f022e2d18062c062b02090e10060d02", - "0x606313806063b0207063a3806063938060637070606361506063534060633", - "0x70606314007063f0706063e10060639090906323d06063107060639023c38", - "0x6063102454406063106060631060744060743180606421406064207060641", - "0x90606371f060639480606330c0906321d0606311d0606421c060642024746", - "0x374a07063f150606394907063f020744060743170606421506064209060639", - "0x100906320906063107060637210606354b060633150906321d0606391d0606", - "0x3306074d06074310060642024e4d0606310c06063102074d0607430706064c", - "0x10060631060734060743340606310207340607430706063b0706064f4d0606", - "0x3551060633380906320607063f0250340906321c0606311c0606371d060635", - "0x210606421c060639060748060743480606310207480607431f060642260606", - "0x6074302565506063102545307065206074b0607434b06063102074b060743", - "0x63102075906074302583d0906325706063b06075706074357060631020757", - "0x60743260606422c0606355a060633140906325906063b0607590607435906", - "0x2075a0607432c060642590606335706063306075106074351060631020751", - "0x3410075d150c075c070602070602025c060202025b06075a0607435a060631", - "0xc065c060c0615023d38075c0614060c0214065c0609060902025c06020702", - "0x5c064406380244065c0638063402025c0602070217065e18065c073d061002", - "0x5c061f063d021f065c06021802025c061c0614021d1c075c0646063d024606", - "0x64b06440224065c06210617024b065c061d061702025c0648061402214807", - "0x607061d02025c0618061c02025c06020702025f025c07244b0746024b065c", - "0x5c06024b0260065c06022102025c0626064802264d075c0651061f0251065c", - "0x575907510259065c0602260257065c065560074d0255065c06550624025506", - "0x61d0261065c061506550200065c060c0615025a065c062c0660022c065c06", - "0x65c06025902025c06020702636261000c0663065c065a06570262065c064d", - "0x2025c0602070268670766655f075c0764150c095a0264065c0664062c0264", - "0x26c065c0607061d026b065c06650655026a065c066906610269065c060200", - "0x6150271706f095c066e6d6c6b0c63026e065c06180624026d065c066a0662", - "0x2102025c0672065f02025c0602070274067372065c07710664025f065c065f", - "0x690278065c0677066802025c06760667027776075c067506650275065c0602", - "0x27c065c066f0655027b065c065f0615027a065c0679066a0279065c067806", - "0x74066002025c060207027e7d7c7b0c067e065c067a0657027d065c0670061d", - "0x6570281065c0670061d0273065c066f06550280065c065f0615027f065c06", - "0x83065c06022102025c0618061c02025c06020702828173800c0682065c067f", - "0x86065c0602260285065c068483074d0284065c068406240284065c06026f02", - "0x5c066806550288065c066706150287065c066606600266065c068586075102", - "0x2025c060207028b8a89880c068b065c06870657028a065c0607061d028906", - "0x8d0624028d065c060271028c065c06022102025c0638067002025c06170648", - "0x600290065c068e8f0751028f065c060226028e065c068d8c074d028d065c06", - "0x25e065c0607061d0293065c061506550292065c060c06150291065c069006", - "0x5c06022102025c0609067002025c06020702945e93920c0694065c06910657", - "0x5c0602260297065c069695074d0296065c069606240296065c06026f029506", - "0x340655029b065c06100615029a065c069906600299065c0697980751029806", - "0x5c060202029e9d9c9b0c069e065c069a0657029d065c0607061d029c065c06", - "0x380238065c0609063402025c060207023410079f150c075c07060207060202", - "0x3d0217065c06021802025c06140614021814075c063d063d023d065c063806", - "0x21d065c06460617021c065c0618061702025c06440614024644075c061706", - "0x25c0602070202a0025c071d1c0746020c065c060c0615021c065c061c0644", - "0x4b065c06022102025c0648064802481f075c0621061f0221065c0607061d02", - "0x26065c060226024d065c06244b074d0224065c062406240224065c06024b02", - "0x5c061506550255065c060c06150260065c065106600251065c064d26075102", - "0x2025c060207022c5957550c062c065c066006570259065c061f061d025706", - "0x702636207a16100075c075a150c095a025a065c065a062c025a065c060259", - "0x66c026765075c065f066b025f065c066406610264065c06020002025c0602", - "0x96d0271065c066706620270065c0607061d026f065c0661065502025c0665", - "0x207026c06a26b065c076a066e0200065c06000615026a6968095c0671706f", - "0x72061c027472075c066d0674026e065c060221026d065c066b067202025c06", - "0x48027675075c06787707760278065c066e06750277065c0674062402025c06", - "0x69027b065c067a066802025c06790667027a79075c0675066502025c067606", - "0x27f065c06680655027e065c06000615027d065c067c066a027c065c067b06", - "0x6c066002025c0602070273807f7e0c0673065c067d06570280065c0669061d", - "0x6570284065c0669061d0283065c066806550282065c060006150281065c06", - "0x66065c06026f0286065c06022102025c06020702858483820c0685065c0681", - "0x5c06878807510288065c0602260287065c066686074d0266065c0666062402", - "0x607061d028c065c06630655028b065c06620615028a065c06890660028906", - "0x2025c0609067002025c060207028e8d8c8b0c068e065c068a0657028d065c", - "0x291065c06908f074d0290065c069006240290065c06026f028f065c060221", - "0x94065c06100615025e065c069306600293065c06919207510292065c060226", - "0x2979695940c0697065c065e06570296065c0607061d0295065c0634065502", - "0x5c0609067802025c060207020c06a30907075c070606770206065c06020634", - "0x2025c0602070202a406027b0234065c0615067a0210065c06070679021506", - "0x234065c063d067a0210065c060c0679023d065c0638067d0238065c06027c", - "0x5c060207021706a518065c0734067e0214065c061406090214065c06100668", - "0x5c06140609021c065c064606730246065c064406800244065c0618067f0202", - "0x6027c02025c0617064802025c060207021f1d07061f065c061c0681021d06", - "0x244b070624065c06210681024b065c061406090221065c064806820248065c", - "0x70684020907070609065c060606830207065c0602061d0206065c06027c02", - "0x860218065c0606061d0214065c06020655021015075c060c0685020c065c06", - "0x7024606a644065c073d066e023d3834095c0617181409660217065c061006", - "0x624021f065c060288021d065c06091c0787021c065c0644067202025c0602", - "0x870248065c064806240221065c0602880248065c061f1d0787021d065c061d", - "0x55065c061506860260065c0638061d0251065c06340655024b065c06214807", - "0x6a759065c0726068a02264d24095c06575560510c890257065c064b062402", - "0x61065c065a066102025c0600064802005a075c0659068b02025c060207022c", - "0x65c062406550264065c0663068d0263065c066261078c0262065c06027c02", - "0x68f02025c0602070267655f090667065c0664068e0265065c064d061d025f", - "0x9066f065c0668068e026a065c064d061d0269065c062406550268065c062c", - "0x70065c0646068f02025c0609061c02025c0615069002025c060207026f6a69", - "0x84026c6b7109066c065c0670068e026b065c0638061d0271065c0634065502", - "0x23d065c060906860238065c0606061d0234065c060206550209065c060706", - "0x67202025c060207021806a814065c0710066e0210150c095c063d38340966", - "0x1d021c065c060c06550246065c064406920244065c061706910217065c0614", - "0x5c0618065e02025c060207021f1d1c09061f065c06460693021d065c061506", - "0x244b21090624065c06480693024b065c0615061d0221065c060c0655024806", - "0x65c06090675020c065c06027c0209065c060706074d0207065c0602068002", - "0x906950209065c06029402025c06070690021015070610065c060c06830215", - "0x20c97020c065c060c06960215065c061506440215065c060218020c065c06", - "0x6550217065c0638069802025c0602070218143d09a9383410095c070c1506", - "0x602070202aa06027b021c065c061706990246065c0634061d0244065c0610", - "0x61d06990246065c0614061d0244065c063d0655021d065c0618069a02025c", - "0x24b06ab21065c071f066e021f065c0648069c0248065c061c069b021c065c", - "0x550226065c064d0692024d065c062406910224065c0621067202025c060207", - "0x6020702556051090655065c062606930260065c0646061d0251065c064406", - "0x6570693022c065c0646061d0259065c064406550257065c064b065e02025c", - "0x10065c06029402025c0615069002150c075c06070685025a2c5909065a065c", - "0x34065c063406960238065c063806440238065c0602180234065c0610069502", - "0x46065c06027c02025c0602070244171809ac143d075c070934380602159d02", - "0x65c061c06ad021f065c0614061d021d065c063d0655021c065c0646069e02", - "0x1d021d065c061806550221065c064406af02025c0602070202ae06027b0248", - "0x24b065c0624065d0224065c064806b00248065c062106ad021f065c061706", - "0x5c06510c07b40251065c064d06b302025c060207022606b24d065c074b06b1", - "0x65506b60259065c061f061d0257065c061d06550255065c066006b5026006", - "0x55025a065c062606b702025c060c069002025c060207022c595709062c065c", - "0x206b802626100090662065c065a06b60261065c061f061d0200065c061d06", - "0x93020c065c060906920209065c0606069102025c060207020706b906065c07", - "0x34065c06071007510210065c06022602025c0602070215060615065c060c06", - "0x20706bb06065c070206ba023d06063d065c063806930238065c0634065e02", - "0x60615065c060c06be020c065c060906bd0209065c060606bc02025c060207", - "0x38065c063406bf0234065c06071007510210065c06022602025c0602070215", - "0x3d06020c0209070602443d06020c153d06020c183d06063d065c063806be02", - "0x9071d3d060cc202103d073d06c1023415071506c009070602443d06020c15", - "0x609c50602100907090707c40706024b3d06091d3d0609c309070602483d06", - "0x6c8024b065706c709070602513d0609071c3d060cc60706024b3d06091c3d", - "0xc9025a0659" - ], - "sierra_program_debug_info": { - "type_names": [ - [0, "RangeCheck"], - [1, "GasBuiltin"], - [2, "felt252"], - [3, "Array"], - [4, "Snapshot>"], - [5, "core::array::Span::"], - [6, "Unit"], - [7, "core::option::Option::"], - [8, "u32"], - [9, "System"], - [10, "core::panics::Panic"], - [11, "Tuple>"], - [12, "Tuple>"], - [ - 13, - "core::panics::PanicResult::<(core::array::Span::,)>" - ], - [14, "BuiltinCosts"], - [15, "Counter1::Counter1::balance_1::ContractState"], - [16, "Counter1::Counter1::ContractState"], - [17, "Tuple"], - [ - 18, - "core::panics::PanicResult::<(Counter1::Counter1::ContractState, ())>" - ], - [19, "Tuple"], - [20, "core::panics::PanicResult::<(core::felt252,)>"], - [21, "Box"], - [22, "core::option::Option::>"], - [23, "Tuple"], - [ - 24, - "core::panics::PanicResult::<(Counter1::Counter1::balance_1::ContractState, ())>" - ], - [25, "StorageBaseAddress"], - [26, "StorageAddress"], - [ - 27, - "core::result::Result::>" - ], - [28, "core::result::Result::<(), core::array::Array::>"], - [29, "Tuple"], - [30, "core::panics::PanicResult::<((),)>"] - ], - "libfunc_names": [ - [0, "revoke_ap_tracking"], - [1, "withdraw_gas"], - [2, "branch_align"], - [3, "store_temp>"], - [4, "function_call"], - [5, "store_temp"], - [6, "enum_match>"], - [7, "struct_deconstruct>"], - [8, "array_len"], - [9, "snapshot_take"], - [10, "drop"], - [11, "u32_const<0>"], - [12, "rename"], - [13, "store_temp"], - [14, "u32_eq"], - [15, "drop"], - [16, "store_temp"], - [17, "function_call"], - [18, "drop"], - [19, "array_new"], - [ - 20, - "felt252_const<7733229381460288120802334208475838166080759535023995805565484692595>" - ], - [21, "store_temp"], - [22, "array_append"], - [23, "struct_construct"], - [24, "struct_construct>>"], - [ - 25, - "enum_init,)>, 1>" - ], - [26, "store_temp"], - [ - 27, - "store_temp,)>>" - ], - [28, "get_builtin_costs"], - [29, "store_temp"], - [30, "withdraw_gas_all"], - [31, "struct_construct"], - [32, "struct_construct"], - [33, "store_temp"], - [34, "function_call"], - [ - 35, - "enum_match>" - ], - [36, "drop>"], - [37, "snapshot_take>"], - [38, "drop>"], - [39, "struct_construct>"], - [40, "struct_construct>>"], - [ - 41, - "enum_init,)>, 0>" - ], - [42, "felt252_const<375233589013918064796019>"], - [43, "drop>"], - [ - 44, - "felt252_const<1979706721653833758925397712865600297316042839304765459608024204080243>" - ], - [45, "snapshot_take"], - [46, "drop"], - [47, "function_call"], - [48, "enum_match>"], - [49, "struct_deconstruct>"], - [50, "snapshot_take"], - [51, "store_temp>"], - [52, "function_call"], - [53, "array_snapshot_pop_front"], - [ - 54, - "enum_init>, 0>" - ], - [55, "store_temp>>"], - [ - 56, - "store_temp>>" - ], - [57, "jump"], - [58, "struct_construct"], - [ - 59, - "enum_init>, 1>" - ], - [ - 60, - "enum_match>>" - ], - [61, "unbox"], - [62, "rename"], - [63, "enum_init, 0>"], - [64, "store_temp>"], - [65, "enum_init, 1>"], - [66, "store_temp"], - [67, "struct_deconstruct"], - [68, "snapshot_take"], - [69, "store_temp"], - [ - 70, - "function_call" - ], - [71, "felt252_add"], - [72, "felt252_const<1>"], - [ - 73, - "function_call" - ], - [ - 74, - "enum_match>" - ], - [ - 75, - "struct_deconstruct>" - ], - [76, "struct_construct>"], - [ - 77, - "enum_init, 0>" - ], - [ - 78, - "store_temp>" - ], - [ - 79, - "enum_init, 1>" - ], - [80, "drop"], - [81, "struct_construct>"], - [82, "enum_init, 0>"], - [83, "store_temp>"], - [84, "enum_init, 1>"], - [ - 85, - "storage_base_address_const<1126416765373040447134877403742562949829456288349438530158544342912871308992>" - ], - [86, "storage_address_from_base"], - [87, "store_temp"], - [88, "storage_read_syscall"], - [ - 89, - "enum_init>, 0>" - ], - [ - 90, - "store_temp>>" - ], - [ - 91, - "enum_init>, 1>" - ], - [ - 92, - "rename>>" - ], - [ - 93, - "function_call::unwrap_syscall>" - ], - [94, "storage_write_syscall"], - [ - 95, - "enum_init>, 0>" - ], - [ - 96, - "store_temp>>" - ], - [ - 97, - "enum_init>, 1>" - ], - [ - 98, - "rename>>" - ], - [ - 99, - "function_call::unwrap_syscall>" - ], - [100, "enum_match>"], - [101, "struct_deconstruct>"], - [ - 102, - "struct_construct>" - ], - [ - 103, - "enum_init, 0>" - ], - [ - 104, - "store_temp>" - ], - [ - 105, - "enum_init, 1>" - ], - [ - 106, - "enum_match>>" - ], - [ - 107, - "enum_match>>" - ], - [108, "struct_construct>"], - [109, "enum_init, 0>"], - [110, "store_temp>"], - [111, "enum_init, 1>"] - ], - "user_func_names": [ - [0, "Counter1::Counter1::__external::increase_balance_1"], - [1, "Counter1::Counter1::__external::get_balance_1"], - [2, "core::Felt252Serde::deserialize"], - [3, "core::starknet::use_system_implicit"], - [4, "Counter1::Counter1::increase_balance_1"], - [5, "Counter1::Counter1::get_balance_1"], - [6, "core::Felt252Serde::serialize"], - [7, "Counter1::Counter1::balance_1::InternalContractStateImpl::read"], - [8, "Counter1::Counter1::balance_1::InternalContractStateImpl::write"], - [ - 9, - "core::starknet::SyscallResultTraitImpl::::unwrap_syscall" - ], - [10, "core::starknet::SyscallResultTraitImpl::<()>::unwrap_syscall"] - ] - }, - "contract_class_version": "0.1.0", - "entry_points_by_type": { - "EXTERNAL": [ - { - "selector": "0x10b66bc7b40e8a760ea83aa5565a123b11b072c59341409cd87912ef31bb924", - "function_idx": 1 - }, - { - "selector": "0x3ee6ae9fd7cdd42b3704e72c065a40336068c2aaa8eae0946457182b543962e", - "function_idx": 0 - } - ], - "L1_HANDLER": [], - "CONSTRUCTOR": [] - }, - "abi": [ - { - "type": "function", - "name": "increase_balance_1", - "inputs": [{ "name": "amount", "type": "core::felt252" }], - "outputs": [], - "state_mutability": "external" - }, - { - "type": "function", - "name": "get_balance_1", - "inputs": [], - "outputs": [{ "type": "core::felt252" }], - "state_mutability": "view" - }, - { - "type": "event", - "name": "Counter1::Counter1::Event", - "kind": "enum", - "variants": [] - } - ] -} diff --git a/starknet-rpc-test/contracts/Counter2/Counter2.cairo b/starknet-rpc-test/contracts/Counter2/Counter2.cairo deleted file mode 100644 index 3cfbfaab92..0000000000 --- a/starknet-rpc-test/contracts/Counter2/Counter2.cairo +++ /dev/null @@ -1,19 +0,0 @@ -#[starknet::contract] -mod Counter2 { - #[storage] - struct Storage { - balance_2: felt252, - } - - // Increases the balance_2 by the given amount. - #[external(v0)] - fn increase_balance_2(ref self: ContractState, amount: felt252) { - self.balance_2.write(self.balance_2.read() + amount + 2 + 1); - } - - // Returns the current balance_2. - #[external(v0)] - fn get_balance_2(self: @ContractState) -> felt252 { - self.balance_2.read() - } -} diff --git a/starknet-rpc-test/contracts/Counter2/Counter2.casm.json b/starknet-rpc-test/contracts/Counter2/Counter2.casm.json deleted file mode 100644 index d50f4d26c0..0000000000 --- a/starknet-rpc-test/contracts/Counter2/Counter2.casm.json +++ /dev/null @@ -1,579 +0,0 @@ -{ - "prime": "0x800000000000011000000000000000000000000000000000000000000000001", - "compiler_version": "2.1.0", - "bytecode": [ - "0xa0680017fff8000", - "0x7", - "0x482680017ffa8000", - "0xffffffffffffffffffffffffffffa920", - "0x400280007ff97fff", - "0x10780017fff7fff", - "0x6e", - "0x4825800180007ffa", - "0x56e0", - "0x400280007ff97fff", - "0x480a7ffc7fff8000", - "0x480a7ffd7fff8000", - "0x1104800180018000", - "0xe8", - "0x482680017ff98000", - "0x1", - "0x20680017fff7ffd", - "0x55", - "0x48307ffb80007ffc", - "0x4824800180007fff", - "0x0", - "0x20680017fff7fff", - "0x4", - "0x10780017fff7fff", - "0x13", - "0x480a7ffb7fff8000", - "0x1104800180018000", - "0xfe", - "0x40780017fff7fff", - "0x1", - "0x480680017fff8000", - "0x496e70757420746f6f206c6f6e6720666f7220617267756d656e7473", - "0x400080007ffe7fff", - "0x48127ff77fff8000", - "0x48127fe67fff8000", - "0x48127ffb7fff8000", - "0x480680017fff8000", - "0x1", - "0x48127ffa7fff8000", - "0x482480017ff98000", - "0x1", - "0x208b7fff7fff7ffe", - "0x1104800180018000", - "0x1b4", - "0x482480017fff8000", - "0x1b3", - "0x480080007fff8000", - "0xa0680017fff8000", - "0x9", - "0x4824800180007fe8", - "0x0", - "0x482480017fff8000", - "0x100000000000000000000000000000000", - "0x400080007ff67fff", - "0x10780017fff7fff", - "0x20", - "0x4824800180007fe8", - "0x0", - "0x400080007ff77fff", - "0x48127fff7fff8000", - "0x480a7ffb7fff8000", - "0x48127ff47fff8000", - "0x1104800180018000", - "0xdc", - "0x482480017fbc8000", - "0x1", - "0x20680017fff7ffc", - "0xc", - "0x40780017fff7fff", - "0x1", - "0x48127ffe7fff8000", - "0x48127ff87fff8000", - "0x48127ff87fff8000", - "0x480680017fff8000", - "0x0", - "0x48127ffb7fff8000", - "0x48127ffa7fff8000", - "0x208b7fff7fff7ffe", - "0x48127fff7fff8000", - "0x48127ff97fff8000", - "0x48127ff97fff8000", - "0x480680017fff8000", - "0x1", - "0x48127ff97fff8000", - "0x48127ff97fff8000", - "0x208b7fff7fff7ffe", - "0x40780017fff7fff", - "0x1", - "0x480680017fff8000", - "0x4f7574206f6620676173", - "0x400080007ffe7fff", - "0x482480017ff48000", - "0x1", - "0x48127fe37fff8000", - "0x480a7ffb7fff8000", - "0x480680017fff8000", - "0x1", - "0x48127ffa7fff8000", - "0x482480017ff98000", - "0x1", - "0x208b7fff7fff7ffe", - "0x40780017fff7fff", - "0x1", - "0x480680017fff8000", - "0x496e70757420746f6f2073686f727420666f7220617267756d656e7473", - "0x400080007ffe7fff", - "0x48127ffd7fff8000", - "0x48127fec7fff8000", - "0x480a7ffb7fff8000", - "0x480680017fff8000", - "0x1", - "0x48127ffa7fff8000", - "0x482480017ff98000", - "0x1", - "0x208b7fff7fff7ffe", - "0x40780017fff7fff", - "0x1", - "0x480680017fff8000", - "0x4f7574206f6620676173", - "0x400080007ffe7fff", - "0x482680017ff98000", - "0x1", - "0x480a7ffa7fff8000", - "0x480a7ffb7fff8000", - "0x480680017fff8000", - "0x1", - "0x48127ffa7fff8000", - "0x482480017ff98000", - "0x1", - "0x208b7fff7fff7ffe", - "0xa0680017fff8000", - "0x7", - "0x482680017ffa8000", - "0xffffffffffffffffffffffffffffe2f0", - "0x400280007ff97fff", - "0x10780017fff7fff", - "0x5e", - "0x4825800180007ffa", - "0x1d10", - "0x400280007ff97fff", - "0x48297ffc80007ffd", - "0x482680017ff98000", - "0x1", - "0x4824800180007ffe", - "0x0", - "0x20680017fff7fff", - "0x4", - "0x10780017fff7fff", - "0x13", - "0x480a7ffb7fff8000", - "0x1104800180018000", - "0x82", - "0x40780017fff7fff", - "0x1", - "0x480680017fff8000", - "0x496e70757420746f6f206c6f6e6720666f7220617267756d656e7473", - "0x400080007ffe7fff", - "0x48127ff87fff8000", - "0x48127ff57fff8000", - "0x48127ffb7fff8000", - "0x480680017fff8000", - "0x1", - "0x48127ffa7fff8000", - "0x482480017ff98000", - "0x1", - "0x208b7fff7fff7ffe", - "0x1104800180018000", - "0x138", - "0x482480017fff8000", - "0x137", - "0x480080007fff8000", - "0xa0680017fff8000", - "0x9", - "0x4824800180007ff7", - "0x0", - "0x482480017fff8000", - "0x100000000000000000000000000000000", - "0x400080007ff77fff", - "0x10780017fff7fff", - "0x24", - "0x4824800180007ff7", - "0x0", - "0x400080007ff87fff", - "0x48127fff7fff8000", - "0x480a7ffb7fff8000", - "0x1104800180018000", - "0x8b", - "0x482480017fd88000", - "0x1", - "0x20680017fff7ffc", - "0x11", - "0x40780017fff7fff", - "0x1", - "0x48127ffd7fff8000", - "0x48127ffe7fff8000", - "0x48127ffd7fff8000", - "0x1104800180018000", - "0x95", - "0x48127ff77fff8000", - "0x48127ff17fff8000", - "0x48127ff17fff8000", - "0x480680017fff8000", - "0x0", - "0x48127ffa7fff8000", - "0x48127ffa7fff8000", - "0x208b7fff7fff7ffe", - "0x48127fff7fff8000", - "0x48127ff97fff8000", - "0x48127ff97fff8000", - "0x480680017fff8000", - "0x1", - "0x48127ff97fff8000", - "0x48127ff97fff8000", - "0x208b7fff7fff7ffe", - "0x40780017fff7fff", - "0x1", - "0x480680017fff8000", - "0x4f7574206f6620676173", - "0x400080007ffe7fff", - "0x482480017ff58000", - "0x1", - "0x48127ff27fff8000", - "0x480a7ffb7fff8000", - "0x480680017fff8000", - "0x1", - "0x48127ffa7fff8000", - "0x482480017ff98000", - "0x1", - "0x208b7fff7fff7ffe", - "0x40780017fff7fff", - "0x1", - "0x480680017fff8000", - "0x4f7574206f6620676173", - "0x400080007ffe7fff", - "0x482680017ff98000", - "0x1", - "0x480a7ffa7fff8000", - "0x480a7ffb7fff8000", - "0x480680017fff8000", - "0x1", - "0x48127ffa7fff8000", - "0x482480017ff98000", - "0x1", - "0x208b7fff7fff7ffe", - "0x48297ffc80007ffd", - "0x20680017fff7fff", - "0x4", - "0x10780017fff7fff", - "0xa", - "0x482680017ffc8000", - "0x1", - "0x480a7ffd7fff8000", - "0x480680017fff8000", - "0x0", - "0x480a7ffc7fff8000", - "0x10780017fff7fff", - "0x8", - "0x480a7ffc7fff8000", - "0x480a7ffd7fff8000", - "0x480680017fff8000", - "0x1", - "0x480680017fff8000", - "0x0", - "0x48127ffc7fff8000", - "0x48127ffc7fff8000", - "0x20680017fff7ffc", - "0x8", - "0x48127ffe7fff8000", - "0x48127ffe7fff8000", - "0x480680017fff8000", - "0x0", - "0x480080007ffa8000", - "0x208b7fff7fff7ffe", - "0x48127ffe7fff8000", - "0x48127ffe7fff8000", - "0x480680017fff8000", - "0x1", - "0x480680017fff8000", - "0x0", - "0x208b7fff7fff7ffe", - "0x480a7ffd7fff8000", - "0x208b7fff7fff7ffe", - "0x480a7ffb7fff8000", - "0x480a7ffc7fff8000", - "0x1104800180018000", - "0x42", - "0x20680017fff7ffd", - "0x1d", - "0x48287ffd7fff8000", - "0x482480017fff8000", - "0x2", - "0x48127ff97fff8000", - "0x48127ff97fff8000", - "0x482480017ffd8000", - "0x1", - "0x1104800180018000", - "0x68", - "0x20680017fff7ffd", - "0xb", - "0x48127ffb7fff8000", - "0x48127ffb7fff8000", - "0x480680017fff8000", - "0x0", - "0x480680017fff8000", - "0x0", - "0x480680017fff8000", - "0x0", - "0x208b7fff7fff7ffe", - "0x48127ffb7fff8000", - "0x48127ffb7fff8000", - "0x480680017fff8000", - "0x1", - "0x48127ffb7fff8000", - "0x48127ffb7fff8000", - "0x208b7fff7fff7ffe", - "0x40780017fff7fff", - "0x1a", - "0x48127fe17fff8000", - "0x48127fe17fff8000", - "0x480680017fff8000", - "0x1", - "0x48127fe17fff8000", - "0x48127fe17fff8000", - "0x208b7fff7fff7ffe", - "0x480a7ffc7fff8000", - "0x480a7ffd7fff8000", - "0x1104800180018000", - "0x18", - "0x20680017fff7ffd", - "0xa", - "0x48127ffb7fff8000", - "0x48127ffb7fff8000", - "0x480680017fff8000", - "0x0", - "0x480680017fff8000", - "0x0", - "0x48127ffb7fff8000", - "0x208b7fff7fff7ffe", - "0x48127ffb7fff8000", - "0x48127ffb7fff8000", - "0x480680017fff8000", - "0x1", - "0x48127ffb7fff8000", - "0x48127ffb7fff8000", - "0x208b7fff7fff7ffe", - "0x400380007ffd7ffb", - "0x480a7ffc7fff8000", - "0x482680017ffd8000", - "0x1", - "0x208b7fff7fff7ffe", - "0x480680017fff8000", - "0x0", - "0x480680017fff8000", - "0x1f3694f95b7dfd5d7c412de0955718cd18eb234ad39c2e1aeb5d3d1f702b575", - "0x480680017fff8000", - "0x53746f7261676552656164", - "0x400280007ffd7fff", - "0x400380017ffd7ffc", - "0x400280027ffd7ffd", - "0x400280037ffd7ffe", - "0x480280057ffd8000", - "0x20680017fff7fff", - "0xc", - "0x480280047ffd8000", - "0x482680017ffd8000", - "0x7", - "0x480680017fff8000", - "0x0", - "0x480680017fff8000", - "0x0", - "0x480280067ffd8000", - "0x10780017fff7fff", - "0x9", - "0x480280047ffd8000", - "0x482680017ffd8000", - "0x8", - "0x480680017fff8000", - "0x1", - "0x480280067ffd8000", - "0x480280077ffd8000", - "0x1104800180018000", - "0x47", - "0x20680017fff7ffd", - "0xa", - "0x48127ff67fff8000", - "0x48127ff67fff8000", - "0x480680017fff8000", - "0x0", - "0x480680017fff8000", - "0x0", - "0x48127ffb7fff8000", - "0x208b7fff7fff7ffe", - "0x48127ff67fff8000", - "0x48127ff67fff8000", - "0x480680017fff8000", - "0x1", - "0x48127ffb7fff8000", - "0x48127ffb7fff8000", - "0x208b7fff7fff7ffe", - "0x480680017fff8000", - "0x0", - "0x480680017fff8000", - "0x1f3694f95b7dfd5d7c412de0955718cd18eb234ad39c2e1aeb5d3d1f702b575", - "0x480680017fff8000", - "0x53746f726167655772697465", - "0x400280007ffc7fff", - "0x400380017ffc7ffb", - "0x400280027ffc7ffd", - "0x400280037ffc7ffe", - "0x400380047ffc7ffd", - "0x480280067ffc8000", - "0x20680017fff7fff", - "0xd", - "0x480280057ffc8000", - "0x482680017ffc8000", - "0x7", - "0x480680017fff8000", - "0x0", - "0x480680017fff8000", - "0x0", - "0x480680017fff8000", - "0x0", - "0x10780017fff7fff", - "0x9", - "0x480280057ffc8000", - "0x482680017ffc8000", - "0x9", - "0x480680017fff8000", - "0x1", - "0x480280077ffc8000", - "0x480280087ffc8000", - "0x1104800180018000", - "0x21", - "0x20680017fff7ffd", - "0xb", - "0x48127ff67fff8000", - "0x48127ff67fff8000", - "0x480680017fff8000", - "0x0", - "0x480680017fff8000", - "0x0", - "0x480680017fff8000", - "0x0", - "0x208b7fff7fff7ffe", - "0x48127ff67fff8000", - "0x48127ff67fff8000", - "0x480680017fff8000", - "0x1", - "0x48127ffb7fff8000", - "0x48127ffb7fff8000", - "0x208b7fff7fff7ffe", - "0x20780017fff7ffb", - "0x8", - "0x480680017fff8000", - "0x0", - "0x480680017fff8000", - "0x0", - "0x480a7ffd7fff8000", - "0x208b7fff7fff7ffe", - "0x480680017fff8000", - "0x1", - "0x480a7ffc7fff8000", - "0x480a7ffd7fff8000", - "0x208b7fff7fff7ffe", - "0x20780017fff7ffb", - "0x9", - "0x480680017fff8000", - "0x0", - "0x480680017fff8000", - "0x0", - "0x480680017fff8000", - "0x0", - "0x208b7fff7fff7ffe", - "0x480680017fff8000", - "0x1", - "0x480a7ffc7fff8000", - "0x480a7ffd7fff8000", - "0x208b7fff7fff7ffe" - ], - "hints": [ - [ - 0, - [ - { - "TestLessThanOrEqual": { - "lhs": { "Immediate": "0x56e0" }, - "rhs": { "Deref": { "register": "FP", "offset": -6 } }, - "dst": { "register": "AP", "offset": 0 } - } - } - ] - ], - [28, [{ "AllocSegment": { "dst": { "register": "AP", "offset": 0 } } }]], - [ - 47, - [ - { - "TestLessThanOrEqual": { - "lhs": { "Immediate": "0x0" }, - "rhs": { "Deref": { "register": "AP", "offset": -23 } }, - "dst": { "register": "AP", "offset": 0 } - } - } - ] - ], - [68, [{ "AllocSegment": { "dst": { "register": "AP", "offset": 0 } } }]], - [86, [{ "AllocSegment": { "dst": { "register": "AP", "offset": 0 } } }]], - [101, [{ "AllocSegment": { "dst": { "register": "AP", "offset": 0 } } }]], - [115, [{ "AllocSegment": { "dst": { "register": "AP", "offset": 0 } } }]], - [ - 130, - [ - { - "TestLessThanOrEqual": { - "lhs": { "Immediate": "0x1d10" }, - "rhs": { "Deref": { "register": "FP", "offset": -6 } }, - "dst": { "register": "AP", "offset": 0 } - } - } - ] - ], - [152, [{ "AllocSegment": { "dst": { "register": "AP", "offset": 0 } } }]], - [ - 171, - [ - { - "TestLessThanOrEqual": { - "lhs": { "Immediate": "0x0" }, - "rhs": { "Deref": { "register": "AP", "offset": -8 } }, - "dst": { "register": "AP", "offset": 0 } - } - } - ] - ], - [191, [{ "AllocSegment": { "dst": { "register": "AP", "offset": 0 } } }]], - [214, [{ "AllocSegment": { "dst": { "register": "AP", "offset": 0 } } }]], - [229, [{ "AllocSegment": { "dst": { "register": "AP", "offset": 0 } } }]], - [ - 360, - [ - { - "SystemCall": { - "system": { "Deref": { "register": "FP", "offset": -3 } } - } - } - ] - ], - [ - 410, - [ - { - "SystemCall": { - "system": { "Deref": { "register": "FP", "offset": -4 } } - } - } - ] - ] - ], - "entry_points_by_type": { - "EXTERNAL": [ - { - "selector": "0x100781e70ee4c8fe9095638e2f60c7d1d8102a337cc9f7619fd0d3c23f97358", - "offset": 0, - "builtins": ["range_check"] - }, - { - "selector": "0x3a8a260575c99ad54c35e92934105827032e08dc2f03097e6014d94706b0a7f", - "offset": 130, - "builtins": ["range_check"] - } - ], - "L1_HANDLER": [], - "CONSTRUCTOR": [] - } -} diff --git a/starknet-rpc-test/contracts/Counter2/Counter2.sierra.json b/starknet-rpc-test/contracts/Counter2/Counter2.sierra.json deleted file mode 100644 index f9de4ba6f6..0000000000 --- a/starknet-rpc-test/contracts/Counter2/Counter2.sierra.json +++ /dev/null @@ -1,661 +0,0 @@ -{ - "sierra_program": [ - "0x1", - "0x3", - "0x0", - "0x2", - "0x1", - "0x0", - "0xca", - "0x36", - "0x1f", - "0x52616e6765436865636b", - "0x0", - "0x4761734275696c74696e", - "0x66656c74323532", - "0x4172726179", - "0x1", - "0x2", - "0x536e617073686f74", - "0x3", - "0x537472756374", - "0x1baeba72e79e9db2587cf44fedb2f3700b2075a5e8e39a562584862c4b71f62", - "0x4", - "0x2ee1e2b1b89f8c495f200e4956278a4d47395fe262f27b52e5865c9524c08c3", - "0x456e756d", - "0x11c6d8087e00642489f92d2821ad6ebd6532ad1a3b6d12833da6d6810391511", - "0x6", - "0x753332", - "0x53797374656d", - "0x16a4c8d7c05909052238a862d8cc3e7975bf05a07b3a69c6b28951083a6d672", - "0xa", - "0x5", - "0x9931c641b913035ae674b400b61a51476d506bbe8bba2ff8a6272790aba9e6", - "0xc", - "0xb", - "0x4275696c74696e436f737473", - "0x29f42f081b39b7a95af7de50c360d817b2d3267526e04d1c82194503d6741f5", - "0x137cd6e9a4a8465ec5587137fce150747aa77ffb322ddd97f7d17f021a4d3d7", - "0xf", - "0x10", - "0xc0764d0105132ee2c23ff8b3bb5a956e28de073773f2ca19cd88a286832866", - "0x11", - "0x10203be321c62a7bd4c060d69539c1fbe065baa9e253c74d2cc48be163e259", - "0x13", - "0x426f78", - "0x29d7d57c04a880978e7b3689f6218e507f3be17588744b58dc17762447ad0e7", - "0x15", - "0x167da147c848d82223137ce6d4116fc13e47127577ad1b4c91f8b9e045c9785", - "0x17", - "0x53746f726167654261736541646472657373", - "0x53746f7261676541646472657373", - "0x90d0203c41ad646d024845257a6eceb2f8b59b29ce7420dd518053d2edeedc", - "0x101dc0399934cc08fa0d6f6f2daead4e4a38cabeea1c743e1fc28d2d6e58e99", - "0xcc5e86243f861d2d64b08c35db21013e773ac5cf10097946fe0011304886d5", - "0x1d", - "0x71", - "0x7265766f6b655f61705f747261636b696e67", - "0x77697468647261775f676173", - "0x6272616e63685f616c69676e", - "0x73746f72655f74656d70", - "0x66756e6374696f6e5f63616c6c", - "0x656e756d5f6d61746368", - "0x7", - "0x7374727563745f6465636f6e737472756374", - "0x61727261795f6c656e", - "0x736e617073686f745f74616b65", - "0x8", - "0x64726f70", - "0x7533325f636f6e7374", - "0x72656e616d65", - "0x7533325f6571", - "0x9", - "0x61727261795f6e6577", - "0x66656c743235325f636f6e7374", - "0x496e70757420746f6f206c6f6e6720666f7220617267756d656e7473", - "0x61727261795f617070656e64", - "0x7374727563745f636f6e737472756374", - "0x656e756d5f696e6974", - "0xd", - "0x6765745f6275696c74696e5f636f737473", - "0xe", - "0x77697468647261775f6761735f616c6c", - "0x12", - "0x4f7574206f6620676173", - "0x496e70757420746f6f2073686f727420666f7220617267756d656e7473", - "0x14", - "0x61727261795f736e617073686f745f706f705f66726f6e74", - "0x16", - "0x6a756d70", - "0x756e626f78", - "0x66656c743235325f616464", - "0x18", - "0x73746f726167655f626173655f616464726573735f636f6e7374", - "0x1f3694f95b7dfd5d7c412de0955718cd18eb234ad39c2e1aeb5d3d1f702b575", - "0x73746f726167655f616464726573735f66726f6d5f62617365", - "0x1a", - "0x73746f726167655f726561645f73797363616c6c", - "0x1b", - "0x73746f726167655f77726974655f73797363616c6c", - "0x1c", - "0x1e", - "0x19f", - "0xffffffffffffffff", - "0x63", - "0x54", - "0x24", - "0x19", - "0x20", - "0x21", - "0x22", - "0x23", - "0x25", - "0x46", - "0x26", - "0x27", - "0x28", - "0x29", - "0x2d", - "0x2e", - "0x2f", - "0x30", - "0x2a", - "0x2b", - "0x2c", - "0x31", - "0x3f", - "0x32", - "0x33", - "0x34", - "0x35", - "0x36", - "0x37", - "0x38", - "0x39", - "0x3a", - "0x3b", - "0x3c", - "0x3d", - "0x3e", - "0x40", - "0x41", - "0x42", - "0x43", - "0x44", - "0x45", - "0x47", - "0x48", - "0x49", - "0x4a", - "0x4b", - "0x4c", - "0x4d", - "0x4e", - "0x4f", - "0x50", - "0x51", - "0x52", - "0x53", - "0x55", - "0x56", - "0x57", - "0x58", - "0x59", - "0x5a", - "0x5b", - "0x5c", - "0x5d", - "0x5e", - "0x5f", - "0xc6", - "0x90", - "0xb9", - "0xb2", - "0xdb", - "0xe0", - "0xea", - "0x11c", - "0x116", - "0x132", - "0x14b", - "0x150", - "0x15b", - "0x170", - "0x60", - "0x61", - "0x175", - "0x62", - "0x64", - "0x65", - "0x180", - "0x66", - "0x67", - "0x68", - "0x69", - "0x6a", - "0x6b", - "0x18d", - "0x6c", - "0x199", - "0x6d", - "0x6e", - "0x6f", - "0x70", - "0xd4", - "0xf1", - "0xf5", - "0x124", - "0x138", - "0x13e", - "0x161", - "0x187", - "0x193", - "0xf89", - "0x7060f02090e0d02060a0c060b02070a090606080706060502040203020100", - "0x617061602090e15060d02070a090614060d02090a1302060a021202111006", - "0x70a18061f061e02090e10061d060d02090a1c061b02070a1a02060a021918", - "0x61c060d02090a100624062302090e07060622180621062002090e07060d02", - "0x70a090610062a02090e090607062902090e02280227180626062502090e10", - "0x206063107090632150606310230022f022e2d18062c062b02090e10060d02", - "0x606313806063b0207063a3806063938060637070606361506063534060633", - "0x70606314007063f0706063e10060639090906323d06063107060639023c38", - "0x6063102454406063106060631060744060743180606421406064207060641", - "0x90606371f060639480606330c0906321d0606311d0606421c060642024746", - "0x374a07063f150606394907063f020744060743170606421506064209060639", - "0x100906320906063107060637210606354b060633150906321d0606391d0606", - "0x3306074d06074310060642024e4d0606310c06063102074d0607430706064c", - "0x10060631060734060743340606310207340607430706063b0706064f4d0606", - "0x33380906320607063f0707063f0250340906321c0606311c0606371d060635", - "0x1c060639060748060743480606310207480607431f06064226060635510606", - "0x565506063102545307065206074b0607434b06063102074b06074321060642", - "0x5906074302583d0906325706063b0607570607435706063102075706074302", - "0x606422c0606355a060633140906325906063b060759060743590606310207", - "0x7432c06064259060633570606330607510607435106063102075106074326", - "0x150c075c070602070602025c060202025b06075a0607435a06063102075a06", - "0xc0615023d38075c0614060c0214065c0609060902025c060207023410075d", - "0x380244065c0638063402025c0602070217065e18065c073d0610020c065c06", - "0x3d021f065c06021802025c061c0614021d1c075c0646063d0246065c064406", - "0x224065c06210617024b065c061d061702025c06480614022148075c061f06", - "0x2025c0618061c02025c06020702025f025c07244b0746024b065c064b0644", - "0x260065c06022102025c0626064802264d075c0651061f0251065c0607061d", - "0x259065c0602260257065c065560074d0255065c065506240255065c06024b", - "0x65c061506550200065c060c0615025a065c062c0660022c065c0657590751", - "0x5902025c06020702636261000c0663065c065a06570262065c064d061d0261", - "0x2070268670766655f075c0764150c095a0264065c0664062c0264065c0602", - "0x607061d026b065c06650655026a065c066906610269065c06020002025c06", - "0x706f095c066e6d6c6b0c63026e065c06180624026d065c066a0662026c065c", - "0x672065f02025c0602070274067372065c07710664025f065c065f06150271", - "0x5c0677066802025c06760667027776075c067506650275065c06022102025c", - "0x66f0655027b065c065f0615027a065c0679066a0279065c06780669027806", - "0x25c060207027e7d7c7b0c067e065c067a0657027d065c0670061d027c065c", - "0x65c0670061d0273065c066f06550280065c065f0615027f065c0674066002", - "0x22102025c0618061c02025c06020702828173800c0682065c067f06570281", - "0x2260285065c068483074d0284065c068406240284065c06026f0283065c06", - "0x550288065c066706150287065c066606600266065c06858607510286065c06", - "0x207028b8a89880c068b065c06870657028a065c0607061d0289065c066806", - "0x8d065c060271028c065c06022102025c0638067002025c0617064802025c06", - "0x5c068e8f0751028f065c060226028e065c068d8c074d028d065c068d062402", - "0x607061d0293065c061506550292065c060c06150291065c06900660029006", - "0x2025c0609067002025c06020702945e93920c0694065c06910657025e065c", - "0x297065c069695074d0296065c069606240296065c06026f0295065c060221", - "0x9b065c06100615029a065c069906600299065c06979807510298065c060226", - "0x29e9d9c9b0c069e065c069a0657029d065c0607061d029c065c0634065502", - "0x5c0609063402025c060207023410079f150c075c070602070602025c060202", - "0x5c06021802025c06140614021814075c063d063d023d065c06380638023806", - "0x6460617021c065c0618061702025c06440614024644075c0617063d021706", - "0x70202a0025c071d1c0746020c065c060c0615021c065c061c0644021d065c", - "0x22102025c0648064802481f075c0621061f0221065c0607061d02025c0602", - "0x226024d065c06244b074d0224065c062406240224065c06024b024b065c06", - "0x550255065c060c06150260065c065106600251065c064d2607510226065c06", - "0x207022c5957550c062c065c066006570259065c061f061d0257065c061506", - "0x7a16100075c075a150c095a025a065c065a062c025a065c06025902025c06", - "0x65075c065f066b025f065c066406610264065c06020002025c060207026362", - "0x65c066706620270065c0607061d026f065c0661065502025c0665066c0267", - "0x6a26b065c076a066e0200065c06000615026a6968095c0671706f096d0271", - "0x7472075c066d0674026e065c060221026d065c066b067202025c060207026c", - "0x75c06787707760278065c066e06750277065c0674062402025c0672061c02", - "0x5c067a066802025c06790667027a79075c0675066502025c06760648027675", - "0x6680655027e065c06000615027d065c067c066a027c065c067b0669027b06", - "0x25c0602070273807f7e0c0673065c067d06570280065c0669061d027f065c", - "0x65c0669061d0283065c066806550282065c060006150281065c066c066002", - "0x26f0286065c06022102025c06020702858483820c0685065c068106570284", - "0x7510288065c0602260287065c066686074d0266065c066606240266065c06", - "0x28c065c06630655028b065c06620615028a065c068906600289065c068788", - "0x9067002025c060207028e8d8c8b0c068e065c068a0657028d065c0607061d", - "0x6908f074d0290065c069006240290065c06026f028f065c06022102025c06", - "0x100615025e065c069306600293065c06919207510292065c0602260291065c", - "0x940c0697065c065e06570296065c0607061d0295065c063406550294065c06", - "0x7802025c060207020c06a30907075c070606770206065c0602063402979695", - "0x2070202a406027b0234065c0615067a0210065c060706790215065c060906", - "0x63d067a0210065c060c0679023d065c0638067d0238065c06027c02025c06", - "0x21706a518065c0734067e0214065c061406090214065c061006680234065c", - "0x9021c065c064606730246065c064406800244065c0618067f02025c060207", - "0x25c0617064802025c060207021f1d07061f065c061c0681021d065c061406", - "0x24065c06210681024b065c061406090221065c064806820248065c06027c02", - "0x907070609065c060606830207065c0602061d0206065c06027c02244b0706", - "0x5c0606061d0214065c06020655021015075c060c0685020c065c0607068402", - "0xa644065c073d066e023d3834095c0617181409660217065c06100686021806", - "0x65c060288021d065c06091c0787021c065c0644067202025c060207024606", - "0x5c064806240221065c0602890248065c061f1d0787021d065c061d0624021f", - "0x1506860260065c0638061d0251065c06340655024b065c0621480787024806", - "0x5c0726068b02264d24095c06575560510c8a0257065c064b06240255065c06", - "0x5a066102025c0600064802005a075c0659068c02025c060207022c06a75906", - "0x6550264065c0663068e0263065c066261078d0262065c06027c0261065c06", - "0x5c0602070267655f090667065c0664068f0265065c064d061d025f065c0624", - "0x5c0668068f026a065c064d061d0269065c062406550268065c062c06900202", - "0x46069002025c0609061c02025c0615069102025c060207026f6a6909066f06", - "0x7109066c065c0670068f026b065c0638061d0271065c063406550270065c06", - "0x60906860238065c0606061d0234065c060206550209065c06070684026c6b", - "0x5c060207021806a814065c0710066e0210150c095c063d38340966023d065c", - "0x5c060c06550246065c064406930244065c061706920217065c061406720202", - "0x9402025c060207021f1d1c09061f065c0646065e021d065c0615061d021c06", - "0x624065c0648065e024b065c0615061d0221065c060c06550248065c061806", - "0x675020c065c06027c0209065c060706074d0207065c0602068002244b2109", - "0x9065c06029502025c06070691021015070610065c060c06830215065c0609", - "0xc065c060c06970215065c061506440215065c060218020c065c0609069602", - "0x65c0638069902025c0602070218143d09a9383410095c070c1506020c9802", - "0x2aa06027b021c065c0617069a0246065c0634061d0244065c061006550217", - "0x246065c0614061d0244065c063d0655021d065c0618069b02025c06020702", - "0x21065c071f066e021f065c0648069d0248065c061c069c021c065c061d069a", - "0x5c064d0693024d065c062406920224065c0621067202025c060207024b06ab", - "0x556051090655065c0626065e0260065c0646061d0251065c06440655022606", - "0x22c065c0646061d0259065c064406550257065c064b069402025c06020702", - "0x29502025c0615069102150c075c06070685025a2c5909065a065c0657065e", - "0x3406970238065c063806440238065c0602180234065c061006960210065c06", - "0x27c02025c0602070244171809ac143d075c070934380602159e0234065c06", - "0x6ae021f065c0614061d021d065c063d0655021c065c064606ad0246065c06", - "0x5c061806550221065c064406b002025c0602070202af06027b0248065c061c", - "0x62406b10224065c0648065d0248065c062106ae021f065c0617061d021d06", - "0x7b50251065c064d06b402025c060207022606b34d065c074b06b2024b065c", - "0x259065c061f061d0257065c061d06550255065c066006b60260065c06510c", - "0x5c062606b802025c060c069102025c060207022c595709062c065c065506b7", - "0x626100090662065c065a06b70261065c061f061d0200065c061d0655025a06", - "0x5c060906930209065c0606069202025c060207020706ba06065c070206b902", - "0x71007510210065c06022602025c0602070215060615065c060c065e020c06", - "0x6065c070206bb023d06063d065c0638065e0238065c063406940234065c06", - "0x5c060c06bf020c065c060906be0209065c060606bd02025c060207020706bc", - "0x3406c00234065c06071007510210065c06022602025c060207021506061506", - "0x209070602443d06020c153d06020c183d06063d065c063806bf0238065c06", - "0x60cc202103d073d06c10234150715062d09070602443d06020c153d06020c", - "0x2100907090707c40706024b3d06091d3d0609c309070602483d0609071d3d", - "0x65706c709070602513d0609071c3d060cc60706024b3d06091c3d0609c506", - "0xc9025a065906c8024b" - ], - "sierra_program_debug_info": { - "type_names": [ - [0, "RangeCheck"], - [1, "GasBuiltin"], - [2, "felt252"], - [3, "Array"], - [4, "Snapshot>"], - [5, "core::array::Span::"], - [6, "Unit"], - [7, "core::option::Option::"], - [8, "u32"], - [9, "System"], - [10, "core::panics::Panic"], - [11, "Tuple>"], - [12, "Tuple>"], - [ - 13, - "core::panics::PanicResult::<(core::array::Span::,)>" - ], - [14, "BuiltinCosts"], - [15, "Counter2::Counter2::balance_2::ContractState"], - [16, "Counter2::Counter2::ContractState"], - [17, "Tuple"], - [ - 18, - "core::panics::PanicResult::<(Counter2::Counter2::ContractState, ())>" - ], - [19, "Tuple"], - [20, "core::panics::PanicResult::<(core::felt252,)>"], - [21, "Box"], - [22, "core::option::Option::>"], - [23, "Tuple"], - [ - 24, - "core::panics::PanicResult::<(Counter2::Counter2::balance_2::ContractState, ())>" - ], - [25, "StorageBaseAddress"], - [26, "StorageAddress"], - [ - 27, - "core::result::Result::>" - ], - [28, "core::result::Result::<(), core::array::Array::>"], - [29, "Tuple"], - [30, "core::panics::PanicResult::<((),)>"] - ], - "libfunc_names": [ - [0, "revoke_ap_tracking"], - [1, "withdraw_gas"], - [2, "branch_align"], - [3, "store_temp>"], - [4, "function_call"], - [5, "store_temp"], - [6, "enum_match>"], - [7, "struct_deconstruct>"], - [8, "array_len"], - [9, "snapshot_take"], - [10, "drop"], - [11, "u32_const<0>"], - [12, "rename"], - [13, "store_temp"], - [14, "u32_eq"], - [15, "drop"], - [16, "store_temp"], - [17, "function_call"], - [18, "drop"], - [19, "array_new"], - [ - 20, - "felt252_const<7733229381460288120802334208475838166080759535023995805565484692595>" - ], - [21, "store_temp"], - [22, "array_append"], - [23, "struct_construct"], - [24, "struct_construct>>"], - [ - 25, - "enum_init,)>, 1>" - ], - [26, "store_temp"], - [ - 27, - "store_temp,)>>" - ], - [28, "get_builtin_costs"], - [29, "store_temp"], - [30, "withdraw_gas_all"], - [31, "struct_construct"], - [32, "struct_construct"], - [33, "store_temp"], - [34, "function_call"], - [ - 35, - "enum_match>" - ], - [36, "drop>"], - [37, "snapshot_take>"], - [38, "drop>"], - [39, "struct_construct>"], - [40, "struct_construct>>"], - [ - 41, - "enum_init,)>, 0>" - ], - [42, "felt252_const<375233589013918064796019>"], - [43, "drop>"], - [ - 44, - "felt252_const<1979706721653833758925397712865600297316042839304765459608024204080243>" - ], - [45, "snapshot_take"], - [46, "drop"], - [47, "function_call"], - [48, "enum_match>"], - [49, "struct_deconstruct>"], - [50, "snapshot_take"], - [51, "store_temp>"], - [52, "function_call"], - [53, "array_snapshot_pop_front"], - [ - 54, - "enum_init>, 0>" - ], - [55, "store_temp>>"], - [ - 56, - "store_temp>>" - ], - [57, "jump"], - [58, "struct_construct"], - [ - 59, - "enum_init>, 1>" - ], - [ - 60, - "enum_match>>" - ], - [61, "unbox"], - [62, "rename"], - [63, "enum_init, 0>"], - [64, "store_temp>"], - [65, "enum_init, 1>"], - [66, "store_temp"], - [67, "struct_deconstruct"], - [68, "snapshot_take"], - [69, "store_temp"], - [ - 70, - "function_call" - ], - [71, "felt252_add"], - [72, "felt252_const<2>"], - [73, "felt252_const<1>"], - [ - 74, - "function_call" - ], - [ - 75, - "enum_match>" - ], - [ - 76, - "struct_deconstruct>" - ], - [77, "struct_construct>"], - [ - 78, - "enum_init, 0>" - ], - [ - 79, - "store_temp>" - ], - [ - 80, - "enum_init, 1>" - ], - [81, "drop"], - [82, "struct_construct>"], - [83, "enum_init, 0>"], - [84, "store_temp>"], - [85, "enum_init, 1>"], - [ - 86, - "storage_base_address_const<882383514293786476169860057603731312574256808446185275593542539777216263541>" - ], - [87, "storage_address_from_base"], - [88, "store_temp"], - [89, "storage_read_syscall"], - [ - 90, - "enum_init>, 0>" - ], - [ - 91, - "store_temp>>" - ], - [ - 92, - "enum_init>, 1>" - ], - [ - 93, - "rename>>" - ], - [ - 94, - "function_call::unwrap_syscall>" - ], - [95, "storage_write_syscall"], - [ - 96, - "enum_init>, 0>" - ], - [ - 97, - "store_temp>>" - ], - [ - 98, - "enum_init>, 1>" - ], - [ - 99, - "rename>>" - ], - [ - 100, - "function_call::unwrap_syscall>" - ], - [101, "enum_match>"], - [102, "struct_deconstruct>"], - [ - 103, - "struct_construct>" - ], - [ - 104, - "enum_init, 0>" - ], - [ - 105, - "store_temp>" - ], - [ - 106, - "enum_init, 1>" - ], - [ - 107, - "enum_match>>" - ], - [ - 108, - "enum_match>>" - ], - [109, "struct_construct>"], - [110, "enum_init, 0>"], - [111, "store_temp>"], - [112, "enum_init, 1>"] - ], - "user_func_names": [ - [0, "Counter2::Counter2::__external::increase_balance_2"], - [1, "Counter2::Counter2::__external::get_balance_2"], - [2, "core::Felt252Serde::deserialize"], - [3, "core::starknet::use_system_implicit"], - [4, "Counter2::Counter2::increase_balance_2"], - [5, "Counter2::Counter2::get_balance_2"], - [6, "core::Felt252Serde::serialize"], - [7, "Counter2::Counter2::balance_2::InternalContractStateImpl::read"], - [8, "Counter2::Counter2::balance_2::InternalContractStateImpl::write"], - [ - 9, - "core::starknet::SyscallResultTraitImpl::::unwrap_syscall" - ], - [10, "core::starknet::SyscallResultTraitImpl::<()>::unwrap_syscall"] - ] - }, - "contract_class_version": "0.1.0", - "entry_points_by_type": { - "EXTERNAL": [ - { - "selector": "0x100781e70ee4c8fe9095638e2f60c7d1d8102a337cc9f7619fd0d3c23f97358", - "function_idx": 0 - }, - { - "selector": "0x3a8a260575c99ad54c35e92934105827032e08dc2f03097e6014d94706b0a7f", - "function_idx": 1 - } - ], - "L1_HANDLER": [], - "CONSTRUCTOR": [] - }, - "abi": [ - { - "type": "function", - "name": "increase_balance_2", - "inputs": [{ "name": "amount", "type": "core::felt252" }], - "outputs": [], - "state_mutability": "external" - }, - { - "type": "function", - "name": "get_balance_2", - "inputs": [], - "outputs": [{ "type": "core::felt252" }], - "state_mutability": "view" - }, - { - "type": "event", - "name": "Counter2::Counter2::Event", - "kind": "enum", - "variants": [] - } - ] -} diff --git a/starknet-rpc-test/contracts/Counter3/Counter3.cairo b/starknet-rpc-test/contracts/Counter3/Counter3.cairo deleted file mode 100644 index 22fa48ba32..0000000000 --- a/starknet-rpc-test/contracts/Counter3/Counter3.cairo +++ /dev/null @@ -1,19 +0,0 @@ -#[starknet::contract] -mod Counter3 { - #[storage] - struct Storage { - balance_3: felt252, - } - - // Increases the balance_3 by the given amount. - #[external(v0)] - fn increase_balance_3(ref self: ContractState, amount: felt252) { - self.balance_3.write(self.balance_3.read() + amount + 3 + 1); - } - - // Returns the current balance_3. - #[external(v0)] - fn get_balance_3(self: @ContractState) -> felt252 { - self.balance_3.read() - } -} diff --git a/starknet-rpc-test/contracts/Counter3/Counter3.casm.json b/starknet-rpc-test/contracts/Counter3/Counter3.casm.json deleted file mode 100644 index 7108cd0470..0000000000 --- a/starknet-rpc-test/contracts/Counter3/Counter3.casm.json +++ /dev/null @@ -1,579 +0,0 @@ -{ - "prime": "0x800000000000011000000000000000000000000000000000000000000000001", - "compiler_version": "2.1.0", - "bytecode": [ - "0xa0680017fff8000", - "0x7", - "0x482680017ffa8000", - "0xffffffffffffffffffffffffffffa920", - "0x400280007ff97fff", - "0x10780017fff7fff", - "0x6e", - "0x4825800180007ffa", - "0x56e0", - "0x400280007ff97fff", - "0x480a7ffc7fff8000", - "0x480a7ffd7fff8000", - "0x1104800180018000", - "0xe8", - "0x482680017ff98000", - "0x1", - "0x20680017fff7ffd", - "0x55", - "0x48307ffb80007ffc", - "0x4824800180007fff", - "0x0", - "0x20680017fff7fff", - "0x4", - "0x10780017fff7fff", - "0x13", - "0x480a7ffb7fff8000", - "0x1104800180018000", - "0xfe", - "0x40780017fff7fff", - "0x1", - "0x480680017fff8000", - "0x496e70757420746f6f206c6f6e6720666f7220617267756d656e7473", - "0x400080007ffe7fff", - "0x48127ff77fff8000", - "0x48127fe67fff8000", - "0x48127ffb7fff8000", - "0x480680017fff8000", - "0x1", - "0x48127ffa7fff8000", - "0x482480017ff98000", - "0x1", - "0x208b7fff7fff7ffe", - "0x1104800180018000", - "0x1b4", - "0x482480017fff8000", - "0x1b3", - "0x480080007fff8000", - "0xa0680017fff8000", - "0x9", - "0x4824800180007fe8", - "0x0", - "0x482480017fff8000", - "0x100000000000000000000000000000000", - "0x400080007ff67fff", - "0x10780017fff7fff", - "0x20", - "0x4824800180007fe8", - "0x0", - "0x400080007ff77fff", - "0x48127fff7fff8000", - "0x480a7ffb7fff8000", - "0x48127ff47fff8000", - "0x1104800180018000", - "0xdc", - "0x482480017fbc8000", - "0x1", - "0x20680017fff7ffc", - "0xc", - "0x40780017fff7fff", - "0x1", - "0x48127ffe7fff8000", - "0x48127ff87fff8000", - "0x48127ff87fff8000", - "0x480680017fff8000", - "0x0", - "0x48127ffb7fff8000", - "0x48127ffa7fff8000", - "0x208b7fff7fff7ffe", - "0x48127fff7fff8000", - "0x48127ff97fff8000", - "0x48127ff97fff8000", - "0x480680017fff8000", - "0x1", - "0x48127ff97fff8000", - "0x48127ff97fff8000", - "0x208b7fff7fff7ffe", - "0x40780017fff7fff", - "0x1", - "0x480680017fff8000", - "0x4f7574206f6620676173", - "0x400080007ffe7fff", - "0x482480017ff48000", - "0x1", - "0x48127fe37fff8000", - "0x480a7ffb7fff8000", - "0x480680017fff8000", - "0x1", - "0x48127ffa7fff8000", - "0x482480017ff98000", - "0x1", - "0x208b7fff7fff7ffe", - "0x40780017fff7fff", - "0x1", - "0x480680017fff8000", - "0x496e70757420746f6f2073686f727420666f7220617267756d656e7473", - "0x400080007ffe7fff", - "0x48127ffd7fff8000", - "0x48127fec7fff8000", - "0x480a7ffb7fff8000", - "0x480680017fff8000", - "0x1", - "0x48127ffa7fff8000", - "0x482480017ff98000", - "0x1", - "0x208b7fff7fff7ffe", - "0x40780017fff7fff", - "0x1", - "0x480680017fff8000", - "0x4f7574206f6620676173", - "0x400080007ffe7fff", - "0x482680017ff98000", - "0x1", - "0x480a7ffa7fff8000", - "0x480a7ffb7fff8000", - "0x480680017fff8000", - "0x1", - "0x48127ffa7fff8000", - "0x482480017ff98000", - "0x1", - "0x208b7fff7fff7ffe", - "0xa0680017fff8000", - "0x7", - "0x482680017ffa8000", - "0xffffffffffffffffffffffffffffe2f0", - "0x400280007ff97fff", - "0x10780017fff7fff", - "0x5e", - "0x4825800180007ffa", - "0x1d10", - "0x400280007ff97fff", - "0x48297ffc80007ffd", - "0x482680017ff98000", - "0x1", - "0x4824800180007ffe", - "0x0", - "0x20680017fff7fff", - "0x4", - "0x10780017fff7fff", - "0x13", - "0x480a7ffb7fff8000", - "0x1104800180018000", - "0x82", - "0x40780017fff7fff", - "0x1", - "0x480680017fff8000", - "0x496e70757420746f6f206c6f6e6720666f7220617267756d656e7473", - "0x400080007ffe7fff", - "0x48127ff87fff8000", - "0x48127ff57fff8000", - "0x48127ffb7fff8000", - "0x480680017fff8000", - "0x1", - "0x48127ffa7fff8000", - "0x482480017ff98000", - "0x1", - "0x208b7fff7fff7ffe", - "0x1104800180018000", - "0x138", - "0x482480017fff8000", - "0x137", - "0x480080007fff8000", - "0xa0680017fff8000", - "0x9", - "0x4824800180007ff7", - "0x0", - "0x482480017fff8000", - "0x100000000000000000000000000000000", - "0x400080007ff77fff", - "0x10780017fff7fff", - "0x24", - "0x4824800180007ff7", - "0x0", - "0x400080007ff87fff", - "0x48127fff7fff8000", - "0x480a7ffb7fff8000", - "0x1104800180018000", - "0x8b", - "0x482480017fd88000", - "0x1", - "0x20680017fff7ffc", - "0x11", - "0x40780017fff7fff", - "0x1", - "0x48127ffd7fff8000", - "0x48127ffe7fff8000", - "0x48127ffd7fff8000", - "0x1104800180018000", - "0x95", - "0x48127ff77fff8000", - "0x48127ff17fff8000", - "0x48127ff17fff8000", - "0x480680017fff8000", - "0x0", - "0x48127ffa7fff8000", - "0x48127ffa7fff8000", - "0x208b7fff7fff7ffe", - "0x48127fff7fff8000", - "0x48127ff97fff8000", - "0x48127ff97fff8000", - "0x480680017fff8000", - "0x1", - "0x48127ff97fff8000", - "0x48127ff97fff8000", - "0x208b7fff7fff7ffe", - "0x40780017fff7fff", - "0x1", - "0x480680017fff8000", - "0x4f7574206f6620676173", - "0x400080007ffe7fff", - "0x482480017ff58000", - "0x1", - "0x48127ff27fff8000", - "0x480a7ffb7fff8000", - "0x480680017fff8000", - "0x1", - "0x48127ffa7fff8000", - "0x482480017ff98000", - "0x1", - "0x208b7fff7fff7ffe", - "0x40780017fff7fff", - "0x1", - "0x480680017fff8000", - "0x4f7574206f6620676173", - "0x400080007ffe7fff", - "0x482680017ff98000", - "0x1", - "0x480a7ffa7fff8000", - "0x480a7ffb7fff8000", - "0x480680017fff8000", - "0x1", - "0x48127ffa7fff8000", - "0x482480017ff98000", - "0x1", - "0x208b7fff7fff7ffe", - "0x48297ffc80007ffd", - "0x20680017fff7fff", - "0x4", - "0x10780017fff7fff", - "0xa", - "0x482680017ffc8000", - "0x1", - "0x480a7ffd7fff8000", - "0x480680017fff8000", - "0x0", - "0x480a7ffc7fff8000", - "0x10780017fff7fff", - "0x8", - "0x480a7ffc7fff8000", - "0x480a7ffd7fff8000", - "0x480680017fff8000", - "0x1", - "0x480680017fff8000", - "0x0", - "0x48127ffc7fff8000", - "0x48127ffc7fff8000", - "0x20680017fff7ffc", - "0x8", - "0x48127ffe7fff8000", - "0x48127ffe7fff8000", - "0x480680017fff8000", - "0x0", - "0x480080007ffa8000", - "0x208b7fff7fff7ffe", - "0x48127ffe7fff8000", - "0x48127ffe7fff8000", - "0x480680017fff8000", - "0x1", - "0x480680017fff8000", - "0x0", - "0x208b7fff7fff7ffe", - "0x480a7ffd7fff8000", - "0x208b7fff7fff7ffe", - "0x480a7ffb7fff8000", - "0x480a7ffc7fff8000", - "0x1104800180018000", - "0x42", - "0x20680017fff7ffd", - "0x1d", - "0x48287ffd7fff8000", - "0x482480017fff8000", - "0x3", - "0x48127ff97fff8000", - "0x48127ff97fff8000", - "0x482480017ffd8000", - "0x1", - "0x1104800180018000", - "0x68", - "0x20680017fff7ffd", - "0xb", - "0x48127ffb7fff8000", - "0x48127ffb7fff8000", - "0x480680017fff8000", - "0x0", - "0x480680017fff8000", - "0x0", - "0x480680017fff8000", - "0x0", - "0x208b7fff7fff7ffe", - "0x48127ffb7fff8000", - "0x48127ffb7fff8000", - "0x480680017fff8000", - "0x1", - "0x48127ffb7fff8000", - "0x48127ffb7fff8000", - "0x208b7fff7fff7ffe", - "0x40780017fff7fff", - "0x1a", - "0x48127fe17fff8000", - "0x48127fe17fff8000", - "0x480680017fff8000", - "0x1", - "0x48127fe17fff8000", - "0x48127fe17fff8000", - "0x208b7fff7fff7ffe", - "0x480a7ffc7fff8000", - "0x480a7ffd7fff8000", - "0x1104800180018000", - "0x18", - "0x20680017fff7ffd", - "0xa", - "0x48127ffb7fff8000", - "0x48127ffb7fff8000", - "0x480680017fff8000", - "0x0", - "0x480680017fff8000", - "0x0", - "0x48127ffb7fff8000", - "0x208b7fff7fff7ffe", - "0x48127ffb7fff8000", - "0x48127ffb7fff8000", - "0x480680017fff8000", - "0x1", - "0x48127ffb7fff8000", - "0x48127ffb7fff8000", - "0x208b7fff7fff7ffe", - "0x400380007ffd7ffb", - "0x480a7ffc7fff8000", - "0x482680017ffd8000", - "0x1", - "0x208b7fff7fff7ffe", - "0x480680017fff8000", - "0x0", - "0x480680017fff8000", - "0x13f8f977246b9de639fa8cb66b97c7a963aa52dcc226d464b423dadd448247", - "0x480680017fff8000", - "0x53746f7261676552656164", - "0x400280007ffd7fff", - "0x400380017ffd7ffc", - "0x400280027ffd7ffd", - "0x400280037ffd7ffe", - "0x480280057ffd8000", - "0x20680017fff7fff", - "0xc", - "0x480280047ffd8000", - "0x482680017ffd8000", - "0x7", - "0x480680017fff8000", - "0x0", - "0x480680017fff8000", - "0x0", - "0x480280067ffd8000", - "0x10780017fff7fff", - "0x9", - "0x480280047ffd8000", - "0x482680017ffd8000", - "0x8", - "0x480680017fff8000", - "0x1", - "0x480280067ffd8000", - "0x480280077ffd8000", - "0x1104800180018000", - "0x47", - "0x20680017fff7ffd", - "0xa", - "0x48127ff67fff8000", - "0x48127ff67fff8000", - "0x480680017fff8000", - "0x0", - "0x480680017fff8000", - "0x0", - "0x48127ffb7fff8000", - "0x208b7fff7fff7ffe", - "0x48127ff67fff8000", - "0x48127ff67fff8000", - "0x480680017fff8000", - "0x1", - "0x48127ffb7fff8000", - "0x48127ffb7fff8000", - "0x208b7fff7fff7ffe", - "0x480680017fff8000", - "0x0", - "0x480680017fff8000", - "0x13f8f977246b9de639fa8cb66b97c7a963aa52dcc226d464b423dadd448247", - "0x480680017fff8000", - "0x53746f726167655772697465", - "0x400280007ffc7fff", - "0x400380017ffc7ffb", - "0x400280027ffc7ffd", - "0x400280037ffc7ffe", - "0x400380047ffc7ffd", - "0x480280067ffc8000", - "0x20680017fff7fff", - "0xd", - "0x480280057ffc8000", - "0x482680017ffc8000", - "0x7", - "0x480680017fff8000", - "0x0", - "0x480680017fff8000", - "0x0", - "0x480680017fff8000", - "0x0", - "0x10780017fff7fff", - "0x9", - "0x480280057ffc8000", - "0x482680017ffc8000", - "0x9", - "0x480680017fff8000", - "0x1", - "0x480280077ffc8000", - "0x480280087ffc8000", - "0x1104800180018000", - "0x21", - "0x20680017fff7ffd", - "0xb", - "0x48127ff67fff8000", - "0x48127ff67fff8000", - "0x480680017fff8000", - "0x0", - "0x480680017fff8000", - "0x0", - "0x480680017fff8000", - "0x0", - "0x208b7fff7fff7ffe", - "0x48127ff67fff8000", - "0x48127ff67fff8000", - "0x480680017fff8000", - "0x1", - "0x48127ffb7fff8000", - "0x48127ffb7fff8000", - "0x208b7fff7fff7ffe", - "0x20780017fff7ffb", - "0x8", - "0x480680017fff8000", - "0x0", - "0x480680017fff8000", - "0x0", - "0x480a7ffd7fff8000", - "0x208b7fff7fff7ffe", - "0x480680017fff8000", - "0x1", - "0x480a7ffc7fff8000", - "0x480a7ffd7fff8000", - "0x208b7fff7fff7ffe", - "0x20780017fff7ffb", - "0x9", - "0x480680017fff8000", - "0x0", - "0x480680017fff8000", - "0x0", - "0x480680017fff8000", - "0x0", - "0x208b7fff7fff7ffe", - "0x480680017fff8000", - "0x1", - "0x480a7ffc7fff8000", - "0x480a7ffd7fff8000", - "0x208b7fff7fff7ffe" - ], - "hints": [ - [ - 0, - [ - { - "TestLessThanOrEqual": { - "lhs": { "Immediate": "0x56e0" }, - "rhs": { "Deref": { "register": "FP", "offset": -6 } }, - "dst": { "register": "AP", "offset": 0 } - } - } - ] - ], - [28, [{ "AllocSegment": { "dst": { "register": "AP", "offset": 0 } } }]], - [ - 47, - [ - { - "TestLessThanOrEqual": { - "lhs": { "Immediate": "0x0" }, - "rhs": { "Deref": { "register": "AP", "offset": -23 } }, - "dst": { "register": "AP", "offset": 0 } - } - } - ] - ], - [68, [{ "AllocSegment": { "dst": { "register": "AP", "offset": 0 } } }]], - [86, [{ "AllocSegment": { "dst": { "register": "AP", "offset": 0 } } }]], - [101, [{ "AllocSegment": { "dst": { "register": "AP", "offset": 0 } } }]], - [115, [{ "AllocSegment": { "dst": { "register": "AP", "offset": 0 } } }]], - [ - 130, - [ - { - "TestLessThanOrEqual": { - "lhs": { "Immediate": "0x1d10" }, - "rhs": { "Deref": { "register": "FP", "offset": -6 } }, - "dst": { "register": "AP", "offset": 0 } - } - } - ] - ], - [152, [{ "AllocSegment": { "dst": { "register": "AP", "offset": 0 } } }]], - [ - 171, - [ - { - "TestLessThanOrEqual": { - "lhs": { "Immediate": "0x0" }, - "rhs": { "Deref": { "register": "AP", "offset": -8 } }, - "dst": { "register": "AP", "offset": 0 } - } - } - ] - ], - [191, [{ "AllocSegment": { "dst": { "register": "AP", "offset": 0 } } }]], - [214, [{ "AllocSegment": { "dst": { "register": "AP", "offset": 0 } } }]], - [229, [{ "AllocSegment": { "dst": { "register": "AP", "offset": 0 } } }]], - [ - 360, - [ - { - "SystemCall": { - "system": { "Deref": { "register": "FP", "offset": -3 } } - } - } - ] - ], - [ - 410, - [ - { - "SystemCall": { - "system": { "Deref": { "register": "FP", "offset": -4 } } - } - } - ] - ] - ], - "entry_points_by_type": { - "EXTERNAL": [ - { - "selector": "0xf6c331c5ed8d385d90b6701440a8dae60db11ce6de5a9f3b5f5cd83d3cd388", - "offset": 0, - "builtins": ["range_check"] - }, - { - "selector": "0x28f4c2012b5ef4f71461a66fc2edbf0f514e10156cbc990e81e49d1effd4cc0", - "offset": 130, - "builtins": ["range_check"] - } - ], - "L1_HANDLER": [], - "CONSTRUCTOR": [] - } -} diff --git a/starknet-rpc-test/contracts/Counter3/Counter3.sierra.json b/starknet-rpc-test/contracts/Counter3/Counter3.sierra.json deleted file mode 100644 index a004ed9e0e..0000000000 --- a/starknet-rpc-test/contracts/Counter3/Counter3.sierra.json +++ /dev/null @@ -1,661 +0,0 @@ -{ - "sierra_program": [ - "0x1", - "0x3", - "0x0", - "0x2", - "0x1", - "0x0", - "0xca", - "0x36", - "0x1f", - "0x52616e6765436865636b", - "0x0", - "0x4761734275696c74696e", - "0x66656c74323532", - "0x4172726179", - "0x1", - "0x2", - "0x536e617073686f74", - "0x3", - "0x537472756374", - "0x1baeba72e79e9db2587cf44fedb2f3700b2075a5e8e39a562584862c4b71f62", - "0x4", - "0x2ee1e2b1b89f8c495f200e4956278a4d47395fe262f27b52e5865c9524c08c3", - "0x456e756d", - "0x11c6d8087e00642489f92d2821ad6ebd6532ad1a3b6d12833da6d6810391511", - "0x6", - "0x753332", - "0x53797374656d", - "0x16a4c8d7c05909052238a862d8cc3e7975bf05a07b3a69c6b28951083a6d672", - "0xa", - "0x5", - "0x9931c641b913035ae674b400b61a51476d506bbe8bba2ff8a6272790aba9e6", - "0xc", - "0xb", - "0x4275696c74696e436f737473", - "0x27e1ff2ea5add551250ed7482a598efb2cf17bae11c6002350798758fb0d420", - "0x1675aa1c3ac14a06572450b3b91b1c077eef0027236f7c5df800ba8a083692d", - "0xf", - "0x10", - "0x2ccc8f147504dd59053a5da3887864869fa5772447ec2e27601918fbb982fe2", - "0x11", - "0x10203be321c62a7bd4c060d69539c1fbe065baa9e253c74d2cc48be163e259", - "0x13", - "0x426f78", - "0x29d7d57c04a880978e7b3689f6218e507f3be17588744b58dc17762447ad0e7", - "0x15", - "0x2ccb70c969149f3940a206d9764fae33b52b7aa9ee8a8211c303a820a145963", - "0x17", - "0x53746f726167654261736541646472657373", - "0x53746f7261676541646472657373", - "0x90d0203c41ad646d024845257a6eceb2f8b59b29ce7420dd518053d2edeedc", - "0x101dc0399934cc08fa0d6f6f2daead4e4a38cabeea1c743e1fc28d2d6e58e99", - "0xcc5e86243f861d2d64b08c35db21013e773ac5cf10097946fe0011304886d5", - "0x1d", - "0x71", - "0x7265766f6b655f61705f747261636b696e67", - "0x77697468647261775f676173", - "0x6272616e63685f616c69676e", - "0x73746f72655f74656d70", - "0x66756e6374696f6e5f63616c6c", - "0x656e756d5f6d61746368", - "0x7", - "0x7374727563745f6465636f6e737472756374", - "0x61727261795f6c656e", - "0x736e617073686f745f74616b65", - "0x8", - "0x64726f70", - "0x7533325f636f6e7374", - "0x72656e616d65", - "0x7533325f6571", - "0x9", - "0x61727261795f6e6577", - "0x66656c743235325f636f6e7374", - "0x496e70757420746f6f206c6f6e6720666f7220617267756d656e7473", - "0x61727261795f617070656e64", - "0x7374727563745f636f6e737472756374", - "0x656e756d5f696e6974", - "0xd", - "0x6765745f6275696c74696e5f636f737473", - "0xe", - "0x77697468647261775f6761735f616c6c", - "0x12", - "0x4f7574206f6620676173", - "0x496e70757420746f6f2073686f727420666f7220617267756d656e7473", - "0x14", - "0x61727261795f736e617073686f745f706f705f66726f6e74", - "0x16", - "0x6a756d70", - "0x756e626f78", - "0x66656c743235325f616464", - "0x18", - "0x73746f726167655f626173655f616464726573735f636f6e7374", - "0x13f8f977246b9de639fa8cb66b97c7a963aa52dcc226d464b423dadd448247", - "0x73746f726167655f616464726573735f66726f6d5f62617365", - "0x1a", - "0x73746f726167655f726561645f73797363616c6c", - "0x1b", - "0x73746f726167655f77726974655f73797363616c6c", - "0x1c", - "0x1e", - "0x19f", - "0xffffffffffffffff", - "0x63", - "0x54", - "0x24", - "0x19", - "0x20", - "0x21", - "0x22", - "0x23", - "0x25", - "0x46", - "0x26", - "0x27", - "0x28", - "0x29", - "0x2d", - "0x2e", - "0x2f", - "0x30", - "0x2a", - "0x2b", - "0x2c", - "0x31", - "0x3f", - "0x32", - "0x33", - "0x34", - "0x35", - "0x36", - "0x37", - "0x38", - "0x39", - "0x3a", - "0x3b", - "0x3c", - "0x3d", - "0x3e", - "0x40", - "0x41", - "0x42", - "0x43", - "0x44", - "0x45", - "0x47", - "0x48", - "0x49", - "0x4a", - "0x4b", - "0x4c", - "0x4d", - "0x4e", - "0x4f", - "0x50", - "0x51", - "0x52", - "0x53", - "0x55", - "0x56", - "0x57", - "0x58", - "0x59", - "0x5a", - "0x5b", - "0x5c", - "0x5d", - "0x5e", - "0x5f", - "0xc6", - "0x90", - "0xb9", - "0xb2", - "0xdb", - "0xe0", - "0xea", - "0x11c", - "0x116", - "0x132", - "0x14b", - "0x150", - "0x15b", - "0x170", - "0x60", - "0x61", - "0x175", - "0x62", - "0x64", - "0x65", - "0x180", - "0x66", - "0x67", - "0x68", - "0x69", - "0x6a", - "0x6b", - "0x18d", - "0x6c", - "0x199", - "0x6d", - "0x6e", - "0x6f", - "0x70", - "0xd4", - "0xf1", - "0xf5", - "0x124", - "0x138", - "0x13e", - "0x161", - "0x187", - "0x193", - "0xf89", - "0x7060f02090e0d02060a0c060b02070a090606080706060502040203020100", - "0x617061602090e15060d02070a090614060d02090a1302060a021202111006", - "0x70a18061f061e02090e10061d060d02090a1c061b02070a1a02060a021918", - "0x61c060d02090a100624062302090e07060622180621062002090e07060d02", - "0x70a090610062a02090e090607062902090e02280227180626062502090e10", - "0x206063107090632150606310230022f022e2d18062c062b02090e10060d02", - "0x606313806063b0207063a3806063938060637070606361506063534060633", - "0x70606314007063f0706063e10060639090906323d06063107060639023c38", - "0x6063102454406063106060631060744060743180606421406064207060641", - "0x90606371f060639480606330c0906321d0606311d0606421c060642024746", - "0x374a07063f150606394907063f020744060743170606421506064209060639", - "0x100906320906063107060637210606354b060633150906321d0606391d0606", - "0x3306074d06074310060642024e4d0606310c06063102074d0607430706064c", - "0x10060631060734060743340606310207340607430706063b0706064f4d0606", - "0x33380906320607063f0907063f0250340906321c0606311c0606371d060635", - "0x1c060639060748060743480606310207480607431f06064226060635510606", - "0x565506063102545307065206074b0607434b06063102074b06074321060642", - "0x5906074302583d0906325706063b0607570607435706063102075706074302", - "0x606422c0606355a060633140906325906063b060759060743590606310207", - "0x7432c06064259060633570606330607510607435106063102075106074326", - "0x150c075c070602070602025c060202025b06075a0607435a06063102075a06", - "0xc0615023d38075c0614060c0214065c0609060902025c060207023410075d", - "0x380244065c0638063402025c0602070217065e18065c073d0610020c065c06", - "0x3d021f065c06021802025c061c0614021d1c075c0646063d0246065c064406", - "0x224065c06210617024b065c061d061702025c06480614022148075c061f06", - "0x2025c0618061c02025c06020702025f025c07244b0746024b065c064b0644", - "0x260065c06022102025c0626064802264d075c0651061f0251065c0607061d", - "0x259065c0602260257065c065560074d0255065c065506240255065c06024b", - "0x65c061506550200065c060c0615025a065c062c0660022c065c0657590751", - "0x5902025c06020702636261000c0663065c065a06570262065c064d061d0261", - "0x2070268670766655f075c0764150c095a0264065c0664062c0264065c0602", - "0x607061d026b065c06650655026a065c066906610269065c06020002025c06", - "0x706f095c066e6d6c6b0c63026e065c06180624026d065c066a0662026c065c", - "0x672065f02025c0602070274067372065c07710664025f065c065f06150271", - "0x5c0677066802025c06760667027776075c067506650275065c06022102025c", - "0x66f0655027b065c065f0615027a065c0679066a0279065c06780669027806", - "0x25c060207027e7d7c7b0c067e065c067a0657027d065c0670061d027c065c", - "0x65c0670061d0273065c066f06550280065c065f0615027f065c0674066002", - "0x22102025c0618061c02025c06020702828173800c0682065c067f06570281", - "0x2260285065c068483074d0284065c068406240284065c06026f0283065c06", - "0x550288065c066706150287065c066606600266065c06858607510286065c06", - "0x207028b8a89880c068b065c06870657028a065c0607061d0289065c066806", - "0x8d065c060271028c065c06022102025c0638067002025c0617064802025c06", - "0x5c068e8f0751028f065c060226028e065c068d8c074d028d065c068d062402", - "0x607061d0293065c061506550292065c060c06150291065c06900660029006", - "0x2025c0609067002025c06020702945e93920c0694065c06910657025e065c", - "0x297065c069695074d0296065c069606240296065c06026f0295065c060221", - "0x9b065c06100615029a065c069906600299065c06979807510298065c060226", - "0x29e9d9c9b0c069e065c069a0657029d065c0607061d029c065c0634065502", - "0x5c0609063402025c060207023410079f150c075c070602070602025c060202", - "0x5c06021802025c06140614021814075c063d063d023d065c06380638023806", - "0x6460617021c065c0618061702025c06440614024644075c0617063d021706", - "0x70202a0025c071d1c0746020c065c060c0615021c065c061c0644021d065c", - "0x22102025c0648064802481f075c0621061f0221065c0607061d02025c0602", - "0x226024d065c06244b074d0224065c062406240224065c06024b024b065c06", - "0x550255065c060c06150260065c065106600251065c064d2607510226065c06", - "0x207022c5957550c062c065c066006570259065c061f061d0257065c061506", - "0x7a16100075c075a150c095a025a065c065a062c025a065c06025902025c06", - "0x65075c065f066b025f065c066406610264065c06020002025c060207026362", - "0x65c066706620270065c0607061d026f065c0661065502025c0665066c0267", - "0x6a26b065c076a066e0200065c06000615026a6968095c0671706f096d0271", - "0x7472075c066d0674026e065c060221026d065c066b067202025c060207026c", - "0x75c06787707760278065c066e06750277065c0674062402025c0672061c02", - "0x5c067a066802025c06790667027a79075c0675066502025c06760648027675", - "0x6680655027e065c06000615027d065c067c066a027c065c067b0669027b06", - "0x25c0602070273807f7e0c0673065c067d06570280065c0669061d027f065c", - "0x65c0669061d0283065c066806550282065c060006150281065c066c066002", - "0x26f0286065c06022102025c06020702858483820c0685065c068106570284", - "0x7510288065c0602260287065c066686074d0266065c066606240266065c06", - "0x28c065c06630655028b065c06620615028a065c068906600289065c068788", - "0x9067002025c060207028e8d8c8b0c068e065c068a0657028d065c0607061d", - "0x6908f074d0290065c069006240290065c06026f028f065c06022102025c06", - "0x100615025e065c069306600293065c06919207510292065c0602260291065c", - "0x940c0697065c065e06570296065c0607061d0295065c063406550294065c06", - "0x7802025c060207020c06a30907075c070606770206065c0602063402979695", - "0x2070202a406027b0234065c0615067a0210065c060706790215065c060906", - "0x63d067a0210065c060c0679023d065c0638067d0238065c06027c02025c06", - "0x21706a518065c0734067e0214065c061406090214065c061006680234065c", - "0x9021c065c064606730246065c064406800244065c0618067f02025c060207", - "0x25c0617064802025c060207021f1d07061f065c061c0681021d065c061406", - "0x24065c06210681024b065c061406090221065c064806820248065c06027c02", - "0x907070609065c060606830207065c0602061d0206065c06027c02244b0706", - "0x5c0606061d0214065c06020655021015075c060c0685020c065c0607068402", - "0xa644065c073d066e023d3834095c0617181409660217065c06100686021806", - "0x65c060288021d065c06091c0787021c065c0644067202025c060207024606", - "0x5c064806240221065c0602890248065c061f1d0787021d065c061d0624021f", - "0x1506860260065c0638061d0251065c06340655024b065c0621480787024806", - "0x5c0726068b02264d24095c06575560510c8a0257065c064b06240255065c06", - "0x5a066102025c0600064802005a075c0659068c02025c060207022c06a75906", - "0x6550264065c0663068e0263065c066261078d0262065c06027c0261065c06", - "0x5c0602070267655f090667065c0664068f0265065c064d061d025f065c0624", - "0x5c0668068f026a065c064d061d0269065c062406550268065c062c06900202", - "0x46069002025c0609061c02025c0615069102025c060207026f6a6909066f06", - "0x7109066c065c0670068f026b065c0638061d0271065c063406550270065c06", - "0x60906860238065c0606061d0234065c060206550209065c06070684026c6b", - "0x5c060207021806a814065c0710066e0210150c095c063d38340966023d065c", - "0x5c060c06550246065c064406930244065c061706920217065c061406720202", - "0x9402025c060207021f1d1c09061f065c0646065e021d065c0615061d021c06", - "0x624065c0648065e024b065c0615061d0221065c060c06550248065c061806", - "0x675020c065c06027c0209065c060706074d0207065c0602068002244b2109", - "0x9065c06029502025c06070691021015070610065c060c06830215065c0609", - "0xc065c060c06970215065c061506440215065c060218020c065c0609069602", - "0x65c0638069902025c0602070218143d09a9383410095c070c1506020c9802", - "0x2aa06027b021c065c0617069a0246065c0634061d0244065c061006550217", - "0x246065c0614061d0244065c063d0655021d065c0618069b02025c06020702", - "0x21065c071f066e021f065c0648069d0248065c061c069c021c065c061d069a", - "0x5c064d0693024d065c062406920224065c0621067202025c060207024b06ab", - "0x556051090655065c0626065e0260065c0646061d0251065c06440655022606", - "0x22c065c0646061d0259065c064406550257065c064b069402025c06020702", - "0x29502025c0615069102150c075c06070685025a2c5909065a065c0657065e", - "0x3406970238065c063806440238065c0602180234065c061006960210065c06", - "0x27c02025c0602070244171809ac143d075c070934380602159e0234065c06", - "0x6ae021f065c0614061d021d065c063d0655021c065c064606ad0246065c06", - "0x5c061806550221065c064406b002025c0602070202af06027b0248065c061c", - "0x62406b10224065c0648065d0248065c062106ae021f065c0617061d021d06", - "0x7b50251065c064d06b402025c060207022606b34d065c074b06b2024b065c", - "0x259065c061f061d0257065c061d06550255065c066006b60260065c06510c", - "0x5c062606b802025c060c069102025c060207022c595709062c065c065506b7", - "0x626100090662065c065a06b70261065c061f061d0200065c061d0655025a06", - "0x5c060906930209065c0606069202025c060207020706ba06065c070206b902", - "0x71007510210065c06022602025c0602070215060615065c060c065e020c06", - "0x6065c070206bb023d06063d065c0638065e0238065c063406940234065c06", - "0x5c060c06bf020c065c060906be0209065c060606bd02025c060207020706bc", - "0x3406c00234065c06071007510210065c06022602025c060207021506061506", - "0x209070602443d06020c153d06020c183d06063d065c063806bf0238065c06", - "0x60cc202103d073d06c10234150715062d09070602443d06020c153d06020c", - "0x2100907090707c40706024b3d06091d3d0609c309070602483d0609071d3d", - "0x65706c709070602513d0609071c3d060cc60706024b3d06091c3d0609c506", - "0xc9025a065906c8024b" - ], - "sierra_program_debug_info": { - "type_names": [ - [0, "RangeCheck"], - [1, "GasBuiltin"], - [2, "felt252"], - [3, "Array"], - [4, "Snapshot>"], - [5, "core::array::Span::"], - [6, "Unit"], - [7, "core::option::Option::"], - [8, "u32"], - [9, "System"], - [10, "core::panics::Panic"], - [11, "Tuple>"], - [12, "Tuple>"], - [ - 13, - "core::panics::PanicResult::<(core::array::Span::,)>" - ], - [14, "BuiltinCosts"], - [15, "Counter3::Counter3::balance_3::ContractState"], - [16, "Counter3::Counter3::ContractState"], - [17, "Tuple"], - [ - 18, - "core::panics::PanicResult::<(Counter3::Counter3::ContractState, ())>" - ], - [19, "Tuple"], - [20, "core::panics::PanicResult::<(core::felt252,)>"], - [21, "Box"], - [22, "core::option::Option::>"], - [23, "Tuple"], - [ - 24, - "core::panics::PanicResult::<(Counter3::Counter3::balance_3::ContractState, ())>" - ], - [25, "StorageBaseAddress"], - [26, "StorageAddress"], - [ - 27, - "core::result::Result::>" - ], - [28, "core::result::Result::<(), core::array::Array::>"], - [29, "Tuple"], - [30, "core::panics::PanicResult::<((),)>"] - ], - "libfunc_names": [ - [0, "revoke_ap_tracking"], - [1, "withdraw_gas"], - [2, "branch_align"], - [3, "store_temp>"], - [4, "function_call"], - [5, "store_temp"], - [6, "enum_match>"], - [7, "struct_deconstruct>"], - [8, "array_len"], - [9, "snapshot_take"], - [10, "drop"], - [11, "u32_const<0>"], - [12, "rename"], - [13, "store_temp"], - [14, "u32_eq"], - [15, "drop"], - [16, "store_temp"], - [17, "function_call"], - [18, "drop"], - [19, "array_new"], - [ - 20, - "felt252_const<7733229381460288120802334208475838166080759535023995805565484692595>" - ], - [21, "store_temp"], - [22, "array_append"], - [23, "struct_construct"], - [24, "struct_construct>>"], - [ - 25, - "enum_init,)>, 1>" - ], - [26, "store_temp"], - [ - 27, - "store_temp,)>>" - ], - [28, "get_builtin_costs"], - [29, "store_temp"], - [30, "withdraw_gas_all"], - [31, "struct_construct"], - [32, "struct_construct"], - [33, "store_temp"], - [34, "function_call"], - [ - 35, - "enum_match>" - ], - [36, "drop>"], - [37, "snapshot_take>"], - [38, "drop>"], - [39, "struct_construct>"], - [40, "struct_construct>>"], - [ - 41, - "enum_init,)>, 0>" - ], - [42, "felt252_const<375233589013918064796019>"], - [43, "drop>"], - [ - 44, - "felt252_const<1979706721653833758925397712865600297316042839304765459608024204080243>" - ], - [45, "snapshot_take"], - [46, "drop"], - [47, "function_call"], - [48, "enum_match>"], - [49, "struct_deconstruct>"], - [50, "snapshot_take"], - [51, "store_temp>"], - [52, "function_call"], - [53, "array_snapshot_pop_front"], - [ - 54, - "enum_init>, 0>" - ], - [55, "store_temp>>"], - [ - 56, - "store_temp>>" - ], - [57, "jump"], - [58, "struct_construct"], - [ - 59, - "enum_init>, 1>" - ], - [ - 60, - "enum_match>>" - ], - [61, "unbox"], - [62, "rename"], - [63, "enum_init, 0>"], - [64, "store_temp>"], - [65, "enum_init, 1>"], - [66, "store_temp"], - [67, "struct_deconstruct"], - [68, "snapshot_take"], - [69, "store_temp"], - [ - 70, - "function_call" - ], - [71, "felt252_add"], - [72, "felt252_const<3>"], - [73, "felt252_const<1>"], - [ - 74, - "function_call" - ], - [ - 75, - "enum_match>" - ], - [ - 76, - "struct_deconstruct>" - ], - [77, "struct_construct>"], - [ - 78, - "enum_init, 0>" - ], - [ - 79, - "store_temp>" - ], - [ - 80, - "enum_init, 1>" - ], - [81, "drop"], - [82, "struct_construct>"], - [83, "enum_init, 0>"], - [84, "store_temp>"], - [85, "enum_init, 1>"], - [ - 86, - "storage_base_address_const<35288452898658665685716430661979605016082915154569074077194047146435052103>" - ], - [87, "storage_address_from_base"], - [88, "store_temp"], - [89, "storage_read_syscall"], - [ - 90, - "enum_init>, 0>" - ], - [ - 91, - "store_temp>>" - ], - [ - 92, - "enum_init>, 1>" - ], - [ - 93, - "rename>>" - ], - [ - 94, - "function_call::unwrap_syscall>" - ], - [95, "storage_write_syscall"], - [ - 96, - "enum_init>, 0>" - ], - [ - 97, - "store_temp>>" - ], - [ - 98, - "enum_init>, 1>" - ], - [ - 99, - "rename>>" - ], - [ - 100, - "function_call::unwrap_syscall>" - ], - [101, "enum_match>"], - [102, "struct_deconstruct>"], - [ - 103, - "struct_construct>" - ], - [ - 104, - "enum_init, 0>" - ], - [ - 105, - "store_temp>" - ], - [ - 106, - "enum_init, 1>" - ], - [ - 107, - "enum_match>>" - ], - [ - 108, - "enum_match>>" - ], - [109, "struct_construct>"], - [110, "enum_init, 0>"], - [111, "store_temp>"], - [112, "enum_init, 1>"] - ], - "user_func_names": [ - [0, "Counter3::Counter3::__external::increase_balance_3"], - [1, "Counter3::Counter3::__external::get_balance_3"], - [2, "core::Felt252Serde::deserialize"], - [3, "core::starknet::use_system_implicit"], - [4, "Counter3::Counter3::increase_balance_3"], - [5, "Counter3::Counter3::get_balance_3"], - [6, "core::Felt252Serde::serialize"], - [7, "Counter3::Counter3::balance_3::InternalContractStateImpl::read"], - [8, "Counter3::Counter3::balance_3::InternalContractStateImpl::write"], - [ - 9, - "core::starknet::SyscallResultTraitImpl::::unwrap_syscall" - ], - [10, "core::starknet::SyscallResultTraitImpl::<()>::unwrap_syscall"] - ] - }, - "contract_class_version": "0.1.0", - "entry_points_by_type": { - "EXTERNAL": [ - { - "selector": "0xf6c331c5ed8d385d90b6701440a8dae60db11ce6de5a9f3b5f5cd83d3cd388", - "function_idx": 0 - }, - { - "selector": "0x28f4c2012b5ef4f71461a66fc2edbf0f514e10156cbc990e81e49d1effd4cc0", - "function_idx": 1 - } - ], - "L1_HANDLER": [], - "CONSTRUCTOR": [] - }, - "abi": [ - { - "type": "function", - "name": "increase_balance_3", - "inputs": [{ "name": "amount", "type": "core::felt252" }], - "outputs": [], - "state_mutability": "external" - }, - { - "type": "function", - "name": "get_balance_3", - "inputs": [], - "outputs": [{ "type": "core::felt252" }], - "state_mutability": "view" - }, - { - "type": "event", - "name": "Counter3::Counter3::Event", - "kind": "enum", - "variants": [] - } - ] -} diff --git a/starknet-rpc-test/contracts/Counter4/Counter4.cairo b/starknet-rpc-test/contracts/Counter4/Counter4.cairo deleted file mode 100644 index be0284d02b..0000000000 --- a/starknet-rpc-test/contracts/Counter4/Counter4.cairo +++ /dev/null @@ -1,19 +0,0 @@ -#[starknet::contract] -mod Counter4 { - #[storage] - struct Storage { - balance_4: felt252, - } - - // Increases the balance_4 by the given amount. - #[external(v0)] - fn increase_balance_4(ref self: ContractState, amount: felt252) { - self.balance_4.write(self.balance_4.read() + amount + 4 + 1); - } - - // Returns the current balance_4. - #[external(v0)] - fn get_balance_4(self: @ContractState) -> felt252 { - self.balance_4.read() - } -} diff --git a/starknet-rpc-test/contracts/Counter4/Counter4.casm.json b/starknet-rpc-test/contracts/Counter4/Counter4.casm.json deleted file mode 100644 index 2a05bca4bd..0000000000 --- a/starknet-rpc-test/contracts/Counter4/Counter4.casm.json +++ /dev/null @@ -1,579 +0,0 @@ -{ - "prime": "0x800000000000011000000000000000000000000000000000000000000000001", - "compiler_version": "2.1.0", - "bytecode": [ - "0xa0680017fff8000", - "0x7", - "0x482680017ffa8000", - "0xffffffffffffffffffffffffffffa920", - "0x400280007ff97fff", - "0x10780017fff7fff", - "0x6e", - "0x4825800180007ffa", - "0x56e0", - "0x400280007ff97fff", - "0x480a7ffc7fff8000", - "0x480a7ffd7fff8000", - "0x1104800180018000", - "0xe8", - "0x482680017ff98000", - "0x1", - "0x20680017fff7ffd", - "0x55", - "0x48307ffb80007ffc", - "0x4824800180007fff", - "0x0", - "0x20680017fff7fff", - "0x4", - "0x10780017fff7fff", - "0x13", - "0x480a7ffb7fff8000", - "0x1104800180018000", - "0xfe", - "0x40780017fff7fff", - "0x1", - "0x480680017fff8000", - "0x496e70757420746f6f206c6f6e6720666f7220617267756d656e7473", - "0x400080007ffe7fff", - "0x48127ff77fff8000", - "0x48127fe67fff8000", - "0x48127ffb7fff8000", - "0x480680017fff8000", - "0x1", - "0x48127ffa7fff8000", - "0x482480017ff98000", - "0x1", - "0x208b7fff7fff7ffe", - "0x1104800180018000", - "0x1b4", - "0x482480017fff8000", - "0x1b3", - "0x480080007fff8000", - "0xa0680017fff8000", - "0x9", - "0x4824800180007fe8", - "0x0", - "0x482480017fff8000", - "0x100000000000000000000000000000000", - "0x400080007ff67fff", - "0x10780017fff7fff", - "0x20", - "0x4824800180007fe8", - "0x0", - "0x400080007ff77fff", - "0x48127fff7fff8000", - "0x480a7ffb7fff8000", - "0x48127ff47fff8000", - "0x1104800180018000", - "0xdc", - "0x482480017fbc8000", - "0x1", - "0x20680017fff7ffc", - "0xc", - "0x40780017fff7fff", - "0x1", - "0x48127ffe7fff8000", - "0x48127ff87fff8000", - "0x48127ff87fff8000", - "0x480680017fff8000", - "0x0", - "0x48127ffb7fff8000", - "0x48127ffa7fff8000", - "0x208b7fff7fff7ffe", - "0x48127fff7fff8000", - "0x48127ff97fff8000", - "0x48127ff97fff8000", - "0x480680017fff8000", - "0x1", - "0x48127ff97fff8000", - "0x48127ff97fff8000", - "0x208b7fff7fff7ffe", - "0x40780017fff7fff", - "0x1", - "0x480680017fff8000", - "0x4f7574206f6620676173", - "0x400080007ffe7fff", - "0x482480017ff48000", - "0x1", - "0x48127fe37fff8000", - "0x480a7ffb7fff8000", - "0x480680017fff8000", - "0x1", - "0x48127ffa7fff8000", - "0x482480017ff98000", - "0x1", - "0x208b7fff7fff7ffe", - "0x40780017fff7fff", - "0x1", - "0x480680017fff8000", - "0x496e70757420746f6f2073686f727420666f7220617267756d656e7473", - "0x400080007ffe7fff", - "0x48127ffd7fff8000", - "0x48127fec7fff8000", - "0x480a7ffb7fff8000", - "0x480680017fff8000", - "0x1", - "0x48127ffa7fff8000", - "0x482480017ff98000", - "0x1", - "0x208b7fff7fff7ffe", - "0x40780017fff7fff", - "0x1", - "0x480680017fff8000", - "0x4f7574206f6620676173", - "0x400080007ffe7fff", - "0x482680017ff98000", - "0x1", - "0x480a7ffa7fff8000", - "0x480a7ffb7fff8000", - "0x480680017fff8000", - "0x1", - "0x48127ffa7fff8000", - "0x482480017ff98000", - "0x1", - "0x208b7fff7fff7ffe", - "0xa0680017fff8000", - "0x7", - "0x482680017ffa8000", - "0xffffffffffffffffffffffffffffe2f0", - "0x400280007ff97fff", - "0x10780017fff7fff", - "0x5e", - "0x4825800180007ffa", - "0x1d10", - "0x400280007ff97fff", - "0x48297ffc80007ffd", - "0x482680017ff98000", - "0x1", - "0x4824800180007ffe", - "0x0", - "0x20680017fff7fff", - "0x4", - "0x10780017fff7fff", - "0x13", - "0x480a7ffb7fff8000", - "0x1104800180018000", - "0x82", - "0x40780017fff7fff", - "0x1", - "0x480680017fff8000", - "0x496e70757420746f6f206c6f6e6720666f7220617267756d656e7473", - "0x400080007ffe7fff", - "0x48127ff87fff8000", - "0x48127ff57fff8000", - "0x48127ffb7fff8000", - "0x480680017fff8000", - "0x1", - "0x48127ffa7fff8000", - "0x482480017ff98000", - "0x1", - "0x208b7fff7fff7ffe", - "0x1104800180018000", - "0x138", - "0x482480017fff8000", - "0x137", - "0x480080007fff8000", - "0xa0680017fff8000", - "0x9", - "0x4824800180007ff7", - "0x0", - "0x482480017fff8000", - "0x100000000000000000000000000000000", - "0x400080007ff77fff", - "0x10780017fff7fff", - "0x24", - "0x4824800180007ff7", - "0x0", - "0x400080007ff87fff", - "0x48127fff7fff8000", - "0x480a7ffb7fff8000", - "0x1104800180018000", - "0x8b", - "0x482480017fd88000", - "0x1", - "0x20680017fff7ffc", - "0x11", - "0x40780017fff7fff", - "0x1", - "0x48127ffd7fff8000", - "0x48127ffe7fff8000", - "0x48127ffd7fff8000", - "0x1104800180018000", - "0x95", - "0x48127ff77fff8000", - "0x48127ff17fff8000", - "0x48127ff17fff8000", - "0x480680017fff8000", - "0x0", - "0x48127ffa7fff8000", - "0x48127ffa7fff8000", - "0x208b7fff7fff7ffe", - "0x48127fff7fff8000", - "0x48127ff97fff8000", - "0x48127ff97fff8000", - "0x480680017fff8000", - "0x1", - "0x48127ff97fff8000", - "0x48127ff97fff8000", - "0x208b7fff7fff7ffe", - "0x40780017fff7fff", - "0x1", - "0x480680017fff8000", - "0x4f7574206f6620676173", - "0x400080007ffe7fff", - "0x482480017ff58000", - "0x1", - "0x48127ff27fff8000", - "0x480a7ffb7fff8000", - "0x480680017fff8000", - "0x1", - "0x48127ffa7fff8000", - "0x482480017ff98000", - "0x1", - "0x208b7fff7fff7ffe", - "0x40780017fff7fff", - "0x1", - "0x480680017fff8000", - "0x4f7574206f6620676173", - "0x400080007ffe7fff", - "0x482680017ff98000", - "0x1", - "0x480a7ffa7fff8000", - "0x480a7ffb7fff8000", - "0x480680017fff8000", - "0x1", - "0x48127ffa7fff8000", - "0x482480017ff98000", - "0x1", - "0x208b7fff7fff7ffe", - "0x48297ffc80007ffd", - "0x20680017fff7fff", - "0x4", - "0x10780017fff7fff", - "0xa", - "0x482680017ffc8000", - "0x1", - "0x480a7ffd7fff8000", - "0x480680017fff8000", - "0x0", - "0x480a7ffc7fff8000", - "0x10780017fff7fff", - "0x8", - "0x480a7ffc7fff8000", - "0x480a7ffd7fff8000", - "0x480680017fff8000", - "0x1", - "0x480680017fff8000", - "0x0", - "0x48127ffc7fff8000", - "0x48127ffc7fff8000", - "0x20680017fff7ffc", - "0x8", - "0x48127ffe7fff8000", - "0x48127ffe7fff8000", - "0x480680017fff8000", - "0x0", - "0x480080007ffa8000", - "0x208b7fff7fff7ffe", - "0x48127ffe7fff8000", - "0x48127ffe7fff8000", - "0x480680017fff8000", - "0x1", - "0x480680017fff8000", - "0x0", - "0x208b7fff7fff7ffe", - "0x480a7ffd7fff8000", - "0x208b7fff7fff7ffe", - "0x480a7ffb7fff8000", - "0x480a7ffc7fff8000", - "0x1104800180018000", - "0x42", - "0x20680017fff7ffd", - "0x1d", - "0x48287ffd7fff8000", - "0x482480017fff8000", - "0x4", - "0x48127ff97fff8000", - "0x48127ff97fff8000", - "0x482480017ffd8000", - "0x1", - "0x1104800180018000", - "0x68", - "0x20680017fff7ffd", - "0xb", - "0x48127ffb7fff8000", - "0x48127ffb7fff8000", - "0x480680017fff8000", - "0x0", - "0x480680017fff8000", - "0x0", - "0x480680017fff8000", - "0x0", - "0x208b7fff7fff7ffe", - "0x48127ffb7fff8000", - "0x48127ffb7fff8000", - "0x480680017fff8000", - "0x1", - "0x48127ffb7fff8000", - "0x48127ffb7fff8000", - "0x208b7fff7fff7ffe", - "0x40780017fff7fff", - "0x1a", - "0x48127fe17fff8000", - "0x48127fe17fff8000", - "0x480680017fff8000", - "0x1", - "0x48127fe17fff8000", - "0x48127fe17fff8000", - "0x208b7fff7fff7ffe", - "0x480a7ffc7fff8000", - "0x480a7ffd7fff8000", - "0x1104800180018000", - "0x18", - "0x20680017fff7ffd", - "0xa", - "0x48127ffb7fff8000", - "0x48127ffb7fff8000", - "0x480680017fff8000", - "0x0", - "0x480680017fff8000", - "0x0", - "0x48127ffb7fff8000", - "0x208b7fff7fff7ffe", - "0x48127ffb7fff8000", - "0x48127ffb7fff8000", - "0x480680017fff8000", - "0x1", - "0x48127ffb7fff8000", - "0x48127ffb7fff8000", - "0x208b7fff7fff7ffe", - "0x400380007ffd7ffb", - "0x480a7ffc7fff8000", - "0x482680017ffd8000", - "0x1", - "0x208b7fff7fff7ffe", - "0x480680017fff8000", - "0x0", - "0x480680017fff8000", - "0xb3633fe1a3145fd8916511eec02c76561b27a40ed2f7320e18c0d6659f8611", - "0x480680017fff8000", - "0x53746f7261676552656164", - "0x400280007ffd7fff", - "0x400380017ffd7ffc", - "0x400280027ffd7ffd", - "0x400280037ffd7ffe", - "0x480280057ffd8000", - "0x20680017fff7fff", - "0xc", - "0x480280047ffd8000", - "0x482680017ffd8000", - "0x7", - "0x480680017fff8000", - "0x0", - "0x480680017fff8000", - "0x0", - "0x480280067ffd8000", - "0x10780017fff7fff", - "0x9", - "0x480280047ffd8000", - "0x482680017ffd8000", - "0x8", - "0x480680017fff8000", - "0x1", - "0x480280067ffd8000", - "0x480280077ffd8000", - "0x1104800180018000", - "0x47", - "0x20680017fff7ffd", - "0xa", - "0x48127ff67fff8000", - "0x48127ff67fff8000", - "0x480680017fff8000", - "0x0", - "0x480680017fff8000", - "0x0", - "0x48127ffb7fff8000", - "0x208b7fff7fff7ffe", - "0x48127ff67fff8000", - "0x48127ff67fff8000", - "0x480680017fff8000", - "0x1", - "0x48127ffb7fff8000", - "0x48127ffb7fff8000", - "0x208b7fff7fff7ffe", - "0x480680017fff8000", - "0x0", - "0x480680017fff8000", - "0xb3633fe1a3145fd8916511eec02c76561b27a40ed2f7320e18c0d6659f8611", - "0x480680017fff8000", - "0x53746f726167655772697465", - "0x400280007ffc7fff", - "0x400380017ffc7ffb", - "0x400280027ffc7ffd", - "0x400280037ffc7ffe", - "0x400380047ffc7ffd", - "0x480280067ffc8000", - "0x20680017fff7fff", - "0xd", - "0x480280057ffc8000", - "0x482680017ffc8000", - "0x7", - "0x480680017fff8000", - "0x0", - "0x480680017fff8000", - "0x0", - "0x480680017fff8000", - "0x0", - "0x10780017fff7fff", - "0x9", - "0x480280057ffc8000", - "0x482680017ffc8000", - "0x9", - "0x480680017fff8000", - "0x1", - "0x480280077ffc8000", - "0x480280087ffc8000", - "0x1104800180018000", - "0x21", - "0x20680017fff7ffd", - "0xb", - "0x48127ff67fff8000", - "0x48127ff67fff8000", - "0x480680017fff8000", - "0x0", - "0x480680017fff8000", - "0x0", - "0x480680017fff8000", - "0x0", - "0x208b7fff7fff7ffe", - "0x48127ff67fff8000", - "0x48127ff67fff8000", - "0x480680017fff8000", - "0x1", - "0x48127ffb7fff8000", - "0x48127ffb7fff8000", - "0x208b7fff7fff7ffe", - "0x20780017fff7ffb", - "0x8", - "0x480680017fff8000", - "0x0", - "0x480680017fff8000", - "0x0", - "0x480a7ffd7fff8000", - "0x208b7fff7fff7ffe", - "0x480680017fff8000", - "0x1", - "0x480a7ffc7fff8000", - "0x480a7ffd7fff8000", - "0x208b7fff7fff7ffe", - "0x20780017fff7ffb", - "0x9", - "0x480680017fff8000", - "0x0", - "0x480680017fff8000", - "0x0", - "0x480680017fff8000", - "0x0", - "0x208b7fff7fff7ffe", - "0x480680017fff8000", - "0x1", - "0x480a7ffc7fff8000", - "0x480a7ffd7fff8000", - "0x208b7fff7fff7ffe" - ], - "hints": [ - [ - 0, - [ - { - "TestLessThanOrEqual": { - "lhs": { "Immediate": "0x56e0" }, - "rhs": { "Deref": { "register": "FP", "offset": -6 } }, - "dst": { "register": "AP", "offset": 0 } - } - } - ] - ], - [28, [{ "AllocSegment": { "dst": { "register": "AP", "offset": 0 } } }]], - [ - 47, - [ - { - "TestLessThanOrEqual": { - "lhs": { "Immediate": "0x0" }, - "rhs": { "Deref": { "register": "AP", "offset": -23 } }, - "dst": { "register": "AP", "offset": 0 } - } - } - ] - ], - [68, [{ "AllocSegment": { "dst": { "register": "AP", "offset": 0 } } }]], - [86, [{ "AllocSegment": { "dst": { "register": "AP", "offset": 0 } } }]], - [101, [{ "AllocSegment": { "dst": { "register": "AP", "offset": 0 } } }]], - [115, [{ "AllocSegment": { "dst": { "register": "AP", "offset": 0 } } }]], - [ - 130, - [ - { - "TestLessThanOrEqual": { - "lhs": { "Immediate": "0x1d10" }, - "rhs": { "Deref": { "register": "FP", "offset": -6 } }, - "dst": { "register": "AP", "offset": 0 } - } - } - ] - ], - [152, [{ "AllocSegment": { "dst": { "register": "AP", "offset": 0 } } }]], - [ - 171, - [ - { - "TestLessThanOrEqual": { - "lhs": { "Immediate": "0x0" }, - "rhs": { "Deref": { "register": "AP", "offset": -8 } }, - "dst": { "register": "AP", "offset": 0 } - } - } - ] - ], - [191, [{ "AllocSegment": { "dst": { "register": "AP", "offset": 0 } } }]], - [214, [{ "AllocSegment": { "dst": { "register": "AP", "offset": 0 } } }]], - [229, [{ "AllocSegment": { "dst": { "register": "AP", "offset": 0 } } }]], - [ - 360, - [ - { - "SystemCall": { - "system": { "Deref": { "register": "FP", "offset": -3 } } - } - } - ] - ], - [ - 410, - [ - { - "SystemCall": { - "system": { "Deref": { "register": "FP", "offset": -4 } } - } - } - ] - ] - ], - "entry_points_by_type": { - "EXTERNAL": [ - { - "selector": "0xe5732e1abf2909f924739d35ad19184f11cff2efc7bf0b7693fe8837f3ac4c", - "offset": 130, - "builtins": ["range_check"] - }, - { - "selector": "0x354216d012194965ac6e58f1e42de318f61ca46953301e5bb9716250d532058", - "offset": 0, - "builtins": ["range_check"] - } - ], - "L1_HANDLER": [], - "CONSTRUCTOR": [] - } -} diff --git a/starknet-rpc-test/contracts/Counter4/Counter4.sierra.json b/starknet-rpc-test/contracts/Counter4/Counter4.sierra.json deleted file mode 100644 index 1853983bfd..0000000000 --- a/starknet-rpc-test/contracts/Counter4/Counter4.sierra.json +++ /dev/null @@ -1,661 +0,0 @@ -{ - "sierra_program": [ - "0x1", - "0x3", - "0x0", - "0x2", - "0x1", - "0x0", - "0xca", - "0x36", - "0x1f", - "0x52616e6765436865636b", - "0x0", - "0x4761734275696c74696e", - "0x66656c74323532", - "0x4172726179", - "0x1", - "0x2", - "0x536e617073686f74", - "0x3", - "0x537472756374", - "0x1baeba72e79e9db2587cf44fedb2f3700b2075a5e8e39a562584862c4b71f62", - "0x4", - "0x2ee1e2b1b89f8c495f200e4956278a4d47395fe262f27b52e5865c9524c08c3", - "0x456e756d", - "0x11c6d8087e00642489f92d2821ad6ebd6532ad1a3b6d12833da6d6810391511", - "0x6", - "0x753332", - "0x53797374656d", - "0x16a4c8d7c05909052238a862d8cc3e7975bf05a07b3a69c6b28951083a6d672", - "0xa", - "0x5", - "0x9931c641b913035ae674b400b61a51476d506bbe8bba2ff8a6272790aba9e6", - "0xc", - "0xb", - "0x4275696c74696e436f737473", - "0x19f41788e75f73141fc2e2624c2e398a7769e10026dcf2fd7b3fdbf256180f2", - "0x27498ba833e1219d17251edae00ac126910e4e81045c840bc93f2a45c8d0bd", - "0xf", - "0x10", - "0x36c281b09357dd15c81f0055a2a3485290180ece418bf8fea32eec61539c005", - "0x11", - "0x10203be321c62a7bd4c060d69539c1fbe065baa9e253c74d2cc48be163e259", - "0x13", - "0x426f78", - "0x29d7d57c04a880978e7b3689f6218e507f3be17588744b58dc17762447ad0e7", - "0x15", - "0xa0edc028aaa2fb447bbaca46a2defedfa82c42a7cb5a62a224841bfbf88ddb", - "0x17", - "0x53746f726167654261736541646472657373", - "0x53746f7261676541646472657373", - "0x90d0203c41ad646d024845257a6eceb2f8b59b29ce7420dd518053d2edeedc", - "0x101dc0399934cc08fa0d6f6f2daead4e4a38cabeea1c743e1fc28d2d6e58e99", - "0xcc5e86243f861d2d64b08c35db21013e773ac5cf10097946fe0011304886d5", - "0x1d", - "0x71", - "0x7265766f6b655f61705f747261636b696e67", - "0x77697468647261775f676173", - "0x6272616e63685f616c69676e", - "0x73746f72655f74656d70", - "0x66756e6374696f6e5f63616c6c", - "0x656e756d5f6d61746368", - "0x7", - "0x7374727563745f6465636f6e737472756374", - "0x61727261795f6c656e", - "0x736e617073686f745f74616b65", - "0x8", - "0x64726f70", - "0x7533325f636f6e7374", - "0x72656e616d65", - "0x7533325f6571", - "0x9", - "0x61727261795f6e6577", - "0x66656c743235325f636f6e7374", - "0x496e70757420746f6f206c6f6e6720666f7220617267756d656e7473", - "0x61727261795f617070656e64", - "0x7374727563745f636f6e737472756374", - "0x656e756d5f696e6974", - "0xd", - "0x6765745f6275696c74696e5f636f737473", - "0xe", - "0x77697468647261775f6761735f616c6c", - "0x12", - "0x4f7574206f6620676173", - "0x496e70757420746f6f2073686f727420666f7220617267756d656e7473", - "0x14", - "0x61727261795f736e617073686f745f706f705f66726f6e74", - "0x16", - "0x6a756d70", - "0x756e626f78", - "0x66656c743235325f616464", - "0x18", - "0x73746f726167655f626173655f616464726573735f636f6e7374", - "0xb3633fe1a3145fd8916511eec02c76561b27a40ed2f7320e18c0d6659f8611", - "0x73746f726167655f616464726573735f66726f6d5f62617365", - "0x1a", - "0x73746f726167655f726561645f73797363616c6c", - "0x1b", - "0x73746f726167655f77726974655f73797363616c6c", - "0x1c", - "0x1e", - "0x19f", - "0xffffffffffffffff", - "0x63", - "0x54", - "0x24", - "0x19", - "0x20", - "0x21", - "0x22", - "0x23", - "0x25", - "0x46", - "0x26", - "0x27", - "0x28", - "0x29", - "0x2d", - "0x2e", - "0x2f", - "0x30", - "0x2a", - "0x2b", - "0x2c", - "0x31", - "0x3f", - "0x32", - "0x33", - "0x34", - "0x35", - "0x36", - "0x37", - "0x38", - "0x39", - "0x3a", - "0x3b", - "0x3c", - "0x3d", - "0x3e", - "0x40", - "0x41", - "0x42", - "0x43", - "0x44", - "0x45", - "0x47", - "0x48", - "0x49", - "0x4a", - "0x4b", - "0x4c", - "0x4d", - "0x4e", - "0x4f", - "0x50", - "0x51", - "0x52", - "0x53", - "0x55", - "0x56", - "0x57", - "0x58", - "0x59", - "0x5a", - "0x5b", - "0x5c", - "0x5d", - "0x5e", - "0x5f", - "0xc6", - "0x90", - "0xb9", - "0xb2", - "0xdb", - "0xe0", - "0xea", - "0x11c", - "0x116", - "0x132", - "0x14b", - "0x150", - "0x15b", - "0x170", - "0x60", - "0x61", - "0x175", - "0x62", - "0x64", - "0x65", - "0x180", - "0x66", - "0x67", - "0x68", - "0x69", - "0x6a", - "0x6b", - "0x18d", - "0x6c", - "0x199", - "0x6d", - "0x6e", - "0x6f", - "0x70", - "0xd4", - "0xf1", - "0xf5", - "0x124", - "0x138", - "0x13e", - "0x161", - "0x187", - "0x193", - "0xf89", - "0x7060f02090e0d02060a0c060b02070a090606080706060502040203020100", - "0x617061602090e15060d02070a090614060d02090a1302060a021202111006", - "0x70a18061f061e02090e10061d060d02090a1c061b02070a1a02060a021918", - "0x61c060d02090a100624062302090e07060622180621062002090e07060d02", - "0x70a090610062a02090e090607062902090e02280227180626062502090e10", - "0x206063107090632150606310230022f022e2d18062c062b02090e10060d02", - "0x606313806063b0207063a3806063938060637070606361506063534060633", - "0x70606314007063f0706063e10060639090906323d06063107060639023c38", - "0x6063102454406063106060631060744060743180606421406064207060641", - "0x90606371f060639480606330c0906321d0606311d0606421c060642024746", - "0x374a07063f150606394907063f020744060743170606421506064209060639", - "0x100906320906063107060637210606354b060633150906321d0606391d0606", - "0x3306074d06074310060642024e4d0606310c06063102074d0607430706064c", - "0x10060631060734060743340606310207340607430706063b0706064f4d0606", - "0x33380906320607063f0c07063f0250340906321c0606311c0606371d060635", - "0x1c060639060748060743480606310207480607431f06064226060635510606", - "0x565506063102545307065206074b0607434b06063102074b06074321060642", - "0x5906074302583d0906325706063b0607570607435706063102075706074302", - "0x606422c0606355a060633140906325906063b060759060743590606310207", - "0x7432c06064259060633570606330607510607435106063102075106074326", - "0x150c075c070602070602025c060202025b06075a0607435a06063102075a06", - "0xc0615023d38075c0614060c0214065c0609060902025c060207023410075d", - "0x380244065c0638063402025c0602070217065e18065c073d0610020c065c06", - "0x3d021f065c06021802025c061c0614021d1c075c0646063d0246065c064406", - "0x224065c06210617024b065c061d061702025c06480614022148075c061f06", - "0x2025c0618061c02025c06020702025f025c07244b0746024b065c064b0644", - "0x260065c06022102025c0626064802264d075c0651061f0251065c0607061d", - "0x259065c0602260257065c065560074d0255065c065506240255065c06024b", - "0x65c061506550200065c060c0615025a065c062c0660022c065c0657590751", - "0x5902025c06020702636261000c0663065c065a06570262065c064d061d0261", - "0x2070268670766655f075c0764150c095a0264065c0664062c0264065c0602", - "0x607061d026b065c06650655026a065c066906610269065c06020002025c06", - "0x706f095c066e6d6c6b0c63026e065c06180624026d065c066a0662026c065c", - "0x672065f02025c0602070274067372065c07710664025f065c065f06150271", - "0x5c0677066802025c06760667027776075c067506650275065c06022102025c", - "0x66f0655027b065c065f0615027a065c0679066a0279065c06780669027806", - "0x25c060207027e7d7c7b0c067e065c067a0657027d065c0670061d027c065c", - "0x65c0670061d0273065c066f06550280065c065f0615027f065c0674066002", - "0x22102025c0618061c02025c06020702828173800c0682065c067f06570281", - "0x2260285065c068483074d0284065c068406240284065c06026f0283065c06", - "0x550288065c066706150287065c066606600266065c06858607510286065c06", - "0x207028b8a89880c068b065c06870657028a065c0607061d0289065c066806", - "0x8d065c060271028c065c06022102025c0638067002025c0617064802025c06", - "0x5c068e8f0751028f065c060226028e065c068d8c074d028d065c068d062402", - "0x607061d0293065c061506550292065c060c06150291065c06900660029006", - "0x2025c0609067002025c06020702945e93920c0694065c06910657025e065c", - "0x297065c069695074d0296065c069606240296065c06026f0295065c060221", - "0x9b065c06100615029a065c069906600299065c06979807510298065c060226", - "0x29e9d9c9b0c069e065c069a0657029d065c0607061d029c065c0634065502", - "0x5c0609063402025c060207023410079f150c075c070602070602025c060202", - "0x5c06021802025c06140614021814075c063d063d023d065c06380638023806", - "0x6460617021c065c0618061702025c06440614024644075c0617063d021706", - "0x70202a0025c071d1c0746020c065c060c0615021c065c061c0644021d065c", - "0x22102025c0648064802481f075c0621061f0221065c0607061d02025c0602", - "0x226024d065c06244b074d0224065c062406240224065c06024b024b065c06", - "0x550255065c060c06150260065c065106600251065c064d2607510226065c06", - "0x207022c5957550c062c065c066006570259065c061f061d0257065c061506", - "0x7a16100075c075a150c095a025a065c065a062c025a065c06025902025c06", - "0x65075c065f066b025f065c066406610264065c06020002025c060207026362", - "0x65c066706620270065c0607061d026f065c0661065502025c0665066c0267", - "0x6a26b065c076a066e0200065c06000615026a6968095c0671706f096d0271", - "0x7472075c066d0674026e065c060221026d065c066b067202025c060207026c", - "0x75c06787707760278065c066e06750277065c0674062402025c0672061c02", - "0x5c067a066802025c06790667027a79075c0675066502025c06760648027675", - "0x6680655027e065c06000615027d065c067c066a027c065c067b0669027b06", - "0x25c0602070273807f7e0c0673065c067d06570280065c0669061d027f065c", - "0x65c0669061d0283065c066806550282065c060006150281065c066c066002", - "0x26f0286065c06022102025c06020702858483820c0685065c068106570284", - "0x7510288065c0602260287065c066686074d0266065c066606240266065c06", - "0x28c065c06630655028b065c06620615028a065c068906600289065c068788", - "0x9067002025c060207028e8d8c8b0c068e065c068a0657028d065c0607061d", - "0x6908f074d0290065c069006240290065c06026f028f065c06022102025c06", - "0x100615025e065c069306600293065c06919207510292065c0602260291065c", - "0x940c0697065c065e06570296065c0607061d0295065c063406550294065c06", - "0x7802025c060207020c06a30907075c070606770206065c0602063402979695", - "0x2070202a406027b0234065c0615067a0210065c060706790215065c060906", - "0x63d067a0210065c060c0679023d065c0638067d0238065c06027c02025c06", - "0x21706a518065c0734067e0214065c061406090214065c061006680234065c", - "0x9021c065c064606730246065c064406800244065c0618067f02025c060207", - "0x25c0617064802025c060207021f1d07061f065c061c0681021d065c061406", - "0x24065c06210681024b065c061406090221065c064806820248065c06027c02", - "0x907070609065c060606830207065c0602061d0206065c06027c02244b0706", - "0x5c0606061d0214065c06020655021015075c060c0685020c065c0607068402", - "0xa644065c073d066e023d3834095c0617181409660217065c06100686021806", - "0x65c060288021d065c06091c0787021c065c0644067202025c060207024606", - "0x5c064806240221065c0602890248065c061f1d0787021d065c061d0624021f", - "0x1506860260065c0638061d0251065c06340655024b065c0621480787024806", - "0x5c0726068b02264d24095c06575560510c8a0257065c064b06240255065c06", - "0x5a066102025c0600064802005a075c0659068c02025c060207022c06a75906", - "0x6550264065c0663068e0263065c066261078d0262065c06027c0261065c06", - "0x5c0602070267655f090667065c0664068f0265065c064d061d025f065c0624", - "0x5c0668068f026a065c064d061d0269065c062406550268065c062c06900202", - "0x46069002025c0609061c02025c0615069102025c060207026f6a6909066f06", - "0x7109066c065c0670068f026b065c0638061d0271065c063406550270065c06", - "0x60906860238065c0606061d0234065c060206550209065c06070684026c6b", - "0x5c060207021806a814065c0710066e0210150c095c063d38340966023d065c", - "0x5c060c06550246065c064406930244065c061706920217065c061406720202", - "0x9402025c060207021f1d1c09061f065c0646065e021d065c0615061d021c06", - "0x624065c0648065e024b065c0615061d0221065c060c06550248065c061806", - "0x675020c065c06027c0209065c060706074d0207065c0602068002244b2109", - "0x9065c06029502025c06070691021015070610065c060c06830215065c0609", - "0xc065c060c06970215065c061506440215065c060218020c065c0609069602", - "0x65c0638069902025c0602070218143d09a9383410095c070c1506020c9802", - "0x2aa06027b021c065c0617069a0246065c0634061d0244065c061006550217", - "0x246065c0614061d0244065c063d0655021d065c0618069b02025c06020702", - "0x21065c071f066e021f065c0648069d0248065c061c069c021c065c061d069a", - "0x5c064d0693024d065c062406920224065c0621067202025c060207024b06ab", - "0x556051090655065c0626065e0260065c0646061d0251065c06440655022606", - "0x22c065c0646061d0259065c064406550257065c064b069402025c06020702", - "0x29502025c0615069102150c075c06070685025a2c5909065a065c0657065e", - "0x3406970238065c063806440238065c0602180234065c061006960210065c06", - "0x27c02025c0602070244171809ac143d075c070934380602159e0234065c06", - "0x6ae021f065c0614061d021d065c063d0655021c065c064606ad0246065c06", - "0x5c061806550221065c064406b002025c0602070202af06027b0248065c061c", - "0x62406b10224065c0648065d0248065c062106ae021f065c0617061d021d06", - "0x7b50251065c064d06b402025c060207022606b34d065c074b06b2024b065c", - "0x259065c061f061d0257065c061d06550255065c066006b60260065c06510c", - "0x5c062606b802025c060c069102025c060207022c595709062c065c065506b7", - "0x626100090662065c065a06b70261065c061f061d0200065c061d0655025a06", - "0x5c060906930209065c0606069202025c060207020706ba06065c070206b902", - "0x71007510210065c06022602025c0602070215060615065c060c065e020c06", - "0x6065c070206bb023d06063d065c0638065e0238065c063406940234065c06", - "0x5c060c06bf020c065c060906be0209065c060606bd02025c060207020706bc", - "0x3406c00234065c06071007510210065c06022602025c060207021506061506", - "0x209070602443d06020c153d06020c183d06063d065c063806bf0238065c06", - "0x60cc202103d073d06c10234150715062d09070602443d06020c153d06020c", - "0x2100907090707c40706024b3d06091d3d0609c309070602483d0609071d3d", - "0x65706c709070602513d0609071c3d060cc60706024b3d06091c3d0609c506", - "0xc9025a065906c8024b" - ], - "sierra_program_debug_info": { - "type_names": [ - [0, "RangeCheck"], - [1, "GasBuiltin"], - [2, "felt252"], - [3, "Array"], - [4, "Snapshot>"], - [5, "core::array::Span::"], - [6, "Unit"], - [7, "core::option::Option::"], - [8, "u32"], - [9, "System"], - [10, "core::panics::Panic"], - [11, "Tuple>"], - [12, "Tuple>"], - [ - 13, - "core::panics::PanicResult::<(core::array::Span::,)>" - ], - [14, "BuiltinCosts"], - [15, "Counter4::Counter4::balance_4::ContractState"], - [16, "Counter4::Counter4::ContractState"], - [17, "Tuple"], - [ - 18, - "core::panics::PanicResult::<(Counter4::Counter4::ContractState, ())>" - ], - [19, "Tuple"], - [20, "core::panics::PanicResult::<(core::felt252,)>"], - [21, "Box"], - [22, "core::option::Option::>"], - [23, "Tuple"], - [ - 24, - "core::panics::PanicResult::<(Counter4::Counter4::balance_4::ContractState, ())>" - ], - [25, "StorageBaseAddress"], - [26, "StorageAddress"], - [ - 27, - "core::result::Result::>" - ], - [28, "core::result::Result::<(), core::array::Array::>"], - [29, "Tuple"], - [30, "core::panics::PanicResult::<((),)>"] - ], - "libfunc_names": [ - [0, "revoke_ap_tracking"], - [1, "withdraw_gas"], - [2, "branch_align"], - [3, "store_temp>"], - [4, "function_call"], - [5, "store_temp"], - [6, "enum_match>"], - [7, "struct_deconstruct>"], - [8, "array_len"], - [9, "snapshot_take"], - [10, "drop"], - [11, "u32_const<0>"], - [12, "rename"], - [13, "store_temp"], - [14, "u32_eq"], - [15, "drop"], - [16, "store_temp"], - [17, "function_call"], - [18, "drop"], - [19, "array_new"], - [ - 20, - "felt252_const<7733229381460288120802334208475838166080759535023995805565484692595>" - ], - [21, "store_temp"], - [22, "array_append"], - [23, "struct_construct"], - [24, "struct_construct>>"], - [ - 25, - "enum_init,)>, 1>" - ], - [26, "store_temp"], - [ - 27, - "store_temp,)>>" - ], - [28, "get_builtin_costs"], - [29, "store_temp"], - [30, "withdraw_gas_all"], - [31, "struct_construct"], - [32, "struct_construct"], - [33, "store_temp"], - [34, "function_call"], - [ - 35, - "enum_match>" - ], - [36, "drop>"], - [37, "snapshot_take>"], - [38, "drop>"], - [39, "struct_construct>"], - [40, "struct_construct>>"], - [ - 41, - "enum_init,)>, 0>" - ], - [42, "felt252_const<375233589013918064796019>"], - [43, "drop>"], - [ - 44, - "felt252_const<1979706721653833758925397712865600297316042839304765459608024204080243>" - ], - [45, "snapshot_take"], - [46, "drop"], - [47, "function_call"], - [48, "enum_match>"], - [49, "struct_deconstruct>"], - [50, "snapshot_take"], - [51, "store_temp>"], - [52, "function_call"], - [53, "array_snapshot_pop_front"], - [ - 54, - "enum_init>, 0>" - ], - [55, "store_temp>>"], - [ - 56, - "store_temp>>" - ], - [57, "jump"], - [58, "struct_construct"], - [ - 59, - "enum_init>, 1>" - ], - [ - 60, - "enum_match>>" - ], - [61, "unbox"], - [62, "rename"], - [63, "enum_init, 0>"], - [64, "store_temp>"], - [65, "enum_init, 1>"], - [66, "store_temp"], - [67, "struct_deconstruct"], - [68, "snapshot_take"], - [69, "store_temp"], - [ - 70, - "function_call" - ], - [71, "felt252_add"], - [72, "felt252_const<4>"], - [73, "felt252_const<1>"], - [ - 74, - "function_call" - ], - [ - 75, - "enum_match>" - ], - [ - 76, - "struct_deconstruct>" - ], - [77, "struct_construct>"], - [ - 78, - "enum_init, 0>" - ], - [ - 79, - "store_temp>" - ], - [ - 80, - "enum_init, 1>" - ], - [81, "drop"], - [82, "struct_construct>"], - [83, "enum_init, 0>"], - [84, "store_temp>"], - [85, "enum_init, 1>"], - [ - 86, - "storage_base_address_const<316950619722655767832660197141350043205615163178495764245768411372419253777>" - ], - [87, "storage_address_from_base"], - [88, "store_temp"], - [89, "storage_read_syscall"], - [ - 90, - "enum_init>, 0>" - ], - [ - 91, - "store_temp>>" - ], - [ - 92, - "enum_init>, 1>" - ], - [ - 93, - "rename>>" - ], - [ - 94, - "function_call::unwrap_syscall>" - ], - [95, "storage_write_syscall"], - [ - 96, - "enum_init>, 0>" - ], - [ - 97, - "store_temp>>" - ], - [ - 98, - "enum_init>, 1>" - ], - [ - 99, - "rename>>" - ], - [ - 100, - "function_call::unwrap_syscall>" - ], - [101, "enum_match>"], - [102, "struct_deconstruct>"], - [ - 103, - "struct_construct>" - ], - [ - 104, - "enum_init, 0>" - ], - [ - 105, - "store_temp>" - ], - [ - 106, - "enum_init, 1>" - ], - [ - 107, - "enum_match>>" - ], - [ - 108, - "enum_match>>" - ], - [109, "struct_construct>"], - [110, "enum_init, 0>"], - [111, "store_temp>"], - [112, "enum_init, 1>"] - ], - "user_func_names": [ - [0, "Counter4::Counter4::__external::increase_balance_4"], - [1, "Counter4::Counter4::__external::get_balance_4"], - [2, "core::Felt252Serde::deserialize"], - [3, "core::starknet::use_system_implicit"], - [4, "Counter4::Counter4::increase_balance_4"], - [5, "Counter4::Counter4::get_balance_4"], - [6, "core::Felt252Serde::serialize"], - [7, "Counter4::Counter4::balance_4::InternalContractStateImpl::read"], - [8, "Counter4::Counter4::balance_4::InternalContractStateImpl::write"], - [ - 9, - "core::starknet::SyscallResultTraitImpl::::unwrap_syscall" - ], - [10, "core::starknet::SyscallResultTraitImpl::<()>::unwrap_syscall"] - ] - }, - "contract_class_version": "0.1.0", - "entry_points_by_type": { - "EXTERNAL": [ - { - "selector": "0xe5732e1abf2909f924739d35ad19184f11cff2efc7bf0b7693fe8837f3ac4c", - "function_idx": 1 - }, - { - "selector": "0x354216d012194965ac6e58f1e42de318f61ca46953301e5bb9716250d532058", - "function_idx": 0 - } - ], - "L1_HANDLER": [], - "CONSTRUCTOR": [] - }, - "abi": [ - { - "type": "function", - "name": "increase_balance_4", - "inputs": [{ "name": "amount", "type": "core::felt252" }], - "outputs": [], - "state_mutability": "external" - }, - { - "type": "function", - "name": "get_balance_4", - "inputs": [], - "outputs": [{ "type": "core::felt252" }], - "state_mutability": "view" - }, - { - "type": "event", - "name": "Counter4::Counter4::Event", - "kind": "enum", - "variants": [] - } - ] -} diff --git a/starknet-rpc-test/contracts/Counter5/Counter5.cairo b/starknet-rpc-test/contracts/Counter5/Counter5.cairo deleted file mode 100644 index d031fb0bae..0000000000 --- a/starknet-rpc-test/contracts/Counter5/Counter5.cairo +++ /dev/null @@ -1,19 +0,0 @@ -#[starknet::contract] -mod Counter5 { - #[storage] - struct Storage { - balance_5: felt252, - } - - // Increases the balance_5 by the given amount. - #[external(v0)] - fn increase_balance_5(ref self: ContractState, amount: felt252) { - self.balance_5.write(self.balance_5.read() + amount + 5 + 1); - } - - // Returns the current balance_5. - #[external(v0)] - fn get_balance_5(self: @ContractState) -> felt252 { - self.balance_5.read() - } -} diff --git a/starknet-rpc-test/contracts/Counter5/Counter5.casm.json b/starknet-rpc-test/contracts/Counter5/Counter5.casm.json deleted file mode 100644 index a480507e67..0000000000 --- a/starknet-rpc-test/contracts/Counter5/Counter5.casm.json +++ /dev/null @@ -1,579 +0,0 @@ -{ - "prime": "0x800000000000011000000000000000000000000000000000000000000000001", - "compiler_version": "2.1.0", - "bytecode": [ - "0xa0680017fff8000", - "0x7", - "0x482680017ffa8000", - "0xffffffffffffffffffffffffffffa920", - "0x400280007ff97fff", - "0x10780017fff7fff", - "0x6e", - "0x4825800180007ffa", - "0x56e0", - "0x400280007ff97fff", - "0x480a7ffc7fff8000", - "0x480a7ffd7fff8000", - "0x1104800180018000", - "0xe8", - "0x482680017ff98000", - "0x1", - "0x20680017fff7ffd", - "0x55", - "0x48307ffb80007ffc", - "0x4824800180007fff", - "0x0", - "0x20680017fff7fff", - "0x4", - "0x10780017fff7fff", - "0x13", - "0x480a7ffb7fff8000", - "0x1104800180018000", - "0xfe", - "0x40780017fff7fff", - "0x1", - "0x480680017fff8000", - "0x496e70757420746f6f206c6f6e6720666f7220617267756d656e7473", - "0x400080007ffe7fff", - "0x48127ff77fff8000", - "0x48127fe67fff8000", - "0x48127ffb7fff8000", - "0x480680017fff8000", - "0x1", - "0x48127ffa7fff8000", - "0x482480017ff98000", - "0x1", - "0x208b7fff7fff7ffe", - "0x1104800180018000", - "0x1b4", - "0x482480017fff8000", - "0x1b3", - "0x480080007fff8000", - "0xa0680017fff8000", - "0x9", - "0x4824800180007fe8", - "0x0", - "0x482480017fff8000", - "0x100000000000000000000000000000000", - "0x400080007ff67fff", - "0x10780017fff7fff", - "0x20", - "0x4824800180007fe8", - "0x0", - "0x400080007ff77fff", - "0x48127fff7fff8000", - "0x480a7ffb7fff8000", - "0x48127ff47fff8000", - "0x1104800180018000", - "0xdc", - "0x482480017fbc8000", - "0x1", - "0x20680017fff7ffc", - "0xc", - "0x40780017fff7fff", - "0x1", - "0x48127ffe7fff8000", - "0x48127ff87fff8000", - "0x48127ff87fff8000", - "0x480680017fff8000", - "0x0", - "0x48127ffb7fff8000", - "0x48127ffa7fff8000", - "0x208b7fff7fff7ffe", - "0x48127fff7fff8000", - "0x48127ff97fff8000", - "0x48127ff97fff8000", - "0x480680017fff8000", - "0x1", - "0x48127ff97fff8000", - "0x48127ff97fff8000", - "0x208b7fff7fff7ffe", - "0x40780017fff7fff", - "0x1", - "0x480680017fff8000", - "0x4f7574206f6620676173", - "0x400080007ffe7fff", - "0x482480017ff48000", - "0x1", - "0x48127fe37fff8000", - "0x480a7ffb7fff8000", - "0x480680017fff8000", - "0x1", - "0x48127ffa7fff8000", - "0x482480017ff98000", - "0x1", - "0x208b7fff7fff7ffe", - "0x40780017fff7fff", - "0x1", - "0x480680017fff8000", - "0x496e70757420746f6f2073686f727420666f7220617267756d656e7473", - "0x400080007ffe7fff", - "0x48127ffd7fff8000", - "0x48127fec7fff8000", - "0x480a7ffb7fff8000", - "0x480680017fff8000", - "0x1", - "0x48127ffa7fff8000", - "0x482480017ff98000", - "0x1", - "0x208b7fff7fff7ffe", - "0x40780017fff7fff", - "0x1", - "0x480680017fff8000", - "0x4f7574206f6620676173", - "0x400080007ffe7fff", - "0x482680017ff98000", - "0x1", - "0x480a7ffa7fff8000", - "0x480a7ffb7fff8000", - "0x480680017fff8000", - "0x1", - "0x48127ffa7fff8000", - "0x482480017ff98000", - "0x1", - "0x208b7fff7fff7ffe", - "0xa0680017fff8000", - "0x7", - "0x482680017ffa8000", - "0xffffffffffffffffffffffffffffe2f0", - "0x400280007ff97fff", - "0x10780017fff7fff", - "0x5e", - "0x4825800180007ffa", - "0x1d10", - "0x400280007ff97fff", - "0x48297ffc80007ffd", - "0x482680017ff98000", - "0x1", - "0x4824800180007ffe", - "0x0", - "0x20680017fff7fff", - "0x4", - "0x10780017fff7fff", - "0x13", - "0x480a7ffb7fff8000", - "0x1104800180018000", - "0x82", - "0x40780017fff7fff", - "0x1", - "0x480680017fff8000", - "0x496e70757420746f6f206c6f6e6720666f7220617267756d656e7473", - "0x400080007ffe7fff", - "0x48127ff87fff8000", - "0x48127ff57fff8000", - "0x48127ffb7fff8000", - "0x480680017fff8000", - "0x1", - "0x48127ffa7fff8000", - "0x482480017ff98000", - "0x1", - "0x208b7fff7fff7ffe", - "0x1104800180018000", - "0x138", - "0x482480017fff8000", - "0x137", - "0x480080007fff8000", - "0xa0680017fff8000", - "0x9", - "0x4824800180007ff7", - "0x0", - "0x482480017fff8000", - "0x100000000000000000000000000000000", - "0x400080007ff77fff", - "0x10780017fff7fff", - "0x24", - "0x4824800180007ff7", - "0x0", - "0x400080007ff87fff", - "0x48127fff7fff8000", - "0x480a7ffb7fff8000", - "0x1104800180018000", - "0x8b", - "0x482480017fd88000", - "0x1", - "0x20680017fff7ffc", - "0x11", - "0x40780017fff7fff", - "0x1", - "0x48127ffd7fff8000", - "0x48127ffe7fff8000", - "0x48127ffd7fff8000", - "0x1104800180018000", - "0x95", - "0x48127ff77fff8000", - "0x48127ff17fff8000", - "0x48127ff17fff8000", - "0x480680017fff8000", - "0x0", - "0x48127ffa7fff8000", - "0x48127ffa7fff8000", - "0x208b7fff7fff7ffe", - "0x48127fff7fff8000", - "0x48127ff97fff8000", - "0x48127ff97fff8000", - "0x480680017fff8000", - "0x1", - "0x48127ff97fff8000", - "0x48127ff97fff8000", - "0x208b7fff7fff7ffe", - "0x40780017fff7fff", - "0x1", - "0x480680017fff8000", - "0x4f7574206f6620676173", - "0x400080007ffe7fff", - "0x482480017ff58000", - "0x1", - "0x48127ff27fff8000", - "0x480a7ffb7fff8000", - "0x480680017fff8000", - "0x1", - "0x48127ffa7fff8000", - "0x482480017ff98000", - "0x1", - "0x208b7fff7fff7ffe", - "0x40780017fff7fff", - "0x1", - "0x480680017fff8000", - "0x4f7574206f6620676173", - "0x400080007ffe7fff", - "0x482680017ff98000", - "0x1", - "0x480a7ffa7fff8000", - "0x480a7ffb7fff8000", - "0x480680017fff8000", - "0x1", - "0x48127ffa7fff8000", - "0x482480017ff98000", - "0x1", - "0x208b7fff7fff7ffe", - "0x48297ffc80007ffd", - "0x20680017fff7fff", - "0x4", - "0x10780017fff7fff", - "0xa", - "0x482680017ffc8000", - "0x1", - "0x480a7ffd7fff8000", - "0x480680017fff8000", - "0x0", - "0x480a7ffc7fff8000", - "0x10780017fff7fff", - "0x8", - "0x480a7ffc7fff8000", - "0x480a7ffd7fff8000", - "0x480680017fff8000", - "0x1", - "0x480680017fff8000", - "0x0", - "0x48127ffc7fff8000", - "0x48127ffc7fff8000", - "0x20680017fff7ffc", - "0x8", - "0x48127ffe7fff8000", - "0x48127ffe7fff8000", - "0x480680017fff8000", - "0x0", - "0x480080007ffa8000", - "0x208b7fff7fff7ffe", - "0x48127ffe7fff8000", - "0x48127ffe7fff8000", - "0x480680017fff8000", - "0x1", - "0x480680017fff8000", - "0x0", - "0x208b7fff7fff7ffe", - "0x480a7ffd7fff8000", - "0x208b7fff7fff7ffe", - "0x480a7ffb7fff8000", - "0x480a7ffc7fff8000", - "0x1104800180018000", - "0x42", - "0x20680017fff7ffd", - "0x1d", - "0x48287ffd7fff8000", - "0x482480017fff8000", - "0x5", - "0x48127ff97fff8000", - "0x48127ff97fff8000", - "0x482480017ffd8000", - "0x1", - "0x1104800180018000", - "0x68", - "0x20680017fff7ffd", - "0xb", - "0x48127ffb7fff8000", - "0x48127ffb7fff8000", - "0x480680017fff8000", - "0x0", - "0x480680017fff8000", - "0x0", - "0x480680017fff8000", - "0x0", - "0x208b7fff7fff7ffe", - "0x48127ffb7fff8000", - "0x48127ffb7fff8000", - "0x480680017fff8000", - "0x1", - "0x48127ffb7fff8000", - "0x48127ffb7fff8000", - "0x208b7fff7fff7ffe", - "0x40780017fff7fff", - "0x1a", - "0x48127fe17fff8000", - "0x48127fe17fff8000", - "0x480680017fff8000", - "0x1", - "0x48127fe17fff8000", - "0x48127fe17fff8000", - "0x208b7fff7fff7ffe", - "0x480a7ffc7fff8000", - "0x480a7ffd7fff8000", - "0x1104800180018000", - "0x18", - "0x20680017fff7ffd", - "0xa", - "0x48127ffb7fff8000", - "0x48127ffb7fff8000", - "0x480680017fff8000", - "0x0", - "0x480680017fff8000", - "0x0", - "0x48127ffb7fff8000", - "0x208b7fff7fff7ffe", - "0x48127ffb7fff8000", - "0x48127ffb7fff8000", - "0x480680017fff8000", - "0x1", - "0x48127ffb7fff8000", - "0x48127ffb7fff8000", - "0x208b7fff7fff7ffe", - "0x400380007ffd7ffb", - "0x480a7ffc7fff8000", - "0x482680017ffd8000", - "0x1", - "0x208b7fff7fff7ffe", - "0x480680017fff8000", - "0x0", - "0x480680017fff8000", - "0xe5ec26188d710190e1d454ed168f6cb6ceda3fa7f665ae3d70fd00b54cee5c", - "0x480680017fff8000", - "0x53746f7261676552656164", - "0x400280007ffd7fff", - "0x400380017ffd7ffc", - "0x400280027ffd7ffd", - "0x400280037ffd7ffe", - "0x480280057ffd8000", - "0x20680017fff7fff", - "0xc", - "0x480280047ffd8000", - "0x482680017ffd8000", - "0x7", - "0x480680017fff8000", - "0x0", - "0x480680017fff8000", - "0x0", - "0x480280067ffd8000", - "0x10780017fff7fff", - "0x9", - "0x480280047ffd8000", - "0x482680017ffd8000", - "0x8", - "0x480680017fff8000", - "0x1", - "0x480280067ffd8000", - "0x480280077ffd8000", - "0x1104800180018000", - "0x47", - "0x20680017fff7ffd", - "0xa", - "0x48127ff67fff8000", - "0x48127ff67fff8000", - "0x480680017fff8000", - "0x0", - "0x480680017fff8000", - "0x0", - "0x48127ffb7fff8000", - "0x208b7fff7fff7ffe", - "0x48127ff67fff8000", - "0x48127ff67fff8000", - "0x480680017fff8000", - "0x1", - "0x48127ffb7fff8000", - "0x48127ffb7fff8000", - "0x208b7fff7fff7ffe", - "0x480680017fff8000", - "0x0", - "0x480680017fff8000", - "0xe5ec26188d710190e1d454ed168f6cb6ceda3fa7f665ae3d70fd00b54cee5c", - "0x480680017fff8000", - "0x53746f726167655772697465", - "0x400280007ffc7fff", - "0x400380017ffc7ffb", - "0x400280027ffc7ffd", - "0x400280037ffc7ffe", - "0x400380047ffc7ffd", - "0x480280067ffc8000", - "0x20680017fff7fff", - "0xd", - "0x480280057ffc8000", - "0x482680017ffc8000", - "0x7", - "0x480680017fff8000", - "0x0", - "0x480680017fff8000", - "0x0", - "0x480680017fff8000", - "0x0", - "0x10780017fff7fff", - "0x9", - "0x480280057ffc8000", - "0x482680017ffc8000", - "0x9", - "0x480680017fff8000", - "0x1", - "0x480280077ffc8000", - "0x480280087ffc8000", - "0x1104800180018000", - "0x21", - "0x20680017fff7ffd", - "0xb", - "0x48127ff67fff8000", - "0x48127ff67fff8000", - "0x480680017fff8000", - "0x0", - "0x480680017fff8000", - "0x0", - "0x480680017fff8000", - "0x0", - "0x208b7fff7fff7ffe", - "0x48127ff67fff8000", - "0x48127ff67fff8000", - "0x480680017fff8000", - "0x1", - "0x48127ffb7fff8000", - "0x48127ffb7fff8000", - "0x208b7fff7fff7ffe", - "0x20780017fff7ffb", - "0x8", - "0x480680017fff8000", - "0x0", - "0x480680017fff8000", - "0x0", - "0x480a7ffd7fff8000", - "0x208b7fff7fff7ffe", - "0x480680017fff8000", - "0x1", - "0x480a7ffc7fff8000", - "0x480a7ffd7fff8000", - "0x208b7fff7fff7ffe", - "0x20780017fff7ffb", - "0x9", - "0x480680017fff8000", - "0x0", - "0x480680017fff8000", - "0x0", - "0x480680017fff8000", - "0x0", - "0x208b7fff7fff7ffe", - "0x480680017fff8000", - "0x1", - "0x480a7ffc7fff8000", - "0x480a7ffd7fff8000", - "0x208b7fff7fff7ffe" - ], - "hints": [ - [ - 0, - [ - { - "TestLessThanOrEqual": { - "lhs": { "Immediate": "0x56e0" }, - "rhs": { "Deref": { "register": "FP", "offset": -6 } }, - "dst": { "register": "AP", "offset": 0 } - } - } - ] - ], - [28, [{ "AllocSegment": { "dst": { "register": "AP", "offset": 0 } } }]], - [ - 47, - [ - { - "TestLessThanOrEqual": { - "lhs": { "Immediate": "0x0" }, - "rhs": { "Deref": { "register": "AP", "offset": -23 } }, - "dst": { "register": "AP", "offset": 0 } - } - } - ] - ], - [68, [{ "AllocSegment": { "dst": { "register": "AP", "offset": 0 } } }]], - [86, [{ "AllocSegment": { "dst": { "register": "AP", "offset": 0 } } }]], - [101, [{ "AllocSegment": { "dst": { "register": "AP", "offset": 0 } } }]], - [115, [{ "AllocSegment": { "dst": { "register": "AP", "offset": 0 } } }]], - [ - 130, - [ - { - "TestLessThanOrEqual": { - "lhs": { "Immediate": "0x1d10" }, - "rhs": { "Deref": { "register": "FP", "offset": -6 } }, - "dst": { "register": "AP", "offset": 0 } - } - } - ] - ], - [152, [{ "AllocSegment": { "dst": { "register": "AP", "offset": 0 } } }]], - [ - 171, - [ - { - "TestLessThanOrEqual": { - "lhs": { "Immediate": "0x0" }, - "rhs": { "Deref": { "register": "AP", "offset": -8 } }, - "dst": { "register": "AP", "offset": 0 } - } - } - ] - ], - [191, [{ "AllocSegment": { "dst": { "register": "AP", "offset": 0 } } }]], - [214, [{ "AllocSegment": { "dst": { "register": "AP", "offset": 0 } } }]], - [229, [{ "AllocSegment": { "dst": { "register": "AP", "offset": 0 } } }]], - [ - 360, - [ - { - "SystemCall": { - "system": { "Deref": { "register": "FP", "offset": -3 } } - } - } - ] - ], - [ - 410, - [ - { - "SystemCall": { - "system": { "Deref": { "register": "FP", "offset": -4 } } - } - } - ] - ] - ], - "entry_points_by_type": { - "EXTERNAL": [ - { - "selector": "0x267cbb3c3e283a65af18ea0520413af29ad394bb92e89f5cec63d7bf8e3cc02", - "offset": 0, - "builtins": ["range_check"] - }, - { - "selector": "0x389381eb1816554e8631e7462dd12b632049ad60885626e36757af3a8b169dd", - "offset": 130, - "builtins": ["range_check"] - } - ], - "L1_HANDLER": [], - "CONSTRUCTOR": [] - } -} diff --git a/starknet-rpc-test/contracts/Counter5/Counter5.sierra.json b/starknet-rpc-test/contracts/Counter5/Counter5.sierra.json deleted file mode 100644 index 0fe2c7fcdc..0000000000 --- a/starknet-rpc-test/contracts/Counter5/Counter5.sierra.json +++ /dev/null @@ -1,661 +0,0 @@ -{ - "sierra_program": [ - "0x1", - "0x3", - "0x0", - "0x2", - "0x1", - "0x0", - "0xca", - "0x36", - "0x1f", - "0x52616e6765436865636b", - "0x0", - "0x4761734275696c74696e", - "0x66656c74323532", - "0x4172726179", - "0x1", - "0x2", - "0x536e617073686f74", - "0x3", - "0x537472756374", - "0x1baeba72e79e9db2587cf44fedb2f3700b2075a5e8e39a562584862c4b71f62", - "0x4", - "0x2ee1e2b1b89f8c495f200e4956278a4d47395fe262f27b52e5865c9524c08c3", - "0x456e756d", - "0x11c6d8087e00642489f92d2821ad6ebd6532ad1a3b6d12833da6d6810391511", - "0x6", - "0x753332", - "0x53797374656d", - "0x16a4c8d7c05909052238a862d8cc3e7975bf05a07b3a69c6b28951083a6d672", - "0xa", - "0x5", - "0x9931c641b913035ae674b400b61a51476d506bbe8bba2ff8a6272790aba9e6", - "0xc", - "0xb", - "0x4275696c74696e436f737473", - "0x2928dd7df7498c25e62967fd9be6515eaa381bfd8109ee7daa130a969b59e37", - "0x11a0ea1a7bee2a39526877a475042c8a007debcddf1866e2b0c630af0726916", - "0xf", - "0x10", - "0x221c8496d0c4f26c4d9a66b1feda54b6deb08942d0342a0d930831a6a49f8e0", - "0x11", - "0x10203be321c62a7bd4c060d69539c1fbe065baa9e253c74d2cc48be163e259", - "0x13", - "0x426f78", - "0x29d7d57c04a880978e7b3689f6218e507f3be17588744b58dc17762447ad0e7", - "0x15", - "0x2ba1e913d9308fb0a14be146b076f6af6cd7ba6198ff49c580bbf7401fa1fb3", - "0x17", - "0x53746f726167654261736541646472657373", - "0x53746f7261676541646472657373", - "0x90d0203c41ad646d024845257a6eceb2f8b59b29ce7420dd518053d2edeedc", - "0x101dc0399934cc08fa0d6f6f2daead4e4a38cabeea1c743e1fc28d2d6e58e99", - "0xcc5e86243f861d2d64b08c35db21013e773ac5cf10097946fe0011304886d5", - "0x1d", - "0x71", - "0x7265766f6b655f61705f747261636b696e67", - "0x77697468647261775f676173", - "0x6272616e63685f616c69676e", - "0x73746f72655f74656d70", - "0x66756e6374696f6e5f63616c6c", - "0x656e756d5f6d61746368", - "0x7", - "0x7374727563745f6465636f6e737472756374", - "0x61727261795f6c656e", - "0x736e617073686f745f74616b65", - "0x8", - "0x64726f70", - "0x7533325f636f6e7374", - "0x72656e616d65", - "0x7533325f6571", - "0x9", - "0x61727261795f6e6577", - "0x66656c743235325f636f6e7374", - "0x496e70757420746f6f206c6f6e6720666f7220617267756d656e7473", - "0x61727261795f617070656e64", - "0x7374727563745f636f6e737472756374", - "0x656e756d5f696e6974", - "0xd", - "0x6765745f6275696c74696e5f636f737473", - "0xe", - "0x77697468647261775f6761735f616c6c", - "0x12", - "0x4f7574206f6620676173", - "0x496e70757420746f6f2073686f727420666f7220617267756d656e7473", - "0x14", - "0x61727261795f736e617073686f745f706f705f66726f6e74", - "0x16", - "0x6a756d70", - "0x756e626f78", - "0x66656c743235325f616464", - "0x18", - "0x73746f726167655f626173655f616464726573735f636f6e7374", - "0xe5ec26188d710190e1d454ed168f6cb6ceda3fa7f665ae3d70fd00b54cee5c", - "0x73746f726167655f616464726573735f66726f6d5f62617365", - "0x1a", - "0x73746f726167655f726561645f73797363616c6c", - "0x1b", - "0x73746f726167655f77726974655f73797363616c6c", - "0x1c", - "0x1e", - "0x19f", - "0xffffffffffffffff", - "0x63", - "0x54", - "0x24", - "0x19", - "0x20", - "0x21", - "0x22", - "0x23", - "0x25", - "0x46", - "0x26", - "0x27", - "0x28", - "0x29", - "0x2d", - "0x2e", - "0x2f", - "0x30", - "0x2a", - "0x2b", - "0x2c", - "0x31", - "0x3f", - "0x32", - "0x33", - "0x34", - "0x35", - "0x36", - "0x37", - "0x38", - "0x39", - "0x3a", - "0x3b", - "0x3c", - "0x3d", - "0x3e", - "0x40", - "0x41", - "0x42", - "0x43", - "0x44", - "0x45", - "0x47", - "0x48", - "0x49", - "0x4a", - "0x4b", - "0x4c", - "0x4d", - "0x4e", - "0x4f", - "0x50", - "0x51", - "0x52", - "0x53", - "0x55", - "0x56", - "0x57", - "0x58", - "0x59", - "0x5a", - "0x5b", - "0x5c", - "0x5d", - "0x5e", - "0x5f", - "0xc6", - "0x90", - "0xb9", - "0xb2", - "0xdb", - "0xe0", - "0xea", - "0x11c", - "0x116", - "0x132", - "0x14b", - "0x150", - "0x15b", - "0x170", - "0x60", - "0x61", - "0x175", - "0x62", - "0x64", - "0x65", - "0x180", - "0x66", - "0x67", - "0x68", - "0x69", - "0x6a", - "0x6b", - "0x18d", - "0x6c", - "0x199", - "0x6d", - "0x6e", - "0x6f", - "0x70", - "0xd4", - "0xf1", - "0xf5", - "0x124", - "0x138", - "0x13e", - "0x161", - "0x187", - "0x193", - "0xf89", - "0x7060f02090e0d02060a0c060b02070a090606080706060502040203020100", - "0x617061602090e15060d02070a090614060d02090a1302060a021202111006", - "0x70a18061f061e02090e10061d060d02090a1c061b02070a1a02060a021918", - "0x61c060d02090a100624062302090e07060622180621062002090e07060d02", - "0x70a090610062a02090e090607062902090e02280227180626062502090e10", - "0x206063107090632150606310230022f022e2d18062c062b02090e10060d02", - "0x606313806063b0207063a3806063938060637070606361506063534060633", - "0x70606314007063f0706063e10060639090906323d06063107060639023c38", - "0x6063102454406063106060631060744060743180606421406064207060641", - "0x90606371f060639480606330c0906321d0606311d0606421c060642024746", - "0x374a07063f150606394907063f020744060743170606421506064209060639", - "0x100906320906063107060637210606354b060633150906321d0606391d0606", - "0x3306074d06074310060642024e4d0606310c06063102074d0607430706064c", - "0x10060631060734060743340606310207340607430706063b0706064f4d0606", - "0x33380906320607063f1507063f0250340906321c0606311c0606371d060635", - "0x1c060639060748060743480606310207480607431f06064226060635510606", - "0x565506063102545307065206074b0607434b06063102074b06074321060642", - "0x5906074302583d0906325706063b0607570607435706063102075706074302", - "0x606422c0606355a060633140906325906063b060759060743590606310207", - "0x7432c06064259060633570606330607510607435106063102075106074326", - "0x150c075c070602070602025c060202025b06075a0607435a06063102075a06", - "0xc0615023d38075c0614060c0214065c0609060902025c060207023410075d", - "0x380244065c0638063402025c0602070217065e18065c073d0610020c065c06", - "0x3d021f065c06021802025c061c0614021d1c075c0646063d0246065c064406", - "0x224065c06210617024b065c061d061702025c06480614022148075c061f06", - "0x2025c0618061c02025c06020702025f025c07244b0746024b065c064b0644", - "0x260065c06022102025c0626064802264d075c0651061f0251065c0607061d", - "0x259065c0602260257065c065560074d0255065c065506240255065c06024b", - "0x65c061506550200065c060c0615025a065c062c0660022c065c0657590751", - "0x5902025c06020702636261000c0663065c065a06570262065c064d061d0261", - "0x2070268670766655f075c0764150c095a0264065c0664062c0264065c0602", - "0x607061d026b065c06650655026a065c066906610269065c06020002025c06", - "0x706f095c066e6d6c6b0c63026e065c06180624026d065c066a0662026c065c", - "0x672065f02025c0602070274067372065c07710664025f065c065f06150271", - "0x5c0677066802025c06760667027776075c067506650275065c06022102025c", - "0x66f0655027b065c065f0615027a065c0679066a0279065c06780669027806", - "0x25c060207027e7d7c7b0c067e065c067a0657027d065c0670061d027c065c", - "0x65c0670061d0273065c066f06550280065c065f0615027f065c0674066002", - "0x22102025c0618061c02025c06020702828173800c0682065c067f06570281", - "0x2260285065c068483074d0284065c068406240284065c06026f0283065c06", - "0x550288065c066706150287065c066606600266065c06858607510286065c06", - "0x207028b8a89880c068b065c06870657028a065c0607061d0289065c066806", - "0x8d065c060271028c065c06022102025c0638067002025c0617064802025c06", - "0x5c068e8f0751028f065c060226028e065c068d8c074d028d065c068d062402", - "0x607061d0293065c061506550292065c060c06150291065c06900660029006", - "0x2025c0609067002025c06020702945e93920c0694065c06910657025e065c", - "0x297065c069695074d0296065c069606240296065c06026f0295065c060221", - "0x9b065c06100615029a065c069906600299065c06979807510298065c060226", - "0x29e9d9c9b0c069e065c069a0657029d065c0607061d029c065c0634065502", - "0x5c0609063402025c060207023410079f150c075c070602070602025c060202", - "0x5c06021802025c06140614021814075c063d063d023d065c06380638023806", - "0x6460617021c065c0618061702025c06440614024644075c0617063d021706", - "0x70202a0025c071d1c0746020c065c060c0615021c065c061c0644021d065c", - "0x22102025c0648064802481f075c0621061f0221065c0607061d02025c0602", - "0x226024d065c06244b074d0224065c062406240224065c06024b024b065c06", - "0x550255065c060c06150260065c065106600251065c064d2607510226065c06", - "0x207022c5957550c062c065c066006570259065c061f061d0257065c061506", - "0x7a16100075c075a150c095a025a065c065a062c025a065c06025902025c06", - "0x65075c065f066b025f065c066406610264065c06020002025c060207026362", - "0x65c066706620270065c0607061d026f065c0661065502025c0665066c0267", - "0x6a26b065c076a066e0200065c06000615026a6968095c0671706f096d0271", - "0x7472075c066d0674026e065c060221026d065c066b067202025c060207026c", - "0x75c06787707760278065c066e06750277065c0674062402025c0672061c02", - "0x5c067a066802025c06790667027a79075c0675066502025c06760648027675", - "0x6680655027e065c06000615027d065c067c066a027c065c067b0669027b06", - "0x25c0602070273807f7e0c0673065c067d06570280065c0669061d027f065c", - "0x65c0669061d0283065c066806550282065c060006150281065c066c066002", - "0x26f0286065c06022102025c06020702858483820c0685065c068106570284", - "0x7510288065c0602260287065c066686074d0266065c066606240266065c06", - "0x28c065c06630655028b065c06620615028a065c068906600289065c068788", - "0x9067002025c060207028e8d8c8b0c068e065c068a0657028d065c0607061d", - "0x6908f074d0290065c069006240290065c06026f028f065c06022102025c06", - "0x100615025e065c069306600293065c06919207510292065c0602260291065c", - "0x940c0697065c065e06570296065c0607061d0295065c063406550294065c06", - "0x7802025c060207020c06a30907075c070606770206065c0602063402979695", - "0x2070202a406027b0234065c0615067a0210065c060706790215065c060906", - "0x63d067a0210065c060c0679023d065c0638067d0238065c06027c02025c06", - "0x21706a518065c0734067e0214065c061406090214065c061006680234065c", - "0x9021c065c064606730246065c064406800244065c0618067f02025c060207", - "0x25c0617064802025c060207021f1d07061f065c061c0681021d065c061406", - "0x24065c06210681024b065c061406090221065c064806820248065c06027c02", - "0x907070609065c060606830207065c0602061d0206065c06027c02244b0706", - "0x5c0606061d0214065c06020655021015075c060c0685020c065c0607068402", - "0xa644065c073d066e023d3834095c0617181409660217065c06100686021806", - "0x65c060288021d065c06091c0787021c065c0644067202025c060207024606", - "0x5c064806240221065c0602890248065c061f1d0787021d065c061d0624021f", - "0x1506860260065c0638061d0251065c06340655024b065c0621480787024806", - "0x5c0726068b02264d24095c06575560510c8a0257065c064b06240255065c06", - "0x5a066102025c0600064802005a075c0659068c02025c060207022c06a75906", - "0x6550264065c0663068e0263065c066261078d0262065c06027c0261065c06", - "0x5c0602070267655f090667065c0664068f0265065c064d061d025f065c0624", - "0x5c0668068f026a065c064d061d0269065c062406550268065c062c06900202", - "0x46069002025c0609061c02025c0615069102025c060207026f6a6909066f06", - "0x7109066c065c0670068f026b065c0638061d0271065c063406550270065c06", - "0x60906860238065c0606061d0234065c060206550209065c06070684026c6b", - "0x5c060207021806a814065c0710066e0210150c095c063d38340966023d065c", - "0x5c060c06550246065c064406930244065c061706920217065c061406720202", - "0x9402025c060207021f1d1c09061f065c0646065e021d065c0615061d021c06", - "0x624065c0648065e024b065c0615061d0221065c060c06550248065c061806", - "0x675020c065c06027c0209065c060706074d0207065c0602068002244b2109", - "0x9065c06029502025c06070691021015070610065c060c06830215065c0609", - "0xc065c060c06970215065c061506440215065c060218020c065c0609069602", - "0x65c0638069902025c0602070218143d09a9383410095c070c1506020c9802", - "0x2aa06027b021c065c0617069a0246065c0634061d0244065c061006550217", - "0x246065c0614061d0244065c063d0655021d065c0618069b02025c06020702", - "0x21065c071f066e021f065c0648069d0248065c061c069c021c065c061d069a", - "0x5c064d0693024d065c062406920224065c0621067202025c060207024b06ab", - "0x556051090655065c0626065e0260065c0646061d0251065c06440655022606", - "0x22c065c0646061d0259065c064406550257065c064b069402025c06020702", - "0x29502025c0615069102150c075c06070685025a2c5909065a065c0657065e", - "0x3406970238065c063806440238065c0602180234065c061006960210065c06", - "0x27c02025c0602070244171809ac143d075c070934380602159e0234065c06", - "0x6ae021f065c0614061d021d065c063d0655021c065c064606ad0246065c06", - "0x5c061806550221065c064406b002025c0602070202af06027b0248065c061c", - "0x62406b10224065c0648065d0248065c062106ae021f065c0617061d021d06", - "0x7b50251065c064d06b402025c060207022606b34d065c074b06b2024b065c", - "0x259065c061f061d0257065c061d06550255065c066006b60260065c06510c", - "0x5c062606b802025c060c069102025c060207022c595709062c065c065506b7", - "0x626100090662065c065a06b70261065c061f061d0200065c061d0655025a06", - "0x5c060906930209065c0606069202025c060207020706ba06065c070206b902", - "0x71007510210065c06022602025c0602070215060615065c060c065e020c06", - "0x6065c070206bb023d06063d065c0638065e0238065c063406940234065c06", - "0x5c060c06bf020c065c060906be0209065c060606bd02025c060207020706bc", - "0x3406c00234065c06071007510210065c06022602025c060207021506061506", - "0x209070602443d06020c153d06020c183d06063d065c063806bf0238065c06", - "0x60cc202103d073d06c10234150715062d09070602443d06020c153d06020c", - "0x2100907090707c40706024b3d06091d3d0609c309070602483d0609071d3d", - "0x65706c709070602513d0609071c3d060cc60706024b3d06091c3d0609c506", - "0xc9025a065906c8024b" - ], - "sierra_program_debug_info": { - "type_names": [ - [0, "RangeCheck"], - [1, "GasBuiltin"], - [2, "felt252"], - [3, "Array"], - [4, "Snapshot>"], - [5, "core::array::Span::"], - [6, "Unit"], - [7, "core::option::Option::"], - [8, "u32"], - [9, "System"], - [10, "core::panics::Panic"], - [11, "Tuple>"], - [12, "Tuple>"], - [ - 13, - "core::panics::PanicResult::<(core::array::Span::,)>" - ], - [14, "BuiltinCosts"], - [15, "Counter5::Counter5::balance_5::ContractState"], - [16, "Counter5::Counter5::ContractState"], - [17, "Tuple"], - [ - 18, - "core::panics::PanicResult::<(Counter5::Counter5::ContractState, ())>" - ], - [19, "Tuple"], - [20, "core::panics::PanicResult::<(core::felt252,)>"], - [21, "Box"], - [22, "core::option::Option::>"], - [23, "Tuple"], - [ - 24, - "core::panics::PanicResult::<(Counter5::Counter5::balance_5::ContractState, ())>" - ], - [25, "StorageBaseAddress"], - [26, "StorageAddress"], - [ - 27, - "core::result::Result::>" - ], - [28, "core::result::Result::<(), core::array::Array::>"], - [29, "Tuple"], - [30, "core::panics::PanicResult::<((),)>"] - ], - "libfunc_names": [ - [0, "revoke_ap_tracking"], - [1, "withdraw_gas"], - [2, "branch_align"], - [3, "store_temp>"], - [4, "function_call"], - [5, "store_temp"], - [6, "enum_match>"], - [7, "struct_deconstruct>"], - [8, "array_len"], - [9, "snapshot_take"], - [10, "drop"], - [11, "u32_const<0>"], - [12, "rename"], - [13, "store_temp"], - [14, "u32_eq"], - [15, "drop"], - [16, "store_temp"], - [17, "function_call"], - [18, "drop"], - [19, "array_new"], - [ - 20, - "felt252_const<7733229381460288120802334208475838166080759535023995805565484692595>" - ], - [21, "store_temp"], - [22, "array_append"], - [23, "struct_construct"], - [24, "struct_construct>>"], - [ - 25, - "enum_init,)>, 1>" - ], - [26, "store_temp"], - [ - 27, - "store_temp,)>>" - ], - [28, "get_builtin_costs"], - [29, "store_temp"], - [30, "withdraw_gas_all"], - [31, "struct_construct"], - [32, "struct_construct"], - [33, "store_temp"], - [34, "function_call"], - [ - 35, - "enum_match>" - ], - [36, "drop>"], - [37, "snapshot_take>"], - [38, "drop>"], - [39, "struct_construct>"], - [40, "struct_construct>>"], - [ - 41, - "enum_init,)>, 0>" - ], - [42, "felt252_const<375233589013918064796019>"], - [43, "drop>"], - [ - 44, - "felt252_const<1979706721653833758925397712865600297316042839304765459608024204080243>" - ], - [45, "snapshot_take"], - [46, "drop"], - [47, "function_call"], - [48, "enum_match>"], - [49, "struct_deconstruct>"], - [50, "snapshot_take"], - [51, "store_temp>"], - [52, "function_call"], - [53, "array_snapshot_pop_front"], - [ - 54, - "enum_init>, 0>" - ], - [55, "store_temp>>"], - [ - 56, - "store_temp>>" - ], - [57, "jump"], - [58, "struct_construct"], - [ - 59, - "enum_init>, 1>" - ], - [ - 60, - "enum_match>>" - ], - [61, "unbox"], - [62, "rename"], - [63, "enum_init, 0>"], - [64, "store_temp>"], - [65, "enum_init, 1>"], - [66, "store_temp"], - [67, "struct_deconstruct"], - [68, "snapshot_take"], - [69, "store_temp"], - [ - 70, - "function_call" - ], - [71, "felt252_add"], - [72, "felt252_const<5>"], - [73, "felt252_const<1>"], - [ - 74, - "function_call" - ], - [ - 75, - "enum_match>" - ], - [ - 76, - "struct_deconstruct>" - ], - [77, "struct_construct>"], - [ - 78, - "enum_init, 0>" - ], - [ - 79, - "store_temp>" - ], - [ - 80, - "enum_init, 1>" - ], - [81, "drop"], - [82, "struct_construct>"], - [83, "enum_init, 0>"], - [84, "store_temp>"], - [85, "enum_init, 1>"], - [ - 86, - "storage_base_address_const<406237817035746565772269809858978531940011558089048847818012947058325778012>" - ], - [87, "storage_address_from_base"], - [88, "store_temp"], - [89, "storage_read_syscall"], - [ - 90, - "enum_init>, 0>" - ], - [ - 91, - "store_temp>>" - ], - [ - 92, - "enum_init>, 1>" - ], - [ - 93, - "rename>>" - ], - [ - 94, - "function_call::unwrap_syscall>" - ], - [95, "storage_write_syscall"], - [ - 96, - "enum_init>, 0>" - ], - [ - 97, - "store_temp>>" - ], - [ - 98, - "enum_init>, 1>" - ], - [ - 99, - "rename>>" - ], - [ - 100, - "function_call::unwrap_syscall>" - ], - [101, "enum_match>"], - [102, "struct_deconstruct>"], - [ - 103, - "struct_construct>" - ], - [ - 104, - "enum_init, 0>" - ], - [ - 105, - "store_temp>" - ], - [ - 106, - "enum_init, 1>" - ], - [ - 107, - "enum_match>>" - ], - [ - 108, - "enum_match>>" - ], - [109, "struct_construct>"], - [110, "enum_init, 0>"], - [111, "store_temp>"], - [112, "enum_init, 1>"] - ], - "user_func_names": [ - [0, "Counter5::Counter5::__external::increase_balance_5"], - [1, "Counter5::Counter5::__external::get_balance_5"], - [2, "core::Felt252Serde::deserialize"], - [3, "core::starknet::use_system_implicit"], - [4, "Counter5::Counter5::increase_balance_5"], - [5, "Counter5::Counter5::get_balance_5"], - [6, "core::Felt252Serde::serialize"], - [7, "Counter5::Counter5::balance_5::InternalContractStateImpl::read"], - [8, "Counter5::Counter5::balance_5::InternalContractStateImpl::write"], - [ - 9, - "core::starknet::SyscallResultTraitImpl::::unwrap_syscall" - ], - [10, "core::starknet::SyscallResultTraitImpl::<()>::unwrap_syscall"] - ] - }, - "contract_class_version": "0.1.0", - "entry_points_by_type": { - "EXTERNAL": [ - { - "selector": "0x267cbb3c3e283a65af18ea0520413af29ad394bb92e89f5cec63d7bf8e3cc02", - "function_idx": 0 - }, - { - "selector": "0x389381eb1816554e8631e7462dd12b632049ad60885626e36757af3a8b169dd", - "function_idx": 1 - } - ], - "L1_HANDLER": [], - "CONSTRUCTOR": [] - }, - "abi": [ - { - "type": "function", - "name": "increase_balance_5", - "inputs": [{ "name": "amount", "type": "core::felt252" }], - "outputs": [], - "state_mutability": "external" - }, - { - "type": "function", - "name": "get_balance_5", - "inputs": [], - "outputs": [{ "type": "core::felt252" }], - "state_mutability": "view" - }, - { - "type": "event", - "name": "Counter5::Counter5::Event", - "kind": "enum", - "variants": [] - } - ] -} diff --git a/starknet-rpc-test/contracts/generate_declare_contracts.sh b/starknet-rpc-test/contracts/generate_declare_contracts.sh deleted file mode 100755 index 93e4ef9b05..0000000000 --- a/starknet-rpc-test/contracts/generate_declare_contracts.sh +++ /dev/null @@ -1,31 +0,0 @@ -#!/bin/bash -# exit on first error -set -e - -# First argument is the number of contracts you need to generate - -END=$1 - -SCARB_STARKNET_DEPENDENCY="starknet = \"2.1.0\"\n[[target.starknet-contract]]\ncasm=true" - -for i in $(seq 0 $END); -do - dirname="Counter${i}" - filepath="${dirname}/src/lib.cairo" - mkdir -p ${dirname} - cd ${dirname} - filepath="src/lib.cairo" - scarb init - rm src/lib.cairo - cp ../Counter.cairo ${filepath} - sed -i '' -e "s/Counter/Counter${i}/g" ${filepath} - sed -i '' -e "s/balance/balance_${i}/g" ${filepath} - sed -i '' -e "s/+ amount/+ amount + ${i} + 1/g" ${filepath} - echo -e ${SCARB_STARKNET_DEPENDENCY} >> "Scarb.toml" - scarb build - mv target/dev/Counter${i}_Counter${i}.casm.json ./Counter${i}.casm.json - mv target/dev/Counter${i}_Counter${i}.sierra.json ./Counter${i}.sierra.json - mv src/lib.cairo ./Counter${i}.cairo - rm -rf src/ target/ .gitignore Scarb.toml .git - cd .. -done \ No newline at end of file diff --git a/starknet-rpc-test/estimate_fee.rs b/starknet-rpc-test/estimate_fee.rs deleted file mode 100644 index 73636f9e98..0000000000 --- a/starknet-rpc-test/estimate_fee.rs +++ /dev/null @@ -1,115 +0,0 @@ -extern crate starknet_rpc_test; - -use assert_matches::assert_matches; -use rstest::rstest; -use starknet_core::types::{BlockId, BlockTag, BroadcastedInvokeTransaction, BroadcastedTransaction, StarknetError}; -use starknet_core::utils::get_selector_from_name; -use starknet_ff::FieldElement; -use starknet_providers::ProviderError::StarknetError as StarknetProviderError; -use starknet_providers::{MaybeUnknownErrorCode, Provider, StarknetErrorWithMessage}; -use starknet_rpc_test::constants::{ACCOUNT_CONTRACT, TEST_CONTRACT_ADDRESS}; -use starknet_rpc_test::fixtures::{madara, ThreadSafeMadaraClient}; - -#[rstest] -#[tokio::test] -async fn fail_non_existing_block(madara: &ThreadSafeMadaraClient) -> Result<(), anyhow::Error> { - let rpc = madara.get_starknet_client().await; - - let ok_invoke_transaction = BroadcastedTransaction::Invoke(BroadcastedInvokeTransaction { - max_fee: FieldElement::ZERO, - signature: vec![], - nonce: FieldElement::ZERO, - sender_address: FieldElement::from_hex_be(ACCOUNT_CONTRACT).unwrap(), - calldata: vec![ - FieldElement::from_hex_be(TEST_CONTRACT_ADDRESS).unwrap(), - get_selector_from_name("sqrt").unwrap(), - FieldElement::from_hex_be("1").unwrap(), - FieldElement::from(81u8), - ], - is_query: true, - }); - - assert_matches!( - rpc.estimate_fee(&vec![ok_invoke_transaction], BlockId::Hash(FieldElement::ZERO)).await, - Err(StarknetProviderError(StarknetErrorWithMessage { code: MaybeUnknownErrorCode::Known(code), .. })) if code == StarknetError::BlockNotFound - ); - - Ok(()) -} - -#[rstest] -#[tokio::test] -async fn fail_if_one_txn_cannot_be_executed(madara: &ThreadSafeMadaraClient) -> Result<(), anyhow::Error> { - let rpc = madara.get_starknet_client().await; - - let bad_invoke_transaction = BroadcastedTransaction::Invoke(BroadcastedInvokeTransaction { - max_fee: FieldElement::default(), - nonce: FieldElement::ZERO, - sender_address: FieldElement::default(), - signature: vec![], - calldata: vec![FieldElement::from_hex_be("0x0").unwrap()], - is_query: true, - }); - - let ok_invoke_transaction = BroadcastedTransaction::Invoke(BroadcastedInvokeTransaction { - max_fee: FieldElement::ZERO, - signature: vec![], - nonce: FieldElement::ZERO, - sender_address: FieldElement::from_hex_be(ACCOUNT_CONTRACT).unwrap(), - calldata: vec![ - FieldElement::from_hex_be(TEST_CONTRACT_ADDRESS).unwrap(), - get_selector_from_name("sqrt").unwrap(), - FieldElement::from_hex_be("1").unwrap(), - FieldElement::from(81u8), - ], - is_query: true, - }); - - assert_matches!( - rpc.estimate_fee(&vec![ - bad_invoke_transaction, - ok_invoke_transaction, - ], BlockId::Tag(BlockTag::Latest)).await, - Err(StarknetProviderError(StarknetErrorWithMessage { code: MaybeUnknownErrorCode::Known(code), .. })) if code == StarknetError::ContractError - ); - - Ok(()) -} - -#[rstest] -#[tokio::test] -async fn works_ok(madara: &ThreadSafeMadaraClient) -> Result<(), anyhow::Error> { - let rpc = madara.get_starknet_client().await; - - let tx = BroadcastedInvokeTransaction { - max_fee: FieldElement::ZERO, - signature: vec![], - nonce: FieldElement::ZERO, - sender_address: FieldElement::from_hex_be(ACCOUNT_CONTRACT).unwrap(), - calldata: vec![ - FieldElement::from_hex_be(TEST_CONTRACT_ADDRESS).unwrap(), - get_selector_from_name("sqrt").unwrap(), - FieldElement::from_hex_be("1").unwrap(), - FieldElement::from(81u8), - ], - is_query: true, - }; - - let invoke_transaction = BroadcastedTransaction::Invoke(tx.clone()); - - let invoke_transaction_2 = - BroadcastedTransaction::Invoke(BroadcastedInvokeTransaction { nonce: FieldElement::ONE, ..tx }); - - let estimates = - rpc.estimate_fee(&vec![invoke_transaction, invoke_transaction_2], BlockId::Tag(BlockTag::Latest)).await?; - - // TODO: instead execute the tx and check that the actual fee are the same as the estimated ones - assert_eq!(estimates.len(), 2); - assert_eq!(estimates[0].overall_fee, 420); - assert_eq!(estimates[1].overall_fee, 420); - // https://starkscan.co/block/5 - assert_eq!(estimates[0].gas_consumed, 0); - assert_eq!(estimates[1].gas_consumed, 0); - - Ok(()) -} diff --git a/starknet-rpc-test/get_block_with_txs.rs b/starknet-rpc-test/get_block_with_txs.rs deleted file mode 100644 index 3f1d8c5cce..0000000000 --- a/starknet-rpc-test/get_block_with_txs.rs +++ /dev/null @@ -1,191 +0,0 @@ -#![feature(assert_matches)] - -extern crate starknet_rpc_test; - -use std::assert_matches::assert_matches; - -use anyhow::anyhow; -use rstest::rstest; -use starknet_accounts::Account; -use starknet_core::types::{ - BlockId, BlockStatus, BlockTag, DeclareTransaction, InvokeTransaction, MaybePendingBlockWithTxs, StarknetError, - Transaction as StarknetTransaction, -}; -use starknet_core::utils::get_selector_from_name; -use starknet_ff::FieldElement; -use starknet_providers::{MaybeUnknownErrorCode, Provider, ProviderError, StarknetErrorWithMessage}; -use starknet_rpc_test::constants::{ - ARGENT_CONTRACT_ADDRESS, CAIRO_1_ACCOUNT_CONTRACT_CLASS_HASH, FEE_TOKEN_ADDRESS, MAX_FEE_OVERRIDE, SIGNER_PRIVATE, -}; -use starknet_rpc_test::fixtures::{madara, ThreadSafeMadaraClient}; -use starknet_rpc_test::utils::{ - build_deploy_account_tx, build_oz_account_factory, build_single_owner_account, AccountActions, -}; -use starknet_rpc_test::Transaction; - -#[rstest] -#[tokio::test] -async fn fail_non_existing_block(madara: &ThreadSafeMadaraClient) -> Result<(), anyhow::Error> { - let rpc = madara.get_starknet_client().await; - - assert_matches!( - rpc.get_block_with_txs(BlockId::Hash(FieldElement::ZERO)).await.err(), - Some(ProviderError::StarknetError(StarknetErrorWithMessage { - message: _, - code: MaybeUnknownErrorCode::Known(StarknetError::BlockNotFound) - })) - ); - - Ok(()) -} - -#[rstest] -#[tokio::test] -async fn works_with_invoke_txn(madara: &ThreadSafeMadaraClient) -> Result<(), anyhow::Error> { - let rpc = madara.get_starknet_client().await; - - let recipient = FieldElement::from_hex_be("0x1234").unwrap(); - let (current_nonce, block) = { - let mut madara_write_lock = madara.write().await; - let account = build_single_owner_account(&rpc, SIGNER_PRIVATE, ARGENT_CONTRACT_ADDRESS, true); - let nonce = rpc.get_nonce(BlockId::Tag(BlockTag::Latest), account.address()).await?; - - madara_write_lock - .create_block_with_txs(vec![Transaction::Execution(account.transfer_tokens( - recipient, - FieldElement::ONE, - None, - ))]) - .await?; - - let block = match rpc.get_block_with_txs(BlockId::Tag(BlockTag::Latest)).await.unwrap() { - MaybePendingBlockWithTxs::Block(block) => block, - MaybePendingBlockWithTxs::PendingBlock(_) => return Err(anyhow!("Expected block, got pending block")), - }; - - (nonce, block) - }; - - assert_eq!(block.transactions.len(), 1); - let tx = match &block.transactions[0] { - StarknetTransaction::Invoke(InvokeTransaction::V1(tx)) => tx, - _ => return Err(anyhow!("Expected an invoke transaction v1")), - }; - assert_eq!(tx.sender_address, FieldElement::TWO); - assert_eq!(tx.nonce, current_nonce); - assert_eq!(tx.max_fee, FieldElement::from_hex_be(MAX_FEE_OVERRIDE).unwrap()); - assert_eq!( - tx.calldata, - vec![ - FieldElement::ONE, - FieldElement::from_hex_be(FEE_TOKEN_ADDRESS).unwrap(), - get_selector_from_name("transfer").unwrap(), - FieldElement::ZERO, - FieldElement::THREE, - FieldElement::THREE, - recipient, - FieldElement::ONE, - FieldElement::ZERO, - ] - ); - - Ok(()) -} - -#[rstest] -#[tokio::test] -async fn works_with_deploy_account_txn(madara: &ThreadSafeMadaraClient) -> Result<(), anyhow::Error> { - let rpc = madara.get_starknet_client().await; - - let class_hash = FieldElement::from_hex_be(CAIRO_1_ACCOUNT_CONTRACT_CLASS_HASH).unwrap(); - let contract_address_salt = FieldElement::ONE; - let max_fee = FieldElement::from_hex_be(MAX_FEE_OVERRIDE).unwrap(); - - let (deploy_nonce, block) = { - let mut madara_write_lock = madara.write().await; - let oz_factory = build_oz_account_factory(&rpc, "0x123", class_hash).await; - let account_deploy_txn = build_deploy_account_tx(&oz_factory, FieldElement::ONE); - - let funding_account = build_single_owner_account(&rpc, SIGNER_PRIVATE, ARGENT_CONTRACT_ADDRESS, true); - let account_address = account_deploy_txn.address(); - let deploy_nonce = rpc.get_nonce(BlockId::Tag(BlockTag::Latest), account_deploy_txn.address()).await?; - - // We execute the funding in a different block, because we have no way to guarantee the tx execution - // order once in the mempool - madara_write_lock - .create_block_with_txs(vec![Transaction::Execution(funding_account.transfer_tokens( - account_address, - max_fee, - None, - ))]) - .await?; - - madara_write_lock.create_block_with_txs(vec![Transaction::AccountDeployment(account_deploy_txn)]).await?; - - let block = match rpc.get_block_with_txs(BlockId::Tag(BlockTag::Latest)).await.unwrap() { - MaybePendingBlockWithTxs::Block(block) => block, - MaybePendingBlockWithTxs::PendingBlock(_) => return Err(anyhow!("Expected block, got pending block")), - }; - - (deploy_nonce, block) - }; - - assert_eq!(block.transactions.len(), 1); - let tx = match &block.transactions[0] { - StarknetTransaction::DeployAccount(tx) => tx, - _ => return Err(anyhow!("Expected an deploy transaction v1")), - }; - assert_eq!(tx.nonce, deploy_nonce); - assert_eq!(tx.max_fee, max_fee); - assert_eq!(tx.contract_address_salt, contract_address_salt); - assert_eq!(tx.class_hash, class_hash); - assert_eq!( - tx.constructor_calldata, - vec![FieldElement::from_hex_be("0x0566d69d8c99f62bc71118399bab25c1f03719463eab8d6a444cd11ece131616").unwrap(),] - ); - - Ok(()) -} - -#[rstest] -#[tokio::test] -async fn works_with_declare_txn(madara: &ThreadSafeMadaraClient) -> Result<(), anyhow::Error> { - let rpc = madara.get_starknet_client().await; - - // manually setting fee else estimate_fee will be called and it will fail - // as the nonce has not been updated yet - let max_fee = FieldElement::from_hex_be(MAX_FEE_OVERRIDE).unwrap(); - - let (current_nonce, class_hash, compiled_class_hash, block) = { - let mut madara_write_lock = madara.write().await; - - let account = build_single_owner_account(&rpc, SIGNER_PRIVATE, ARGENT_CONTRACT_ADDRESS, true); - let nonce = rpc.get_nonce(BlockId::Tag(BlockTag::Latest), account.address()).await?; - let (declare_tx, class_hash, compiled_class_hash) = account - .declare_contract("./contracts/Counter3/Counter3.sierra.json", "./contracts/Counter3/Counter3.casm.json"); - - madara_write_lock.create_block_with_txs(vec![Transaction::Declaration(declare_tx)]).await?; - - let block = match rpc.get_block_with_txs(BlockId::Tag(BlockTag::Latest)).await.unwrap() { - MaybePendingBlockWithTxs::Block(block) => block, - MaybePendingBlockWithTxs::PendingBlock(_) => { - return Err(anyhow!("Expected block, got pending block")); - } - }; - (nonce, class_hash, compiled_class_hash, block) - }; - - assert_eq!(block.status, BlockStatus::AcceptedOnL2); - assert_eq!(block.transactions.len(), 1); - let tx = match &block.transactions[0] { - StarknetTransaction::Declare(DeclareTransaction::V2(tx)) => tx, - _ => return Err(anyhow!("Expected an declare transaction v2")), - }; - assert_eq!(tx.sender_address, FieldElement::TWO); - assert_eq!(tx.nonce, current_nonce); - assert_eq!(tx.max_fee, max_fee); - assert_eq!(tx.class_hash, class_hash); - assert_eq!(tx.compiled_class_hash, compiled_class_hash); - - Ok(()) -} diff --git a/starknet-rpc-test/get_class.rs b/starknet-rpc-test/get_class.rs deleted file mode 100644 index 820c5866e0..0000000000 --- a/starknet-rpc-test/get_class.rs +++ /dev/null @@ -1,124 +0,0 @@ -extern crate starknet_rpc_test; - -use std::io::Read; - -use assert_matches::assert_matches; -use flate2::read::GzDecoder; -use rstest::rstest; -use starknet_core::types::contract::legacy::{LegacyContractClass, LegacyProgram}; -use starknet_core::types::contract::SierraClass; -use starknet_core::types::{BlockId, ContractClass, FlattenedSierraClass, StarknetError}; -use starknet_ff::FieldElement; -use starknet_providers::ProviderError::StarknetError as StarknetProviderError; -use starknet_providers::{MaybeUnknownErrorCode, Provider, StarknetErrorWithMessage}; -use starknet_rpc_test::constants::{CAIRO_1_ACCOUNT_CONTRACT_CLASS_HASH, TEST_CONTRACT_CLASS_HASH}; -use starknet_rpc_test::fixtures::{madara, ThreadSafeMadaraClient}; - -#[rstest] -#[tokio::test] -async fn fail_non_existing_block(madara: &ThreadSafeMadaraClient) -> Result<(), anyhow::Error> { - let rpc = madara.get_starknet_client().await; - - let test_contract_class_hash = - FieldElement::from_hex_be(TEST_CONTRACT_CLASS_HASH).expect("Invalid Contract Address"); - - assert_matches!( - rpc - .get_class( - BlockId::Number(100), - test_contract_class_hash, - ) - .await, - Err(StarknetProviderError(StarknetErrorWithMessage { code: MaybeUnknownErrorCode::Known(code), .. })) if code == StarknetError::BlockNotFound - ); - - Ok(()) -} - -#[rstest] -#[tokio::test] -async fn fail_non_existing_class_hash(madara: &ThreadSafeMadaraClient) -> Result<(), anyhow::Error> { - let rpc = madara.get_starknet_client().await; - - let unknown_contract_class_hash = - FieldElement::from_hex_be("0x4269DEADBEEF").expect("Invalid Contract classh hash"); - - assert_matches!( - rpc - .get_class( - BlockId::Number(0), - unknown_contract_class_hash, - ) - .await, - Err(StarknetProviderError(StarknetErrorWithMessage { code: MaybeUnknownErrorCode::Known(code), .. })) if code == StarknetError::ClassHashNotFound - ); - - Ok(()) -} - -#[rstest] -#[tokio::test] -async fn work_ok_retrieving_class_for_contract_version_0(madara: &ThreadSafeMadaraClient) -> Result<(), anyhow::Error> { - let rpc = madara.get_starknet_client().await; - - let test_contract_class_hash = - FieldElement::from_hex_be(TEST_CONTRACT_CLASS_HASH).expect("Invalid Contract Class Hash"); - - let test_contract_class_bytes = include_bytes!("../cairo-contracts/build/test.json"); - let test_contract_class: LegacyContractClass = serde_json::from_slice(test_contract_class_bytes).unwrap(); - - assert_matches!( - rpc - .get_class( - BlockId::Number(0), - test_contract_class_hash, - ).await?, - ContractClass::Legacy(c) => { - // decompress program - let mut gz = GzDecoder::new(&c.program[..]); - let mut decompressed_bytes = Vec::new(); - gz.read_to_end(&mut decompressed_bytes).unwrap(); - let program: LegacyProgram = serde_json::from_slice(decompressed_bytes.as_slice())?; - assert_eq!( - program.data.len(), - test_contract_class.program.data.len(), - ); - } - ); - - Ok(()) -} - -#[ignore = "conversion between contract class types is incomplete"] -#[rstest] -#[tokio::test] -async fn work_ok_retrieving_class_for_contract_version_1(madara: &ThreadSafeMadaraClient) -> Result<(), anyhow::Error> { - let rpc = madara.get_starknet_client().await; - - let test_contract_class_hash = - FieldElement::from_hex_be(CAIRO_1_ACCOUNT_CONTRACT_CLASS_HASH).expect("Invalid Contract Class Hash"); - - let test_contract_class_bytes = include_bytes!("../cairo-contracts/build/cairo_1/NoValidateAccount.sierra.json"); - let test_contract_class: SierraClass = serde_json::from_slice(test_contract_class_bytes).unwrap(); - let flattened_test_contract_class: FlattenedSierraClass = test_contract_class.flatten().unwrap(); - - assert_matches!( - rpc - .get_class( - BlockId::Number(0), - test_contract_class_hash - ).await?, - ContractClass::Sierra(c) => { - assert_eq!( - c.abi, - flattened_test_contract_class.abi, - ); - assert_eq!( - c.sierra_program, - flattened_test_contract_class.sierra_program, - ); - } - ); - - Ok(()) -} diff --git a/starknet-rpc-test/get_class_at.rs b/starknet-rpc-test/get_class_at.rs deleted file mode 100644 index 16f7192492..0000000000 --- a/starknet-rpc-test/get_class_at.rs +++ /dev/null @@ -1,120 +0,0 @@ -extern crate starknet_rpc_test; - -use std::io::Read; - -use assert_matches::assert_matches; -use flate2::read::GzDecoder; -use rstest::rstest; -use starknet_core::types::contract::legacy::{LegacyContractClass, LegacyProgram}; -use starknet_core::types::contract::SierraClass; -use starknet_core::types::{BlockId, ContractClass, FlattenedSierraClass, StarknetError}; -use starknet_ff::FieldElement; -use starknet_providers::ProviderError::StarknetError as StarknetProviderError; -use starknet_providers::{MaybeUnknownErrorCode, Provider, StarknetErrorWithMessage}; -use starknet_rpc_test::constants::{CAIRO_1_ACCOUNT_CONTRACT, TEST_CONTRACT_ADDRESS}; -use starknet_rpc_test::fixtures::{madara, ThreadSafeMadaraClient}; - -#[rstest] -#[tokio::test] -async fn fail_non_existing_block(madara: &ThreadSafeMadaraClient) -> Result<(), anyhow::Error> { - let rpc = madara.get_starknet_client().await; - - let test_contract_address = FieldElement::from_hex_be(TEST_CONTRACT_ADDRESS).expect("Invalid Contract Address"); - - assert_matches!( - rpc - .get_class_at( - BlockId::Number(100), - test_contract_address, - ) - .await, - Err(StarknetProviderError(StarknetErrorWithMessage { code: MaybeUnknownErrorCode::Known(code), .. })) if code == StarknetError::BlockNotFound - ); - - Ok(()) -} - -#[rstest] -#[tokio::test] -async fn fail_non_existing_contract(madara: &ThreadSafeMadaraClient) -> Result<(), anyhow::Error> { - let rpc = madara.get_starknet_client().await; - - let unknown_contract_address = FieldElement::from_hex_be("0x4269DEADBEEF").expect("Invalid Contract Address"); - - assert_matches!( - rpc - .get_class_at( - BlockId::Number(0), - unknown_contract_address, - ) - .await, - Err(StarknetProviderError(StarknetErrorWithMessage { code: MaybeUnknownErrorCode::Known(code), .. })) if code == StarknetError::ContractNotFound - ); - - Ok(()) -} - -#[rstest] -#[tokio::test] -async fn work_ok_retrieving_class_for_contract_version_0(madara: &ThreadSafeMadaraClient) -> Result<(), anyhow::Error> { - let rpc = madara.get_starknet_client().await; - - let test_contract_address = FieldElement::from_hex_be(TEST_CONTRACT_ADDRESS).expect("Invalid Contract Address"); - - let test_contract_class_bytes = include_bytes!("../cairo-contracts/build/test.json"); - let test_contract_class: LegacyContractClass = serde_json::from_slice(test_contract_class_bytes).unwrap(); - - assert_matches!( - rpc - .get_class_at( - BlockId::Number(0), - test_contract_address - ).await?, - ContractClass::Legacy(c) => { - // decompress program - let mut d = GzDecoder::new(&c.program[..]); - let mut data = String::new(); - d.read_to_string(&mut data).unwrap(); - let program: LegacyProgram = serde_json::from_str(data.as_str())?; - assert_eq!( - program.data, - test_contract_class.program.data, - ); - } - ); - - Ok(()) -} - -#[rstest] -#[ignore] -#[tokio::test] -async fn work_ok_retrieving_class_for_contract_version_1(madara: &ThreadSafeMadaraClient) -> Result<(), anyhow::Error> { - let rpc = madara.get_starknet_client().await; - - let test_contract_address = FieldElement::from_hex_be(CAIRO_1_ACCOUNT_CONTRACT).expect("Invalid Contract Address"); - - let test_contract_class_bytes = include_bytes!("../cairo-contracts/build/cairo_1/NoValidateAccount.sierra.json"); - let test_contract_class: SierraClass = serde_json::from_slice(test_contract_class_bytes).unwrap(); - let flattened_test_contract_class: FlattenedSierraClass = test_contract_class.flatten().unwrap(); - - assert_matches!( - rpc - .get_class_at( - BlockId::Number(0), - test_contract_address - ).await?, - ContractClass::Sierra(c) => { - assert_eq!( - c.abi, - flattened_test_contract_class.abi, - ); - assert_eq!( - c.sierra_program, - flattened_test_contract_class.sierra_program, - ); - } - ); - - Ok(()) -} diff --git a/starknet-rpc-test/get_events.rs b/starknet-rpc-test/get_events.rs deleted file mode 100644 index fadcae923e..0000000000 --- a/starknet-rpc-test/get_events.rs +++ /dev/null @@ -1,441 +0,0 @@ -extern crate starknet_rpc_test; - -use assert_matches::assert_matches; -use rstest::rstest; -use starknet_accounts::Account; -use starknet_core::types::{BlockId, EmittedEvent, EventFilter, StarknetError}; -use starknet_core::utils::get_selector_from_name; -use starknet_ff::FieldElement; -use starknet_providers::jsonrpc::HttpTransport; -use starknet_providers::{JsonRpcClient, MaybeUnknownErrorCode, Provider, ProviderError, StarknetErrorWithMessage}; -use starknet_rpc_test::constants::{ARGENT_CONTRACT_ADDRESS, FEE_TOKEN_ADDRESS, SEQUENCER_ADDRESS, SIGNER_PRIVATE}; -use starknet_rpc_test::fixtures::{madara, ThreadSafeMadaraClient}; -use starknet_rpc_test::utils::{build_single_owner_account, AccountActions}; -use starknet_rpc_test::{MadaraClient, Transaction, TransactionResult}; - -async fn transfer_tokens( - rpc: &JsonRpcClient, - madara_write_lock: &mut async_lock::RwLockWriteGuard<'_, MadaraClient>, - recipient: FieldElement, - transfer_amount: FieldElement, -) -> (FieldElement, FieldElement) { - let account = build_single_owner_account(rpc, SIGNER_PRIVATE, ARGENT_CONTRACT_ADDRESS, true); - let mut txs = madara_write_lock - .create_block_with_txs(vec![Transaction::Execution(account.transfer_tokens(recipient, transfer_amount, None))]) - .await - .unwrap(); - assert_eq!(txs.len(), 1); - let transaction_hash = match txs.remove(0).unwrap() { - TransactionResult::Execution(response) => response.transaction_hash, - _ => panic!("Expected execution response"), - }; - (transaction_hash, account.address()) -} - -#[rstest] -#[tokio::test] -async fn fail_invalid_continuation_token(madara: &ThreadSafeMadaraClient) -> Result<(), anyhow::Error> { - let rpc = madara.get_starknet_client().await; - - let events_result = rpc - .get_events( - EventFilter { - from_block: Some(BlockId::Number(0)), - to_block: Some(BlockId::Number(5)), - address: None, - keys: None, - }, - Some("0,100,0".into()), - 100, - ) - .await; - - assert_matches!( - events_result, - Err(ProviderError::StarknetError(StarknetErrorWithMessage { - message: _, - code: MaybeUnknownErrorCode::Known(StarknetError::InvalidContinuationToken) - })) - ); - - Ok(()) -} - -#[rstest] -#[tokio::test] -async fn fail_chunk_size_too_big(madara: &ThreadSafeMadaraClient) -> Result<(), anyhow::Error> { - let rpc = madara.get_starknet_client().await; - - let events_result = rpc - .get_events( - EventFilter { - from_block: Some(BlockId::Number(0)), - to_block: Some(BlockId::Number(5)), - address: None, - keys: None, - }, - None, - 1001, - ) - .await; - - assert_matches!( - events_result, - Err(ProviderError::StarknetError(StarknetErrorWithMessage { - message: _, - code: MaybeUnknownErrorCode::Known(StarknetError::PageSizeTooBig) - })) - ); - - Ok(()) -} - -#[rstest] -#[tokio::test] -async fn fail_keys_too_big(madara: &ThreadSafeMadaraClient) -> Result<(), anyhow::Error> { - let rpc = madara.get_starknet_client().await; - - let events_result = rpc - .get_events( - EventFilter { - from_block: Some(BlockId::Number(0)), - to_block: Some(BlockId::Number(5)), - address: None, - keys: Some(vec![vec![FieldElement::ZERO]; 101]), - }, - None, - 10, - ) - .await; - - assert_matches!( - events_result, - Err(ProviderError::StarknetError(StarknetErrorWithMessage { - message: _, - code: MaybeUnknownErrorCode::Known(StarknetError::TooManyKeysInFilter) - })) - ); - - Ok(()) -} - -#[rstest] -#[tokio::test] -async fn work_one_block_no_filter(madara: &ThreadSafeMadaraClient) -> Result<(), anyhow::Error> { - let rpc = madara.get_starknet_client().await; - - let recipient = FieldElement::from_hex_be("0x123").unwrap(); - let transfer_amount = FieldElement::ONE; - - let mut madara_write_lock = madara.write().await; - let block_number = rpc.block_number().await?; - let (transaction_hash, account_address) = - transfer_tokens(&rpc, &mut madara_write_lock, recipient, transfer_amount).await; - - let events_result = rpc - .get_events(EventFilter { from_block: None, to_block: None, address: None, keys: None }, None, 1000) - .await - .unwrap(); - - let fee_token_address = FieldElement::from_hex_be(FEE_TOKEN_ADDRESS).unwrap(); - let block_hash = - FieldElement::from_hex_be("0x0742520489186d3d79b09e1d14ec7e69d515a3c915e6cfd8fd4ca65299372a45").unwrap(); - let expected_fee = FieldElement::from_hex_be("0x1d010").unwrap(); - assert_eq!(events_result.continuation_token, None); - - events_result.events.as_slice().windows(3).any(|w| { - w == [ - EmittedEvent { - from_address: fee_token_address, - keys: vec![get_selector_from_name("Transfer").unwrap()], - data: vec![ - account_address, // from - recipient, // to - transfer_amount, // value low - FieldElement::ZERO, // value high - ], - block_hash, - block_number, - transaction_hash, - }, - EmittedEvent { - from_address: account_address, - keys: vec![get_selector_from_name("transaction_executed").unwrap()], - data: vec![ - transaction_hash, // txn hash - FieldElement::TWO, // response_len - FieldElement::ONE, - FieldElement::ONE, - ], - block_hash, - block_number, - transaction_hash, - }, - EmittedEvent { - from_address: fee_token_address, - keys: vec![get_selector_from_name("Transfer").unwrap()], - data: vec![ - account_address, // from - FieldElement::from_hex_be(SEQUENCER_ADDRESS).unwrap(), // to (sequencer address) - expected_fee, // value low - FieldElement::ZERO, // value high - ], - block_hash, - block_number, - transaction_hash, - }, - ] - }); - - Ok(()) -} - -#[rstest] -#[tokio::test] -async fn work_one_block_with_chunk_filter_and_continuation_token( - madara: &ThreadSafeMadaraClient, -) -> Result<(), anyhow::Error> { - let rpc = madara.get_starknet_client().await; - - let recipient = FieldElement::from_hex_be("0x123").unwrap(); - let transfer_amount = FieldElement::ONE; - let mut madara_write_lock = madara.write().await; - let block_number = rpc.block_number().await?; - let (transaction_hash, account_address) = - transfer_tokens(&rpc, &mut madara_write_lock, recipient, transfer_amount).await; - - let events_result = rpc - .get_events(EventFilter { from_block: None, to_block: None, address: None, keys: None }, None, 1) - .await - .unwrap(); - - let fee_token_address = FieldElement::from_hex_be(FEE_TOKEN_ADDRESS).unwrap(); - let block_hash = - FieldElement::from_hex_be("0x0742520489186d3d79b09e1d14ec7e69d515a3c915e6cfd8fd4ca65299372a45").unwrap(); - - assert!(events_result.continuation_token.as_ref().unwrap().ends_with(",1")); - - let events_result = rpc - .get_events( - EventFilter { from_block: None, to_block: None, address: None, keys: None }, - events_result.continuation_token, - 1000, - ) - .await - .unwrap(); - - let expected_fee = FieldElement::from_hex_be("0x1d010").unwrap(); - events_result.events.windows(2).any(|w| { - w == [ - EmittedEvent { - from_address: account_address, - keys: vec![get_selector_from_name("transaction_executed").unwrap()], - data: vec![ - transaction_hash, // txn hash - FieldElement::TWO, // response_len - FieldElement::ONE, - FieldElement::ONE, - ], - block_hash, - block_number, - transaction_hash, - }, - EmittedEvent { - from_address: fee_token_address, - keys: vec![get_selector_from_name("Transfer").unwrap()], - data: vec![ - account_address, // from - FieldElement::from_hex_be(SEQUENCER_ADDRESS).unwrap(), // to (sequencer address) - expected_fee, // value low - FieldElement::ZERO, // value high - ], - block_hash, - block_number, - transaction_hash, - }, - ] - }); - - Ok(()) -} - -#[rstest] -#[tokio::test] -async fn work_two_blocks_with_block_filter_and_continuation_token( - madara: &ThreadSafeMadaraClient, -) -> Result<(), anyhow::Error> { - let rpc = madara.get_starknet_client().await; - - let recipient = FieldElement::from_hex_be("0x123").unwrap(); - let transfer_amount = FieldElement::ONE; - - let mut madara_write_lock = madara.write().await; - // first block - let (transaction_hash_1, account_address) = - transfer_tokens(&rpc, &mut madara_write_lock, recipient, transfer_amount).await; - let first_block_number_and_hash = rpc.block_hash_and_number().await?; - // second block - let (transaction_hash_2, _) = transfer_tokens(&rpc, &mut madara_write_lock, recipient, transfer_amount).await; - let second_block_number_and_hash = rpc.block_hash_and_number().await?; - - // get first event of first block - let events_result = rpc - .get_events( - EventFilter { - from_block: Some(BlockId::Number(first_block_number_and_hash.block_number)), - to_block: Some(BlockId::Number(first_block_number_and_hash.block_number)), - address: None, - keys: None, - }, - None, - 1, - ) - .await - .unwrap(); - - let fee_token_address = FieldElement::from_hex_be(FEE_TOKEN_ADDRESS).unwrap(); - - assert_eq!( - events_result.events, - vec![EmittedEvent { - from_address: fee_token_address, - keys: vec![get_selector_from_name("Transfer").unwrap()], - data: vec![ - account_address, // from - recipient, // to - transfer_amount, // value low - FieldElement::ZERO, // value high - ], - block_hash: first_block_number_and_hash.block_hash, - block_number: first_block_number_and_hash.block_number, - transaction_hash: transaction_hash_1, - }], - ); - assert_eq!(events_result.continuation_token, Some("0,1".into())); - - // get first event of second block - let events_result = rpc - .get_events( - EventFilter { - from_block: Some(BlockId::Number(second_block_number_and_hash.block_number)), - to_block: Some(BlockId::Number(second_block_number_and_hash.block_number)), - address: None, - keys: None, - }, - None, - 1, - ) - .await - .unwrap(); - - assert_eq!( - events_result.events, - vec![EmittedEvent { - from_address: fee_token_address, - keys: vec![get_selector_from_name("Transfer").unwrap()], - data: vec![ - account_address, // from - recipient, // to - transfer_amount, // value low - FieldElement::ZERO, // value high - ], - block_hash: second_block_number_and_hash.block_hash, - block_number: second_block_number_and_hash.block_number, - transaction_hash: transaction_hash_2, - }], - ); - - assert_eq!(events_result.continuation_token, Some("0,1".into())); - - Ok(()) -} - -#[rstest] -#[tokio::test] -async fn work_one_block_address_filter(madara: &ThreadSafeMadaraClient) -> Result<(), anyhow::Error> { - let rpc = madara.get_starknet_client().await; - - let recipient = FieldElement::from_hex_be("0x123").unwrap(); - let transfer_amount = FieldElement::ONE; - let mut madara_write_lock = madara.write().await; - let (transaction_hash, account_address) = - transfer_tokens(&rpc, &mut madara_write_lock, recipient, transfer_amount).await; - - let events_result = rpc - .get_events( - EventFilter { from_block: None, to_block: None, address: Some(account_address), keys: None }, - None, - 1000, - ) - .await - .unwrap(); - - let block_hash = - FieldElement::from_hex_be("0x0742520489186d3d79b09e1d14ec7e69d515a3c915e6cfd8fd4ca65299372a45").unwrap(); - let block_number = 1; - - events_result.events.into_iter().any(|w| { - w == EmittedEvent { - from_address: account_address, - keys: vec![get_selector_from_name("transaction_executed").unwrap()], - data: vec![ - transaction_hash, // txn hash - FieldElement::TWO, // response_len - FieldElement::ONE, - FieldElement::ONE, - ], - block_hash, - block_number, - transaction_hash, - } - }); - - assert_eq!(events_result.continuation_token, None); - - Ok(()) -} - -#[rstest] -#[tokio::test] -async fn work_one_block_key_filter(madara: &ThreadSafeMadaraClient) -> Result<(), anyhow::Error> { - let rpc = madara.get_starknet_client().await; - - let recipient = FieldElement::from_hex_be("0x123").unwrap(); - let transfer_amount = FieldElement::ONE; - let mut madara_write_lock = madara.write().await; - let (transaction_hash, account_address) = - transfer_tokens(&rpc, &mut madara_write_lock, recipient, transfer_amount).await; - let key = get_selector_from_name("transaction_executed").unwrap(); - - let events_result = rpc - .get_events( - EventFilter { from_block: None, to_block: None, address: None, keys: Some(vec![vec![key]]) }, - None, - 1000, - ) - .await - .unwrap(); - - let block_hash = - FieldElement::from_hex_be("0x0742520489186d3d79b09e1d14ec7e69d515a3c915e6cfd8fd4ca65299372a45").unwrap(); - let block_number = 1; - - events_result.events.into_iter().any(|w| { - w == EmittedEvent { - from_address: account_address, - keys: vec![key], - data: vec![ - transaction_hash, // txn hash - FieldElement::TWO, // response_len - FieldElement::ONE, - FieldElement::ONE, - ], - block_hash, - block_number, - transaction_hash, - } - }); - assert_eq!(events_result.continuation_token, None); - - Ok(()) -} diff --git a/starknet-rpc-test/get_transaction_receipt.rs b/starknet-rpc-test/get_transaction_receipt.rs deleted file mode 100644 index f9ba7da20a..0000000000 --- a/starknet-rpc-test/get_transaction_receipt.rs +++ /dev/null @@ -1,402 +0,0 @@ -extern crate starknet_rpc_test; - -use std::vec; - -use assert_matches::assert_matches; -use rstest::rstest; -use starknet_core::types::{ - Event, ExecutionResult, MaybePendingTransactionReceipt, MsgToL1, TransactionFinalityStatus, TransactionReceipt, -}; -use starknet_core::utils::get_selector_from_name; -use starknet_ff::FieldElement; -use starknet_providers::jsonrpc::HttpTransport; -use starknet_providers::{JsonRpcClient, Provider, ProviderError}; -use starknet_rpc_test::constants::{ - ARGENT_CONTRACT_ADDRESS, CAIRO_1_ACCOUNT_CONTRACT_CLASS_HASH, FEE_TOKEN_ADDRESS, SEQUENCER_ADDRESS, SIGNER_PRIVATE, - UDC_ADDRESS, -}; -use starknet_rpc_test::fixtures::{madara, ThreadSafeMadaraClient}; -use starknet_rpc_test::utils::{ - assert_eq_msg_to_l1, assert_poll, build_deploy_account_tx, build_oz_account_factory, build_single_owner_account, - AccountActions, -}; -use starknet_rpc_test::{Transaction, TransactionResult}; - -type TransactionReceiptResult = Result; - -async fn get_transaction_receipt( - rpc: &JsonRpcClient, - transaction_hash: FieldElement, -) -> TransactionReceiptResult { - // there is a delay between the transaction being available at the client - // and the sealing of the block, hence sleeping for 100ms - assert_poll(|| async { rpc.get_transaction_receipt(transaction_hash).await.is_ok() }, 100, 20).await; - - rpc.get_transaction_receipt(transaction_hash).await -} - -#[rstest] -#[tokio::test] -async fn work_with_invoke_transaction(madara: &ThreadSafeMadaraClient) -> Result<(), anyhow::Error> { - let rpc = madara.get_starknet_client().await; - - let recipient = FieldElement::from_hex_be("0x123").unwrap(); - let transfer_amount = FieldElement::ONE; - - let mut txs = { - let mut madara_write_lock = madara.write().await; - let account = build_single_owner_account(&rpc, SIGNER_PRIVATE, ARGENT_CONTRACT_ADDRESS, true); - madara_write_lock - .create_block_with_txs(vec![Transaction::Execution(account.transfer_tokens( - recipient, - transfer_amount, - None, - ))]) - .await? - }; - - assert_eq!(txs.len(), 1); - let rpc_response = match txs.remove(0).unwrap() { - TransactionResult::Execution(rpc_response) => rpc_response, - _ => panic!("expected execution result"), - }; - - let invoke_tx_receipt = get_transaction_receipt(&rpc, rpc_response.transaction_hash).await; - let fee_token_address = FieldElement::from_hex_be(FEE_TOKEN_ADDRESS).unwrap(); - let expected_fee = FieldElement::from_hex_be("0xf154").unwrap(); - - match invoke_tx_receipt { - Ok(MaybePendingTransactionReceipt::Receipt(TransactionReceipt::Invoke(receipt))) => { - assert_eq!(receipt.transaction_hash, rpc_response.transaction_hash); - assert_eq!(receipt.actual_fee, expected_fee); - assert_eq!(receipt.finality_status, TransactionFinalityStatus::AcceptedOnL2); - assert_eq_msg_to_l1(receipt.messages_sent, vec![]); - assert_eq!( - receipt.events, - vec![ - Event { - from_address: fee_token_address, - keys: vec![get_selector_from_name("Transfer").unwrap()], - data: vec![ - FieldElement::from_hex_be(ARGENT_CONTRACT_ADDRESS).unwrap(), // from - recipient, // to - transfer_amount, // value low - FieldElement::ZERO, // value high - ], - }, - Event { - from_address: FieldElement::from_hex_be(ARGENT_CONTRACT_ADDRESS).unwrap(), // from - keys: vec![get_selector_from_name("transaction_executed").unwrap()], - data: vec![ - rpc_response.transaction_hash, // txn hash - FieldElement::TWO, // response_len - FieldElement::ONE, - FieldElement::ONE, - ], - }, - Event { - from_address: fee_token_address, - keys: vec![get_selector_from_name("Transfer").unwrap()], - data: vec![ - FieldElement::from_hex_be(ARGENT_CONTRACT_ADDRESS).unwrap(), // from - FieldElement::from_hex_be(SEQUENCER_ADDRESS).unwrap(), // to (sequencer address) - expected_fee, // value low - FieldElement::ZERO, // value high - ], - }, - ], - ); - assert_matches!(receipt.execution_result, ExecutionResult::Succeeded); - } - _ => panic!("expected invoke transaction receipt"), - }; - - Ok(()) -} - -#[rstest] -#[tokio::test] -async fn work_with_declare_transaction(madara: &ThreadSafeMadaraClient) -> Result<(), anyhow::Error> { - let rpc = madara.get_starknet_client().await; - - let mut txs = { - let mut madara_write_lock = madara.write().await; - let account = build_single_owner_account(&rpc, SIGNER_PRIVATE, ARGENT_CONTRACT_ADDRESS, true); - let (declare_tx, _, _) = account - .declare_contract("./contracts/Counter4/Counter4.sierra.json", "./contracts/Counter4/Counter4.casm.json"); - - madara_write_lock.create_block_with_txs(vec![Transaction::Declaration(declare_tx)]).await? - }; - - let rpc_response_declare = match txs.remove(0).unwrap() { - TransactionResult::Declaration(rpc_response) => rpc_response, - _ => panic!("expected execution result"), - }; - - let fee_token_address = FieldElement::from_hex_be(FEE_TOKEN_ADDRESS).unwrap(); - let expected_fee = - FieldElement::from_hex_be("0x00000000000000000000000000000000000000000000000000000000000030fc").unwrap(); - let expected_events = vec![Event { - from_address: fee_token_address, - keys: vec![get_selector_from_name("Transfer").unwrap()], - data: vec![ - FieldElement::from_hex_be(ARGENT_CONTRACT_ADDRESS).unwrap(), // from - FieldElement::from_hex_be(SEQUENCER_ADDRESS).unwrap(), // to (sequencer address) - expected_fee, // value low - FieldElement::ZERO, // value high - ], - }]; - - match get_transaction_receipt(&rpc, rpc_response_declare.transaction_hash).await { - Ok(MaybePendingTransactionReceipt::Receipt(TransactionReceipt::Declare(tx_receipt))) => { - assert_eq!(tx_receipt.actual_fee, expected_fee); - assert_eq!(tx_receipt.finality_status, TransactionFinalityStatus::AcceptedOnL2); - assert_eq_msg_to_l1(tx_receipt.messages_sent, vec![]); - assert_eq!(tx_receipt.events, expected_events); - assert_matches!(tx_receipt.execution_result, ExecutionResult::Succeeded); - } - _ => panic!("expected declare transaction receipt"), - }; - - Ok(()) -} - -#[rstest] -#[tokio::test] -async fn work_with_deploy_account_transaction(madara: &ThreadSafeMadaraClient) -> Result<(), anyhow::Error> { - let rpc = madara.get_starknet_client().await; - - let (mut txs, account_address) = { - let mut madara_write_lock = madara.write().await; - let oz_factory = build_oz_account_factory( - &rpc, - "0x456", - FieldElement::from_hex_be(CAIRO_1_ACCOUNT_CONTRACT_CLASS_HASH).unwrap(), - ) - .await; - let account_deploy_txn = build_deploy_account_tx(&oz_factory, FieldElement::ONE); - let account_address = account_deploy_txn.address(); - - // add funds to deploy account - let funding_account = build_single_owner_account(&rpc, SIGNER_PRIVATE, ARGENT_CONTRACT_ADDRESS, true); - madara_write_lock - .create_block_with_txs(vec![Transaction::Execution(funding_account.transfer_tokens( - account_address, - FieldElement::from_hex_be("0x100000").unwrap(), - None, - ))]) - .await?; - - let txs = - madara_write_lock.create_block_with_txs(vec![Transaction::AccountDeployment(account_deploy_txn)]).await?; - - (txs, account_address) - }; - - assert_eq!(txs.len(), 1); - let rpc_response = match txs.remove(0).unwrap() { - TransactionResult::AccountDeployment(rpc_response) => rpc_response, - _ => panic!("expected execution result"), - }; - - let account_deployment_tx_receipt = get_transaction_receipt(&rpc, rpc_response.transaction_hash).await; - let fee_token_address = FieldElement::from_hex_be(FEE_TOKEN_ADDRESS).unwrap(); - let expected_fee = FieldElement::from_hex_be("0x790e").unwrap(); - - match account_deployment_tx_receipt { - Ok(MaybePendingTransactionReceipt::Receipt(TransactionReceipt::DeployAccount(receipt))) => { - assert_eq!(receipt.transaction_hash, rpc_response.transaction_hash); - assert_eq!(receipt.actual_fee, expected_fee); - assert_eq!(receipt.finality_status, TransactionFinalityStatus::AcceptedOnL2); - assert_eq_msg_to_l1(receipt.messages_sent, vec![]); - assert_eq!( - receipt.events, - vec![Event { - from_address: fee_token_address, - keys: vec![get_selector_from_name("Transfer").unwrap()], - data: vec![ - account_address, - FieldElement::from_hex_be(SEQUENCER_ADDRESS).unwrap(), // to - expected_fee, // value low - FieldElement::ZERO, // value high - ], - }], - ); - assert_matches!(receipt.execution_result, ExecutionResult::Succeeded); - assert_eq!(receipt.contract_address, account_address); - } - _ => panic!("expected deploy account transaction receipt"), - }; - - Ok(()) -} - -#[rstest] -#[tokio::test] -async fn ensure_transfer_fee_event_not_messed_up_with_similar_transfer( - madara: &ThreadSafeMadaraClient, -) -> Result<(), anyhow::Error> { - let rpc = madara.get_starknet_client().await; - - let mut madara_write_lock = madara.write().await; - let transfer_amount = FieldElement::from_hex_be("0x100000").unwrap(); - let funding_account = build_single_owner_account(&rpc, SIGNER_PRIVATE, ARGENT_CONTRACT_ADDRESS, true); - let mut tx = madara_write_lock - .create_block_with_txs(vec![Transaction::Execution(funding_account.transfer_tokens( - FieldElement::from_hex_be(SEQUENCER_ADDRESS).unwrap(), - transfer_amount, - None, - ))]) - .await?; - let rpc_response = match tx.remove(0).unwrap() { - TransactionResult::Execution(rpc_response) => rpc_response, - _ => panic!("expected execution result"), - }; - let tx_receipt = get_transaction_receipt(&rpc, rpc_response.transaction_hash).await; - let fee_token_address = FieldElement::from_hex_be(FEE_TOKEN_ADDRESS).unwrap(); - let expected_fee = FieldElement::from_hex_be("0xf154").unwrap(); - - match tx_receipt { - Ok(MaybePendingTransactionReceipt::Receipt(TransactionReceipt::Invoke(mut receipt))) => { - assert_eq!(receipt.transaction_hash, rpc_response.transaction_hash); - assert_eq!(receipt.actual_fee, expected_fee); - assert_eq!(receipt.finality_status, TransactionFinalityStatus::AcceptedOnL2); - assert_eq_msg_to_l1(receipt.messages_sent, vec![]); - receipt.events.remove(1); - assert_eq!( - receipt.events, - vec![ - Event { - from_address: fee_token_address, - keys: vec![get_selector_from_name("Transfer").unwrap()], - data: vec![ - FieldElement::from_hex_be(ARGENT_CONTRACT_ADDRESS).unwrap(), // from - FieldElement::from_hex_be(SEQUENCER_ADDRESS).unwrap(), // to - transfer_amount, // value low - FieldElement::ZERO, // value high - ], - }, - Event { - from_address: fee_token_address, - keys: vec![get_selector_from_name("Transfer").unwrap()], - data: vec![ - FieldElement::from_hex_be(ARGENT_CONTRACT_ADDRESS).unwrap(), // from - FieldElement::from_hex_be(SEQUENCER_ADDRESS).unwrap(), // to - expected_fee, // value low - FieldElement::ZERO, // value high - ], - }, - ], - ); - assert_matches!(receipt.execution_result, ExecutionResult::Succeeded); - } - _ => panic!("expected transfer receipt"), - }; - - Ok(()) -} - -#[rstest] -#[tokio::test] -async fn fail_invalid_transaction_hash(madara: &ThreadSafeMadaraClient) -> Result<(), anyhow::Error> { - let rpc = madara.get_starknet_client().await; - - assert!(rpc.get_transaction_receipt(FieldElement::ZERO).await.is_err()); - - Ok(()) -} - -#[rstest] -#[tokio::test] -async fn work_with_messages_to_l1(madara: &ThreadSafeMadaraClient) -> Result<(), anyhow::Error> { - let rpc = madara.get_starknet_client().await; - - // 1. Declaring class for our L2 > L1 contract - - let account = build_single_owner_account(&rpc, SIGNER_PRIVATE, ARGENT_CONTRACT_ADDRESS, true); - let (declare_tx, _) = account.declare_legacy_contract("../cairo-contracts/build/send_message.json"); - - let txs = { - let mut madara_write_lock = madara.write().await; - madara_write_lock.create_block_with_txs(vec![Transaction::LegacyDeclaration(declare_tx)]).await? - }; - - // 2. Determine class hash - - let class_hash = assert_matches!( - &txs[0], - Ok(TransactionResult::Declaration(rpc_response)) => rpc_response.class_hash - ); - - // 3. Next, deploying an instance of this class using universal deployer - - let deploy_tx = account.invoke_contract( - FieldElement::from_hex_be(UDC_ADDRESS).unwrap(), - "deployContract", - vec![ - class_hash, - FieldElement::ZERO, // salt - FieldElement::ZERO, // unique - FieldElement::ZERO, // calldata len - ], - None, - ); - - let txs = { - let mut madara_write_lock = madara.write().await; - madara_write_lock.create_block_with_txs(vec![Transaction::Execution(deploy_tx)]).await? - }; - - // 4. Now, we need to get the deployed contract address - - let deploy_tx_hash = assert_matches!( - &txs[0], - Ok(TransactionResult::Execution(rpc_response)) => rpc_response.transaction_hash - ); - - let deploy_tx_receipt = get_transaction_receipt(&rpc, deploy_tx_hash).await?; - - let contract_address = assert_matches!( - deploy_tx_receipt, - MaybePendingTransactionReceipt::Receipt(TransactionReceipt::Invoke(receipt)) => receipt.events[0].data[0] - ); - - // 5. Sending message to L1 - - let invoke_tx = account.invoke_contract( - contract_address, - "send_message_l2_to_l1", - vec![FieldElement::ZERO, FieldElement::ONE, FieldElement::TWO], - None, - ); - - let txs = { - let mut madara_write_lock = madara.write().await; - madara_write_lock.create_block_with_txs(vec![Transaction::Execution(invoke_tx)]).await? - }; - - // 6. Finally, checking that there is a single MessageToL1 in the receipt - - let invoke_tx_hash = assert_matches!( - &txs[0], - Ok(TransactionResult::Execution(rpc_response)) => rpc_response.transaction_hash - ); - - let invoke_tx_receipt = get_transaction_receipt(&rpc, invoke_tx_hash).await?; - - let messages_sent = assert_matches!( - invoke_tx_receipt, - MaybePendingTransactionReceipt::Receipt(TransactionReceipt::Invoke(receipt)) => receipt.messages_sent - ); - - assert_eq_msg_to_l1( - vec![MsgToL1 { - from_address: contract_address, - to_address: FieldElement::ZERO, - payload: vec![FieldElement::TWO], - }], - messages_sent, - ); - - Ok(()) -} diff --git a/starknet-rpc-test/simulate_transaction.rs b/starknet-rpc-test/simulate_transaction.rs deleted file mode 100644 index 569f8a81d2..0000000000 --- a/starknet-rpc-test/simulate_transaction.rs +++ /dev/null @@ -1,242 +0,0 @@ -extern crate starknet_rpc_test; - -use assert_matches::assert_matches; -use rstest::rstest; -use starknet_accounts::{Call, ConnectedAccount}; -use starknet_core::types::{ - BlockId, BlockTag, BroadcastedInvokeTransaction, BroadcastedTransaction, SimulationFlag, StarknetError, -}; -use starknet_core::utils::get_selector_from_name; -use starknet_ff::FieldElement; -use starknet_providers::ProviderError::StarknetError as StarknetProviderError; -use starknet_providers::{MaybeUnknownErrorCode, Provider, StarknetErrorWithMessage}; -use starknet_rpc_test::constants::{ACCOUNT_CONTRACT, ARGENT_CONTRACT_ADDRESS, SIGNER_PRIVATE, TEST_CONTRACT_ADDRESS}; -use starknet_rpc_test::fixtures::{madara, ThreadSafeMadaraClient}; -use starknet_rpc_test::utils::{build_single_owner_account, AccountActions}; - -#[rstest] -#[tokio::test] -async fn fail_non_existing_block(madara: &ThreadSafeMadaraClient) -> Result<(), anyhow::Error> { - let rpc = madara.get_starknet_client().await; - - let ok_invoke_transaction = BroadcastedTransaction::Invoke(BroadcastedInvokeTransaction { - max_fee: FieldElement::ZERO, - signature: vec![], - nonce: FieldElement::ZERO, - sender_address: FieldElement::from_hex_be(ACCOUNT_CONTRACT).unwrap(), - calldata: vec![ - FieldElement::from_hex_be(TEST_CONTRACT_ADDRESS).unwrap(), - get_selector_from_name("sqrt").unwrap(), - FieldElement::from_hex_be("1").unwrap(), - FieldElement::from(81u8), - ], - is_query: false, - }); - - assert_matches!( - rpc.simulate_transactions(BlockId::Hash(FieldElement::ZERO),&[ok_invoke_transaction], []).await, - Err(StarknetProviderError(StarknetErrorWithMessage { code: MaybeUnknownErrorCode::Known(code), .. })) if code == StarknetError::BlockNotFound - ); - - Ok(()) -} - -#[rstest] -#[tokio::test] -async fn fail_max_fee_too_big(madara: &ThreadSafeMadaraClient) -> Result<(), anyhow::Error> { - let rpc = madara.get_starknet_client().await; - - let ok_invoke_transaction = BroadcastedTransaction::Invoke(BroadcastedInvokeTransaction { - max_fee: FieldElement::from_hex_be("0x100000000000000000000000000000000").unwrap(), // u128::MAX + 1 - signature: vec![], - nonce: FieldElement::ZERO, - sender_address: FieldElement::from_hex_be(ACCOUNT_CONTRACT).unwrap(), - calldata: vec![ - FieldElement::from_hex_be(TEST_CONTRACT_ADDRESS).unwrap(), - get_selector_from_name("sqrt").unwrap(), - FieldElement::from_hex_be("1").unwrap(), - FieldElement::from(81u8), - ], - is_query: false, - }); - - assert_matches!( - rpc.simulate_transactions(BlockId::Tag(BlockTag::Latest), &[ok_invoke_transaction], []).await, - Err(StarknetProviderError(StarknetErrorWithMessage { code: MaybeUnknownErrorCode::Unknown(500), message })) if message == "Internal server error" - ); - - Ok(()) -} - -#[rstest] -#[tokio::test] -async fn fail_if_one_txn_cannot_be_executed(madara: &ThreadSafeMadaraClient) -> Result<(), anyhow::Error> { - let rpc = madara.get_starknet_client().await; - - let bad_invoke_transaction = BroadcastedTransaction::Invoke(BroadcastedInvokeTransaction { - max_fee: FieldElement::default(), - nonce: FieldElement::ZERO, - sender_address: FieldElement::default(), - signature: vec![], - calldata: vec![FieldElement::from_hex_be("0x0").unwrap()], - is_query: false, - }); - - let ok_invoke_transaction = BroadcastedTransaction::Invoke(BroadcastedInvokeTransaction { - max_fee: FieldElement::ZERO, - signature: vec![], - nonce: FieldElement::ZERO, - sender_address: FieldElement::from_hex_be(ACCOUNT_CONTRACT).unwrap(), - calldata: vec![ - FieldElement::from_hex_be(TEST_CONTRACT_ADDRESS).unwrap(), - get_selector_from_name("sqrt").unwrap(), - FieldElement::from_hex_be("1").unwrap(), - FieldElement::from(81u8), - ], - is_query: false, - }); - - assert_matches!( - rpc.simulate_transactions(BlockId::Tag(BlockTag::Latest),&[ - bad_invoke_transaction, - ok_invoke_transaction, - ],[] ).await, - Err(StarknetProviderError(StarknetErrorWithMessage { code: MaybeUnknownErrorCode::Known(code), .. })) if code == StarknetError::ContractError - ); - - Ok(()) -} - -#[rstest] -#[tokio::test] -async fn works_ok_on_no_validate(madara: &ThreadSafeMadaraClient) -> Result<(), anyhow::Error> { - let rpc = madara.get_starknet_client().await; - - let tx = BroadcastedInvokeTransaction { - max_fee: FieldElement::from(420u16), - signature: vec![], - nonce: FieldElement::ZERO, - sender_address: FieldElement::from_hex_be(ACCOUNT_CONTRACT).unwrap(), - calldata: vec![ - FieldElement::from_hex_be(TEST_CONTRACT_ADDRESS).unwrap(), - get_selector_from_name("sqrt").unwrap(), - FieldElement::from_hex_be("1").unwrap(), - FieldElement::from(81u8), - ], - is_query: false, - }; - - let invoke_transaction = BroadcastedTransaction::Invoke(tx.clone()); - - let invoke_transaction_2 = - BroadcastedTransaction::Invoke(BroadcastedInvokeTransaction { nonce: FieldElement::ONE, ..tx }); - - let simulations = rpc - .simulate_transactions(BlockId::Tag(BlockTag::Latest), &[invoke_transaction, invoke_transaction_2], []) - .await?; - - assert_eq!(simulations.len(), 2); - assert_eq!(simulations[0].fee_estimation.gas_consumed, 0); - assert_eq!(simulations[0].fee_estimation.overall_fee, 420); - assert_eq!(simulations[0].fee_estimation.gas_price, 0); - - Ok(()) -} - -#[rstest] -#[tokio::test] -async fn works_ok_on_validate_with_signature(madara: &ThreadSafeMadaraClient) -> Result<(), anyhow::Error> { - let rpc = madara.get_starknet_client().await; - let funding_account = build_single_owner_account(&rpc, SIGNER_PRIVATE, ARGENT_CONTRACT_ADDRESS, true); - let nonce = funding_account.get_nonce().await?; - let max_fee = FieldElement::from(1000u16); - - let calls = vec![Call { - to: FieldElement::from_hex_be(TEST_CONTRACT_ADDRESS).unwrap(), - selector: get_selector_from_name("sqrt").unwrap(), - calldata: vec![FieldElement::from(81u8)], - }]; - let tx = funding_account.prepare_invoke(calls, nonce, max_fee, false).await; - - let invoke_transaction = BroadcastedTransaction::Invoke(tx); - - let simulations = rpc.simulate_transactions(BlockId::Tag(BlockTag::Latest), &[invoke_transaction], []).await?; - - assert_eq!(simulations.len(), 1); - assert_eq!(simulations[0].fee_estimation.gas_consumed, 0); - assert_eq!(simulations[0].fee_estimation.overall_fee, 480); - assert_eq!(simulations[0].fee_estimation.gas_price, 0); - - Ok(()) -} - -#[rstest] -#[tokio::test] -async fn works_ok_on_validate_without_signature_with_skip_validate( - madara: &ThreadSafeMadaraClient, -) -> Result<(), anyhow::Error> { - let rpc = madara.get_starknet_client().await; - let funding_account = build_single_owner_account(&rpc, SIGNER_PRIVATE, ARGENT_CONTRACT_ADDRESS, true); - let nonce = funding_account.get_nonce().await?; - let max_fee = FieldElement::from(1000u16); - - let calls = vec![Call { - to: FieldElement::from_hex_be(TEST_CONTRACT_ADDRESS).unwrap(), - selector: get_selector_from_name("sqrt").unwrap(), - calldata: vec![FieldElement::from(81u8)], - }]; - let tx = funding_account.prepare_invoke(calls, nonce, max_fee, false).await; - - let invoke_transaction = BroadcastedTransaction::Invoke(tx); - - let simulations = rpc - .simulate_transactions(BlockId::Tag(BlockTag::Latest), &[invoke_transaction], [SimulationFlag::SkipValidate]) - .await?; - - assert_eq!(simulations.len(), 1); - assert_eq!(simulations[0].fee_estimation.gas_consumed, 0); - assert_eq!(simulations[0].fee_estimation.overall_fee, 440); - assert_eq!(simulations[0].fee_estimation.gas_price, 0); - - Ok(()) -} - -#[rstest] -#[tokio::test] -async fn works_ok_without_max_fee_with_skip_fee_charge(madara: &ThreadSafeMadaraClient) -> Result<(), anyhow::Error> { - let rpc = madara.get_starknet_client().await; - - let tx = BroadcastedInvokeTransaction { - max_fee: FieldElement::from(0u8), - signature: vec![], - nonce: FieldElement::ZERO, - sender_address: FieldElement::from_hex_be(ACCOUNT_CONTRACT).unwrap(), - calldata: vec![ - FieldElement::from_hex_be(TEST_CONTRACT_ADDRESS).unwrap(), - get_selector_from_name("sqrt").unwrap(), - FieldElement::from_hex_be("1").unwrap(), - FieldElement::from(81u8), - ], - is_query: false, - }; - - let invoke_transaction = BroadcastedTransaction::Invoke(tx.clone()); - - let invoke_transaction_2 = - BroadcastedTransaction::Invoke(BroadcastedInvokeTransaction { nonce: FieldElement::ONE, ..tx }); - - let simulations = rpc - .simulate_transactions( - BlockId::Tag(BlockTag::Latest), - &[invoke_transaction, invoke_transaction_2], - [SimulationFlag::SkipFeeCharge], - ) - .await?; - - assert_eq!(simulations.len(), 2); - assert_eq!(simulations[0].fee_estimation.gas_consumed, 0); - assert_eq!(simulations[0].fee_estimation.overall_fee, 420); - assert_eq!(simulations[0].fee_estimation.gas_price, 0); - - Ok(()) -} diff --git a/starknet-rpc-test/spec_version.rs b/starknet-rpc-test/spec_version.rs deleted file mode 100644 index 334083a761..0000000000 --- a/starknet-rpc-test/spec_version.rs +++ /dev/null @@ -1,11 +0,0 @@ -extern crate starknet_rpc_test; - -use rstest::rstest; -use starknet_rpc_test::fixtures::{madara, ThreadSafeMadaraClient}; - -#[rstest] -#[tokio::test] -#[ignore = "Waiting for starknet_providers::jsonrpc upgrade to v0.6.0"] -async fn returns_hardcoded_spec_version(madara: &ThreadSafeMadaraClient) -> Result<(), anyhow::Error> { - Ok(()) -} diff --git a/starknet-rpc-test/src/constants.rs b/starknet-rpc-test/src/constants.rs deleted file mode 100644 index 321dc982d3..0000000000 --- a/starknet-rpc-test/src/constants.rs +++ /dev/null @@ -1,37 +0,0 @@ -use starknet_ff::FieldElement; - -pub const TEST_CONTRACT_ADDRESS: &str = "0x0000000000000000000000000000000000000000000000000000000000001111"; -pub const ACCOUNT_CONTRACT: &str = "0x0000000000000000000000000000000000000000000000000000000000000001"; -pub const CAIRO_1_ACCOUNT_CONTRACT: &str = "0x0000000000000000000000000000000000000000000000000000000000000004"; -pub const CAIRO_1_ACCOUNT_CONTRACT_CLASS_HASH: &str = - "0x02f99bf9799ada84cd5ac0d0fe36b9d8f65efcb377cd2e8cf8309ad2daf15e4b"; -pub const ERC20_CAIRO_0_CONTRACT: &str = "0x040e59c2c182a58fb0a74349bfa4769cbbcba32547591dd3fb1def8623997d00"; -pub const SEQUENCER_ADDRESS: &str = "0xdead"; -pub const UDC_ADDRESS: &str = "0x041a78e741e5af2fec34b695679bc6891742439f7afb8484ecd7766661ad02bf"; - -// https://github.com/keep-starknet-strange/madara/blob/main/crates/node/src/chain_spec.rs#L185-L186 -pub const ACCOUNT_CONTRACT_CLASS_HASH: &str = "0x0279d77db761fba82e0054125a6fdb5f6baa6286fa3fb73450cc44d193c2d37f"; -pub const ARGENT_PROXY_CLASS_HASH: &str = "0x0424b7f61e3c5dfd74400d96fdea7e1f0bf2757f31df04387eaa957f095dd7b9"; -pub const SIGNER_PUBLIC: &str = "0x03603a2692a2ae60abb343e832ee53b55d6b25f02a3ef1565ec691edc7a209b2"; -pub const SIGNER_PRIVATE: &str = "0x00c1cf1490de1352865301bb8705143f3ef938f97fdf892f1090dcb5ac7bcd1d"; -pub const SALT: &str = "0x0000000000000000000000000000000000000000000000000000000000001111"; - -// https://github.com/keep-starknet-strange/madara/blob/main/crates/node/src/chain_spec.rs#L191-L192 -pub const TEST_CONTRACT_CLASS_HASH: &str = "0x04c5efa8dc6f0554da51f125d04e379ac41153a8b837391083a8dc3771a33388"; -pub const MINT_AMOUNT: &str = "0x0000000000000000000000000000000000000000000000000000000000000001"; -pub const DEPLOY_ACCOUNT_COST: &str = "0x00000000000000000000000000000000000000000000000000000000ffffffff"; -pub const CONTRACT_ADDRESS: &str = "0x0000000000000000000000000000000000000000000000000000000000000001"; -pub const FEE_TOKEN_ADDRESS: &str = "0x049d36570d4e46f48e99674bd3fcc84644ddd6b96f7c741b1562b82f9e004dc7"; -pub const TOKEN_CLASS_HASH: &str = "0x0000000000000000000000000000000000000000000000000000000000010000"; -pub const ARGENT_CONTRACT_ADDRESS: &str = "0x0000000000000000000000000000000000000000000000000000000000000002"; -pub const OZ_CONTRACT_ADDRESS: &str = "0x0000000000000000000000000000000000000000000000000000000000000003"; - -pub const MAX_U256: &str = "0xffffffffffffffffffffffffffffffff"; -pub const MAX_FEE_OVERRIDE: &str = "0x100000"; - -// Need to use `from_mont` because this needs to be a constant function call -/// ChainId for Starknet Goerli testnet -pub const SN_GOERLI_CHAIN_ID: FieldElement = - FieldElement::from_mont([3753493103916128178, 18446744073709548950, 18446744073709551615, 398700013197595345]); - -pub const SPEC_VERSION: &str = "0.4.0"; diff --git a/starknet-rpc-test/src/fixtures.rs b/starknet-rpc-test/src/fixtures.rs deleted file mode 100644 index 9c064b2c9c..0000000000 --- a/starknet-rpc-test/src/fixtures.rs +++ /dev/null @@ -1,25 +0,0 @@ -use async_lock::RwLock; -use rstest::fixture; -use starknet_providers::jsonrpc::HttpTransport; -use starknet_providers::JsonRpcClient; - -use crate::MadaraClient; - -pub struct ThreadSafeMadaraClient(RwLock); - -#[fixture] -#[once] -pub fn madara() -> ThreadSafeMadaraClient { - ThreadSafeMadaraClient(RwLock::new(MadaraClient::default())) -} - -impl ThreadSafeMadaraClient { - pub async fn get_starknet_client(&self) -> JsonRpcClient { - let inner = self.0.read(); - inner.await.get_starknet_client() - } - - pub async fn write(&self) -> async_lock::RwLockWriteGuard<'_, MadaraClient> { - self.0.write().await - } -} diff --git a/starknet-rpc-test/src/lib.rs b/starknet-rpc-test/src/lib.rs deleted file mode 100644 index 720549938b..0000000000 --- a/starknet-rpc-test/src/lib.rs +++ /dev/null @@ -1,201 +0,0 @@ -#![feature(assert_matches)] - -use std::cell::Cell; -use std::fmt::Debug; - -use anyhow::anyhow; -use reqwest::header::CONTENT_TYPE; -use reqwest::{Client, Response}; -use serde_json::json; -use starknet_accounts::{ - Account, AccountDeployment, AccountError, AccountFactoryError, Declaration, Execution, LegacyDeclaration, - OpenZeppelinAccountFactory, SingleOwnerAccount, -}; -use starknet_core::types::{DeclareTransactionResult, DeployAccountTransactionResult, InvokeTransactionResult}; -use starknet_providers::jsonrpc::{HttpTransport, JsonRpcClient}; -use starknet_providers::Provider; -use starknet_signers::local_wallet::SignError; -use starknet_signers::LocalWallet; -use url::Url; - -/// Constants (addresses, contracts...) -pub mod constants; -/// Starknet related utilities -pub mod utils; - -pub mod fixtures; - -const NODE_RPC_URL: &str = "http://localhost:9944"; - -type RpcAccount<'a> = SingleOwnerAccount<&'a JsonRpcClient, LocalWallet>; -pub type RpcOzAccountFactory<'a> = OpenZeppelinAccountFactory>; -pub type TransactionExecution<'a> = Execution<'a, RpcAccount<'a>>; -type TransactionDeclaration<'a> = Declaration<'a, RpcAccount<'a>>; -type TransactionLegacyDeclaration<'a> = LegacyDeclaration<'a, RpcAccount<'a>>; -type TransactionAccountDeployment<'a> = AccountDeployment<'a, RpcOzAccountFactory<'a>>; -type StarknetAccountError = - AccountError<, LocalWallet> as Account>::SignError>; - -pub enum Transaction<'a> { - Execution(TransactionExecution<'a>), - Declaration(TransactionDeclaration<'a>), - LegacyDeclaration(TransactionLegacyDeclaration<'a>), - AccountDeployment(TransactionAccountDeployment<'a>), -} - -#[derive(Debug)] -pub enum TransactionResult { - Execution(InvokeTransactionResult), - Declaration(DeclareTransactionResult), - AccountDeployment(DeployAccountTransactionResult), -} - -#[derive(thiserror::Error, Debug)] -pub enum SendTransactionError { - #[error(transparent)] - AccountError(StarknetAccountError), - #[error(transparent)] - AccountFactoryError(AccountFactoryError), -} - -impl Transaction<'_> { - pub async fn send(&self) -> Result { - match self { - Transaction::Execution(execution) => { - execution.send().await.map(TransactionResult::Execution).map_err(SendTransactionError::AccountError) - } - Transaction::Declaration(declaration) => { - declaration.send().await.map(TransactionResult::Declaration).map_err(SendTransactionError::AccountError) - } - Transaction::LegacyDeclaration(declaration) => { - declaration.send().await.map(TransactionResult::Declaration).map_err(SendTransactionError::AccountError) - } - Transaction::AccountDeployment(deployment) => deployment - .send() - .await - .map(TransactionResult::AccountDeployment) - .map_err(SendTransactionError::AccountFactoryError), - } - } -} - -#[derive(Debug)] -/// A wrapper over the Madara process handle, reqwest client and request counter -pub struct MadaraClient { - rpc_request_count: Cell, - url: Url, -} - -impl Default for MadaraClient { - fn default() -> Self { - let url = Url::parse(NODE_RPC_URL).expect("Invalid JSONRPC Url"); - MadaraClient::new(url) - } -} - -impl MadaraClient { - pub fn new(url: Url) -> Self { - Self { url, rpc_request_count: Default::default() } - } - - pub async fn run_to_block(&mut self, target_block: u64) -> anyhow::Result<()> { - let mut current_block = self.get_starknet_client().block_number().await?; - - if current_block >= target_block { - return Err(anyhow!("target_block must be in the future")); - } - - while current_block < target_block { - self.create_empty_block().await?; - current_block += 1; - } - - Ok(()) - } - - pub async fn create_n_blocks(&mut self, mut n: u64) -> anyhow::Result<()> { - while n > 0 { - self.create_empty_block().await?; - n -= 1; - } - - Ok(()) - } - - async fn call_rpc(&self, mut body: serde_json::Value) -> reqwest::Result { - let body = body.as_object_mut().expect("the body should be an object"); - body.insert("id".to_string(), self.rpc_request_count.get().into()); - body.insert("jsonrpc".to_string(), "2.0".into()); - - let body = serde_json::to_string(&body).expect("the json body must be serializable"); - - let response = Client::new() - .post(self.url.clone()) - .header(CONTENT_TYPE, "application/json; charset=utf-8") - .body(body) - .send() - .await?; - - // Increment rpc_request_count - let previous = self.rpc_request_count.get(); - self.rpc_request_count.set(previous + 1); - - Ok(response) - } - - pub fn get_starknet_client(&self) -> JsonRpcClient { - JsonRpcClient::new(HttpTransport::new(self.url.clone())) - } - - pub async fn create_empty_block(&mut self) -> anyhow::Result<()> { - let body = json!({ - "method": "engine_createBlock", - "params": [true, true], - }); - - let response = self.call_rpc(body).await?; - // TODO: read actual error from response - response.status().is_success().then_some(()).ok_or(anyhow!("failed to create a new block")) - } - - pub async fn create_block_with_txs( - &mut self, - transactions: Vec>, - ) -> anyhow::Result>> { - let body = json!({ - "method": "engine_createBlock", - "params": [false, true], - }); - - let mut results = Vec::new(); - for tx in transactions { - let result = tx.send().await; - results.push(result); - } - - let response = self.call_rpc(body).await?; - // TODO: read actual error from response - response.status().is_success().then_some(results).ok_or(anyhow!("failed to create a new block")) - } - - pub async fn create_block_with_parent(&mut self, parent_hash: &str) -> anyhow::Result<()> { - let body = json!({ - "method": "engine_createBlock", - "params": [json!(true), json!(true), json!(parent_hash)], - }); - - let response = self.call_rpc(body).await?; - // TODO: read actual error from response - response.status().is_success().then_some(()).ok_or(anyhow!("failed to create a new block")) - } - - pub async fn health(&self) -> anyhow::Result { - let body = json!({ - "method": "system_health" - }); - - let response = self.call_rpc(body).await?; - - Ok(response.status().is_success()) - } -} diff --git a/starknet-rpc-test/src/utils.rs b/starknet-rpc-test/src/utils.rs deleted file mode 100644 index 8028c14d35..0000000000 --- a/starknet-rpc-test/src/utils.rs +++ /dev/null @@ -1,227 +0,0 @@ -use std::future::Future; -use std::sync::Arc; - -use async_trait::async_trait; -use starknet_accounts::{ - Account, AccountFactory, Call, ConnectedAccount, Execution, OpenZeppelinAccountFactory, SingleOwnerAccount, -}; -use starknet_core::chain_id; -use starknet_core::types::contract::legacy::LegacyContractClass; -use starknet_core::types::contract::{CompiledClass, SierraClass}; -use starknet_core::types::{BlockId, BlockTag, BroadcastedInvokeTransaction, FieldElement, FunctionCall, MsgToL1}; -use starknet_core::utils::get_selector_from_name; -use starknet_providers::jsonrpc::{HttpTransport, JsonRpcClient}; -use starknet_providers::Provider; -use starknet_signers::{LocalWallet, SigningKey}; - -use crate::constants::{FEE_TOKEN_ADDRESS, MAX_FEE_OVERRIDE}; -use crate::{ - RpcAccount, RpcOzAccountFactory, TransactionAccountDeployment, TransactionDeclaration, TransactionExecution, - TransactionLegacyDeclaration, -}; - -pub struct U256 { - pub high: FieldElement, - pub low: FieldElement, -} - -pub fn build_single_owner_account<'a>( - rpc: &'a JsonRpcClient, - private_key: &str, - account_address: &str, - is_legacy: bool, -) -> RpcAccount<'a> { - let signer = LocalWallet::from(SigningKey::from_secret_scalar(FieldElement::from_hex_be(private_key).unwrap())); - let account_address = FieldElement::from_hex_be(account_address).expect("Invalid Contract Address"); - let execution_encoding = if is_legacy { - starknet_accounts::ExecutionEncoding::Legacy - } else { - starknet_accounts::ExecutionEncoding::New - }; - SingleOwnerAccount::new(rpc, signer, account_address, chain_id::TESTNET, execution_encoding) -} - -pub async fn read_erc20_balance( - rpc: &JsonRpcClient, - contract_address: FieldElement, - account_address: FieldElement, -) -> Vec { - rpc.call( - FunctionCall { - contract_address, - entry_point_selector: get_selector_from_name("balanceOf").unwrap(), - calldata: vec![account_address], - }, - BlockId::Tag(BlockTag::Latest), - ) - .await - .unwrap() -} - -pub async fn build_oz_account_factory<'a>( - rpc: &'a JsonRpcClient, - private_key: &str, - class_hash: FieldElement, -) -> RpcOzAccountFactory<'a> { - let signer = LocalWallet::from(SigningKey::from_secret_scalar(FieldElement::from_hex_be(private_key).unwrap())); - OpenZeppelinAccountFactory::new(class_hash, chain_id::TESTNET, signer, rpc).await.unwrap() -} - -pub fn build_deploy_account_tx<'a>( - oz_factory: &'a RpcOzAccountFactory, - contract_address_salt: FieldElement, -) -> TransactionAccountDeployment<'a> { - let max_fee = FieldElement::from_hex_be(MAX_FEE_OVERRIDE).unwrap(); - oz_factory.deploy(contract_address_salt).max_fee(max_fee) -} - -#[async_trait] -pub trait AccountActions { - fn transfer_tokens_u256( - &self, - recipient: FieldElement, - transfer_amount: U256, - nonce: Option, - ) -> TransactionExecution; - - fn transfer_tokens( - &self, - recipient: FieldElement, - transfer_amount: FieldElement, - nonce: Option, - ) -> TransactionExecution; - - fn invoke_contract( - &self, - address: FieldElement, - method: &str, - calldata: Vec, - nonce: Option, - ) -> TransactionExecution; - - fn declare_contract( - &self, - path_to_sierra: &str, - path_to_casm: &str, - ) -> (TransactionDeclaration, FieldElement, FieldElement); - - fn declare_legacy_contract(&self, path_to_compiled_contract: &str) -> (TransactionLegacyDeclaration, FieldElement); - - async fn prepare_invoke( - &self, - calls: Vec, - nonce: FieldElement, - max_fee: FieldElement, - query_only: bool, - ) -> BroadcastedInvokeTransaction - where - Self: Account + ConnectedAccount, - { - let prepared_execution = Execution::new(calls, self).nonce(nonce).max_fee(max_fee).prepared().unwrap(); - prepared_execution.get_invoke_request(query_only).await.unwrap() - } -} - -impl AccountActions for SingleOwnerAccount<&JsonRpcClient, LocalWallet> { - fn transfer_tokens_u256( - &self, - recipient: FieldElement, - transfer_amount: U256, - nonce: Option, - ) -> TransactionExecution { - let fee_token_address = FieldElement::from_hex_be(FEE_TOKEN_ADDRESS).unwrap(); - self.invoke_contract( - fee_token_address, - "transfer", - vec![recipient, transfer_amount.low, transfer_amount.high], - nonce, - ) - } - - fn transfer_tokens( - &self, - recipient: FieldElement, - transfer_amount: FieldElement, - nonce: Option, - ) -> TransactionExecution { - self.transfer_tokens_u256(recipient, U256 { high: FieldElement::ZERO, low: transfer_amount }, nonce) - } - - fn invoke_contract( - &self, - address: FieldElement, - method: &str, - calldata: Vec, - nonce: Option, - ) -> TransactionExecution { - let calls = vec![Call { to: address, selector: get_selector_from_name(method).unwrap(), calldata }]; - - let max_fee = FieldElement::from_hex_be(MAX_FEE_OVERRIDE).unwrap(); - - match nonce { - Some(nonce) => self.execute(calls).max_fee(max_fee).nonce(nonce.into()), - None => self.execute(calls).max_fee(max_fee), - } - } - - fn declare_contract( - &self, - path_to_sierra: &str, - path_to_casm: &str, - ) -> (TransactionDeclaration, FieldElement, FieldElement) { - let sierra: SierraClass = serde_json::from_reader( - std::fs::File::open(env!("CARGO_MANIFEST_DIR").to_owned() + "/" + path_to_sierra).unwrap(), - ) - .unwrap(); - let casm: CompiledClass = serde_json::from_reader( - std::fs::File::open(env!("CARGO_MANIFEST_DIR").to_owned() + "/" + path_to_casm).unwrap(), - ) - .unwrap(); - let compiled_class_hash = casm.class_hash().unwrap(); - ( - self.declare(sierra.clone().flatten().unwrap().into(), compiled_class_hash) - // starknet-rs calls estimateFee with incorrect version which throws an error - .max_fee(FieldElement::from_hex_be(MAX_FEE_OVERRIDE).unwrap()), - sierra.class_hash().unwrap(), - compiled_class_hash, - ) - } - - fn declare_legacy_contract(&self, path_to_compiled_contract: &str) -> (TransactionLegacyDeclaration, FieldElement) { - let contract_artifact: LegacyContractClass = serde_json::from_reader( - std::fs::File::open(env!("CARGO_MANIFEST_DIR").to_owned() + "/" + path_to_compiled_contract).unwrap(), - ) - .unwrap(); - ( - self.declare_legacy(Arc::new(contract_artifact.clone())) - // starknet-rs calls estimateFee with incorrect version which throws an error - .max_fee(FieldElement::from_hex_be(MAX_FEE_OVERRIDE).unwrap()), - contract_artifact.class_hash().unwrap(), - ) - } -} - -pub fn assert_eq_msg_to_l1(l1: Vec, l2: Vec) { - assert_eq!(l1.len(), l2.len()); - for (m1, m2) in l1.iter().zip(l2.iter()) { - assert_eq!(m1.from_address, m2.from_address); - assert_eq!(m1.payload, m2.payload); - assert_eq!(m1.to_address, m2.to_address); - } -} - -pub async fn assert_poll(f: F, polling_time_ms: u64, max_poll_count: u32) -where - F: Fn() -> Fut, - Fut: Future, -{ - for _poll_count in 0..max_poll_count { - if f().await { - return; // The provided function returned true, exit safely. - } - - tokio::time::sleep(tokio::time::Duration::from_millis(polling_time_ms)).await; - } - - panic!("Max poll count exceeded."); -} diff --git a/zaun b/zaun deleted file mode 160000 index 2b431a94c1..0000000000 --- a/zaun +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 2b431a94c194ad2efe62051811224c15e9196556